Re: [linux-pm] [RFC][PATCH 4/4] PCI/ACPI PM: Propagate wake-up enable for devices w/o ACPI support

Rafael J. Wysocki
2009-09-04T22:03:46Z

On Friday 04 September 2009, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Some PCI devices (not PCI Express), like PCI add-on cards, can
> generate PME#, but they don't have any special platform wake-up
> support. For this reason, even if they generate PME# to wake up the
> system from a sleep state, wake-up events are not generated by the
> platform.
>
> It turns out that, at least on some systems, PCI bridges and the PCI
> host bridge have ACPI GPEs associated with them that, if enabled to
> generate wake-up events, allow the system to wake up if one of the
> add-on devices asserts PME# while the system is in a sleep state.
> Following this observation, if a PCI device without direct ACPI
> wake-up support is prepared to wake up the system during a transition
> into a sleep state (eg. suspend to RAM), configure all the bridges on
> the path from the device to the root bridge (including the root
> bridge itself) to wake-up the system.

I thought it would be better to split this patch into two patches, one
replacing the wakeup.prepared flag with a reference counter and the other
reworking the PCI ACPI wakeup routine.

I the second patch I followed the Yakui's suggestion to propagate wake-up
enable until we find the first device with ACPI support for wake-up.

The patches will follow in replies to this message.

Thanks,
Rafael