]> git.baikalelectronics.ru Git - kernel.git/commit
ACPI / PM: Make __acpi_bus_get_power() cover D3cold correctly
authorRafael J. Wysocki <rjw@sisk.pl>
Sun, 20 May 2012 11:58:00 +0000 (13:58 +0200)
committerRafael J. Wysocki <rjw@sisk.pl>
Tue, 29 May 2012 19:20:24 +0000 (21:20 +0200)
commite8c1f8a33a4eaf32f6c8660e900ff8e0545a0921
treec18cc469f47bf0e79f3617c59175978e60f31878
parent72157d35e13e7d249b207f5a729ba7cc1a52fc59
ACPI / PM: Make __acpi_bus_get_power() cover D3cold correctly

After recent changes of the ACPI device power states definitions, if
power resources are not used for the device's power management, the
state returned by __acpi_bus_get_power() cannot exceed D3hot, because
the return values of _PSC are 0 through 3.  However, if the _PR3
method is not present for the device and _PS3 returns 3, we have to
assume that the device is in D3cold, so the value returned by
__acpi_bus_get_power() in that case should be 4.

Similarly, acpi_power_get_inferred_state() should take the power
resources for the D3hot state into account in general, so that it
can return 3 if those resources are "on" or 4 (D3cold) otherwise.

Fix the the above two issues and make sure that if both _PSC and
_PR3 are present for the device, the power resources listed by _PR3
will be used to determine if the number 3 returned by _PSC is meant
to represent D3cold or D3hot.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
drivers/acpi/bus.c
drivers/acpi/power.c