Re: [RFC][PATCH 10/12] PCI / ACPI PM: Platform support for PCI PME wake-up (rev. 4)

Matthew Garrett
2009-12-04T16:21:07Z

On Sun, Nov 29, 2009 at 04:42:20PM +0100, Rafael J. Wysocki wrote:

> + if (event == ACPI_NOTIFY_DEVICE_WAKE) {
> + if (nb->dev->wakeup.run_wake_count > 0) {
> + if (nb->pci_bus)
> + pci_pme_wakeup_bus(nb->pci_bus);
> + if (nb->pci_dev)
> + pci_pme_wakeup(nb->pci_dev);

We may receive wakeup events on devices that aren't PME capable, which
is the case for uhci on my test box. In that case we probably want to
wake them up unconditionally.

+ if (nb->pci_dev) {
+ if (nb->pci_dev->pm_cap)
+ pci_pme_wakeup(nb->pci_dev);
+ else
+ pm_request_resume(&nb->pci_dev->dev);

seems to work, though possibly we should assume that the firmware knows
best and always schedule a wake in respose to a resume request?

--
Matthew Garrett | mjg59@srcf.ucam.org