ACPI / PM: Do not power manage devices in unknown initial states
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 1 Feb 2013 22:43:02 +0000 (23:43 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 1 Feb 2013 22:43:02 +0000 (23:43 +0100)
commitb3785492268f9f3cdaa9722facb84b266dcf8bf6
treee7af7871921307b90b520c526127d0e654ac6e96
parentdde3bb4159dfd872a755922b6a22e005e78389b6
ACPI / PM: Do not power manage devices in unknown initial states

In general, for ACPI device power management to work, the initial
power states of devices must be known (otherwise, we wouldn't be able
to keep track of power resources, for example).  Hence, if it is
impossible to determine the initial ACPI power states of some
devices, they can't be regarded as power-manageable using ACPI.

For this reason, modify acpi_bus_get_power_flags() to clear the
power_manageable flag if acpi_bus_init_power() fails and add some
extra fallback code to acpi_bus_init_power() to cover broken
BIOSes that provide _PS0/_PS3 without _PSC for some devices.

Verified to work on my HP nx6325 that has this problem.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Peter Wu <lekensteyn@gmail.com>
drivers/acpi/device_pm.c
drivers/acpi/scan.c