]> git.baikalelectronics.ru Git - kernel.git/commit
ACPI: power: Refine turning off unused power resources
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 21 May 2021 13:13:11 +0000 (15:13 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 24 May 2021 14:08:17 +0000 (16:08 +0200)
commitbef3e7baac3b8469efde332bf2c04b6536f4b761
tree975215d0b87f8e97b9ba6b245ba95ee9fac9ed65
parent70cbf5cd52e65b9e7ea198f97a0465a1d703a656
ACPI: power: Refine turning off unused power resources

Commit 8f4d7aafe632 ("ACPI: power: Turn off unused power resources
unconditionally") dropped the power resource state check from
acpi_turn_off_unused_power_resources(), because according to the
ACPI specification (e.g. ACPI 6.4, Section 7.2.2) the OS "may run
the _OFF method repeatedly, even if the resource is already off".

However, it turns out that some systems do not follow the
specification in this particular respect and that commit introduced
boot issues on them, so refine acpi_turn_off_unused_power_resources()
to only turn off power resources without any users after device
enumeration and restore its previous behavior in the system-wide
resume path.

Fixes: 8f4d7aafe632 ("ACPI: power: Turn off unused power resources unconditionally")
Link: https://uefi.org/specs/ACPI/6.4/07_Power_and_Performance_Mgmt/declaring-a-power-resource-object.html#off
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=213019
Reported-by: Zhang Rui <rui.zhang@intel.com>
Tested-by: Zhang Rui <rui.zhang@intel.com>
Reported-by: Dave Olsthoorn <dave@bewaar.me>
Tested-by: Dave Olsthoorn <dave@bewaar.me>
Reported-by: Shujun Wang <wsj20369@163.com>
Tested-by: Shujun Wang <wsj20369@163.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.c