On Mon, 26 Sep 2011, Rafael J. Wysocki wrote: > > The test results are as follows. During late suspend: > > > > acpi_pci_sleep_wake() is called for the 0000:01:01.1 device > > with enable set to 1. > > > > acpi_pci_can_wakeup() returns 0. > > > > acpi_pci_propagate_wakeup_enable() is called for the 0000:01 > > bus device, also known as 0000:00:1e.0. > > > > acpi_pm_device_sleep_wake() is called for 0000:00:1e.0; it > > prints out "pci 0000:00:1e.0: wake-up capability enabled by > > ACPI" and returns 0. > > > > This causes acpi_pci_propagate_wakeup_enable() to return from > > within the "while (bus->parent)" loop. > > > > There also are log messages stating "ohci_hcd 0000:01:01.1: PME# > > enabled" and "ohci_hcd 0000:01:01.1: --> PCI D3hot". Nevertheless, it > > doesn't wake up the system. > > What's there in /proc/acpi/wakeup ? Here it is: Device S-state Status Sysfs node P0P4 S4 *disabled pci:0000:00:1e.0 MC97 S4 *disabled USB1 S4 *enabled pci:0000:00:1d.0 USB2 S4 *enabled pci:0000:00:1d.1 USB3 S4 *enabled pci:0000:00:1d.2 USB4 S4 *enabled pci:0000:00:1d.3 EUSB S4 *enabled pci:0000:00:1d.7 PS2K S4 *enabled pnp:00:09 PS2M S4 *disabled pnp:00:0a GBEN S4 *disabled Of course the 000:01:01.1 device isn't on the list, because it's part of an add-on PCI card, not built into the motherboard. I tried echoing "P0P4" to /proc/acpi/wakeup, which caused the first line above to say "enabled", but there was no difference in behavior. Is the fact that the S-state column says S4 relevant (bearing in mind that the test does an S3 suspend)? I also checked the setting of /sys/bus/pci/devices/0000:00:1e.0/power/wakeup, and it says "enabled" following the write to /proc/acpi/wakeup. Now, it's possible that the problem is at a lower level. Maybe the device is not getting wakeup power even though it's supposed to be in D3hot. I don't know how to check that, however, or how to see whether or not its PME# signal is asserted when the system wakes up. By the time the system finishes resuming it is too late, because the driver's resume routine does a complete reset of the device (not to mention that the PCI subsystem's resume routine restores the device's config space contents and disables PME#). Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html