PCI PM: Put devices into low power states during late suspend (rev. 2)
authorRafael J. Wysocki <rjw@sisk.pl>
Mon, 16 Mar 2009 21:40:26 +0000 (22:40 +0100)
committerRafael J. Wysocki <rjw@sisk.pl>
Mon, 30 Mar 2009 19:46:55 +0000 (21:46 +0200)
commit46939f8b15e44f065d052e89ea4f2adc81fdc740
treee8af8e84d9f84bbf08e24ceae46a36eaad6764f6
parent0128a89cf75124500b5b69f0c3c7b7c5aa60676f
PCI PM: Put devices into low power states during late suspend (rev. 2)

Once we have allowed timer interrupts to be enabled during the late
phase of suspending devices, we are now able to use the generic
pci_set_power_state() to put PCI devices into low power states at
that time.  We can also use some related platform callbacks, like the
ones preparing devices for wake-up, during the late suspend.

Doing this will allow us to avoid the race condition where a device
using shared interrupts is put into a low power state with interrupts
enabled and then an interrupt (for another device) comes in and
confuses its driver.  At the same time, devices that don't support
the native PCI PM or that require some additional, platform-specific
operations to be carried out to put them into low power states will
be handled as appropriate.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/pci-driver.c