ACPI / PM: Fix problems with acpi_pm_device_sleep_state()
authorRafael J. Wysocki <rjw@sisk.pl>
Thu, 14 Oct 2010 21:24:13 +0000 (23:24 +0200)
committerLen Brown <len.brown@intel.com>
Fri, 15 Oct 2010 20:25:15 +0000 (16:25 -0400)
commit761afb869f649ea23e2dea7bfe9b550d3a1b7631
tree816a6eb04802b1befedaf07f9c1359dd4dc7a9f6
parentcd07202cc8262e1669edff0d97715f3dd9260917
ACPI / PM: Fix problems with acpi_pm_device_sleep_state()

There is a number of problems with acpi_pm_device_sleep_state() now.
First, if _S0W is not defined, it prevents devices from being put
into D3 by PCI runtime PM, which shouldn't happen.  Second, it
shouldn't use adev->wakeup.state.enabled, because if it's set, it
only means that either the device is permanently enabled to wake up
the system, or that it has been enabled to do that through
/proc/acpi/wakeup.  Finally, it should be compiled if CONFIG_PM_SLEEP
is not set, so that PCI runtime PM works correctly in that case.
Fix these problems.

Reported-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/sleep.c
include/acpi/acpi_bus.h