- apm_suspend() and apm_standby() will call splhhigh() before entering
standby or suspend. After resume, the system go back tsleep()ing
in the apm thread without restoring the ipl (this is done in
apm_resume()), and calling tlseep() at IPL_HIGH cause a DIAGNOSTIC
panic (and other bad things, I guess).
Fix by calling apm_resume() from within apm_suspend() or apm_standby(),
after aa_set_powstate() has returned.
- In apm_event_handle(), we test (apm_standbys || apm_suspends) to set
apm_damn_fool_bios to 1 and break the while() loop in apm_periodic_check().
But we set apm_standbys or apm_suspends to non-0 only if apm_op_inprog
is 0 and we failed to record the apm event. With apmd listening
we usually succeed recording the event, so apm_standbys/apm_suspends remains
0 and we never go out of the while() loop.
Fix by apm_op_inprog instead of (apm_standbys || apm_suspends)
to break the loop.
Roy Marples), or other devices misbehavior probably due to interrupts issues
(reported by Jukka Ruohonen). Back it out and do the following changes:
- clear port interrupt register before ahci_channel_start() which enables
interrupts
- wait 500ms after sata_reset_interface() before touching SERROR register.
This is what seems to fix the issue I'm seeming on ESB2 controller.
- The 31s delay didn't cause the probe to fail because of a mismatch
in loop index comparison; use a #define for delay after reset
instead of numeric values, to avoid this kind of bugs in the
future.
prototype for a function, try to make the code more simple, guard against a
potential NULL pointer dereference, and improve printing.
No functional change intended.
- get geometry and framebuffer layout from the chip instead of hardcoding
- get rid of some now superfluous leftovers
- remove some debug code
- clean things up a bit
- dump registers with WCFB_DEBUG even if we're not the console
each framebuffer ) - this gives quite a dramatic speedup and hides the funky
effects previously seen.
Almost there, now we need to actually draw a cursor.
- wm_enable_wakeup() is disabled by default. If you want to use WOL with
the Magic Packet, define WM_WOL.
- Add the following flags:
WM_F_ASF_FIRMWARE_PRESENT
WM_F_ARC_SUBSYSTEM_VALID
WM_F_HAS_AMT
WM_F_HAS_MANAGE
WM_F_WOL
- Add wm_suspend() and wm_resume(). Give/get the control to/from the
firmware.
- Need more work for PCH. See wm_enable_phy_wakeup().
- Enable wm_get_hw_control() for 82574 and 82583.
- Add Yet another workaround for ICH8.
- Add wm_igp3_phy_powerdown_workaround_ich8lan() for power down problem
on D3.
<dev/acpi/acpivar.h>. Ditto for <dev/sysmon/sysmonvar.h>, <sys/bus.h>,
<dev/pci/pcivar.h>, and <dev/isa/isavar.h>.
Also nuke a lot of unused and invalid headers. Some of these are audibly
provided by standard headers (namely <sys/param.h> and <sys/device.h>), some
have nothing to do with ACPI devices (e.g. <sys/syslog.h>), and some are
nonexistent local includes (e.g. "mpu_ym.h"). Moreoever, try to group the
includes into their respective blocks.
Tested with GENERIC and ALL (i386). No functional change.
conditional compilation.
Make a few changes of this kind:
- ih = cardbus_intr_establish(cc, cf, ...);
+ ih = Cardbus_intr_establish(ct, ...);
- cardbus_intr_disestablish(cc, cf, ih);
+ Cardbus_intr_disestablish(ct, ih);
Tested by plugging a Syba CardBus to FireWire adapter into an HP
Pavilion N3270, adding an address (169.254.0.7/16) to fwip0, attaching
and pinging a MacBook Pro.
sys/dev/cardbus/if_rtw_cardbus.c: remove an unnecessary #include.
Change a few cut & paste instances of ADM8211 to RTL8180. Make the
suspend & resume functions static, add declarations for them at the top
of the file, and move the functions themselves to the bottom.
Register into a subroutine. Use terminology similar to that which
PCI System Architecture (4th Edition) uses. For comparison with PCI
reference books, specify flags and fields with __BIT(n) and __BITS(m, n)
instead of hexadecimal constants.