ACPI: scan: Turn off unused power resources during initialization
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 18 Mar 2021 18:25:12 +0000 (19:25 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 23 Mar 2021 17:59:32 +0000 (18:59 +0100)
commit4b9ee772eaa82188b0eb8e05bdd1707c2a992004
tree0b7d70d086c61ac466f9fb3fc12f93e4bc53ba8a
parent0d02ec6b3136c73c09e7859f0d0e4e2c4c07b49b
ACPI: scan: Turn off unused power resources during initialization

It is reported that on certain platforms there are power resources
that are not associated with any devices physically present in the
platform.  Those power resources are expected to be turned off by
the OS in accordance with the ACPI specification (section 7.3 of
ACPI 6.4) which currently is not done by Linux and that may lead
to obscure issues.

For instance, leaving those power resources in the "on" state may
prevent the platform from reaching the lowest power state in
suspend-to-idle which leads to excessive power draw.

For this reason, turn all of the unused ACPI power resources off
at the end of the initial namespace scan for devices in analogy with
resume from suspend-to-RAM.

Link: https://uefi.org/specs/ACPI/6.4/07_Power_and_Performance_Mgmt/device-power-management-objects.html
Reported-by: David Box <david.e.box@linux.intel.com>
Tested-by: Wendy Wang <wendy.wang@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/internal.h
drivers/acpi/power.c
drivers/acpi/scan.c
drivers/acpi/sleep.h