ACPI: PM: Fix up turning off unused power resources
cover ACPI: PM: Fix up turning off unused power resources
Hi,
This series fixes a regression introduced during the 5.14 cycle and related to turning off unused ACPI power resources (patch [1/2]) and causes the states of all power resources to be checked during initialization (patch [2/2]).
Please refer to the patch changelogs for details.
Thanks!
PATCH 1/2 ACPI: PM: Do not turn off power resources in unknown state
From: Rafael J. Wysocki <[email protected]>
Commit 6381195ad7d0 ("ACPI: power: Rework turning off unused power resources") caused power resources in unknown state with reference counters equal to zero to be turned off too, but that caused issues to appear in the field, so modify the code to only turn off power resources that are known to be "on".
--- drivers/acpi/power.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
drivers/acpi/power.c +1 -6
@@ -1015,13 +1015,8 @@ void acpi_turn_off_unused_power_resourcelist_for_each_entry_reverse (resource, &acpi_power_resource_list, list_node) {mutex_lock (&resource->resource_lock); -/* -* Turn off power resources in an unknown state too, because the -* platform firmware on some system expects the OS to turn off -* power resources without any users unconditionally. -*/ if (!resource->ref_count && - resource->state !=ACPI_POWER_RESOURCE_STATE_OFF ) { + resource->state ==ACPI_POWER_RESOURCE_STATE_ON ) {acpi_handle_debug (resource->device.handle,"Turning OFF\n" );__acpi_power_off (resource); }
PATCH 2/2 ACPI: PM: Check states of power resources during initialization
In reply to Rafael J. WysockiFrom: Rafael J. Wysocki <[email protected]>
To avoid situations in which the actual states of certain ACPI power resources are not known just because they have never been referenced by any device configuration objects, check the initial states of all power resources as soon as they are found in the ACPI namespace (and fall back to turning them on if the state check fails).
---
Andreas, please test this patch (on top of the [1/2]) and let me know if it works for you.
Thanks!
--- drivers/acpi/power.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-)
drivers/acpi/power.c +5 -0
@@ -923,6 +919,7 @@ struct acpi_device *acpi_add_power_resouunion acpi_object acpi_object;struct acpi_buffer buffer = {sizeof (acpi_object), &acpi_object };acpi_status status; +u8 state_dummy;int result;acpi_bus_get_device (handle, &device);
@@ -951,6 +948,10 @@ struct acpi_device *acpi_add_power_resou resource->order = acpi_object.power_resource.resource_order; resource->state =ACPI_POWER_RESOURCE_STATE_UNKNOWN ; +/* Get the initial state or just flip it on if that fails. */ +if (acpi_power_get_state (resource, &state_dummy)) +__acpi_power_on (resource); +pr_info ("%s [%s]\n" ,acpi_device_name (device),acpi_device_bid (device)); device->flags.match_driver = true;
Re: [EXT] [PATCH v1 2/2][RFT] ACPI: PM: Check states of power resources during initialization
Am Freitag, 15. Oktober 2021, 19:14:10 CEST schrieb Rafael J. Wysocki:
Quoted 8 lines
From: Rafael J. Wysocki <[email protected]>
To avoid situations in which the actual states of certain ACPI power resources are not known just because they have never been referenced by any device configuration objects, check the initial states of all power resources as soon as they are found in the ACPI namespace (and fall back to turning them on if the state check fails).
Quoted 6 lines
Signed-off-by Rafael J. Wysocki <[email protected]>---
Andreas, please test this patch (on top of the [1/2]) and let me know if it works for you.
I see no negative impact (actually, no impact at all) of the second additional patch. The network card is again working fine now.
Boot logs (unpatched, with one patch, with both patches) at
https://dev.gentoo.org/~dilfridge/igb/ (the 5.14.12* files).
Best,
Andreas
Signature · 11 lines
PD Dr. Andreas K. Huettel Institute for Experimental and Applied Physics University of Regensburg 93040 Regensburg Germany tel. +49 151 241 67748 (mobile) tel. +49 941 943 1618 (office) e-mail [email protected] http://www.akhuettel.de/ http://www.physik.uni-r.de/forschung/huettel/
Rafael J. Wysocki
maintainerRe: [EXT] [PATCH v1 2/2][RFT] ACPI: PM: Check states of power resources during initialization
Quoted 17 lines · Andreas K. Huettel
Am Freitag, 15. Oktober 2021, 19:14:10 CEST schrieb Rafael J. Wysocki:
Quoted 8 lines
From: Rafael J. Wysocki <[email protected]>
To avoid situations in which the actual states of certain ACPI power resources are not known just because they have never been referenced by any device configuration objects, check the initial states of all power resources as soon as they are found in the ACPI namespace (and fall back to turning them on if the state check fails).
Quoted 6 lines
Signed-off-by Rafael J. Wysocki <[email protected]>---
Andreas, please test this patch (on top of the [1/2]) and let me know if it works for you.
Quoted 5 lines
I see no negative impact (actually, no impact at all) of the second additional patch. The network card is again working fine now.
Boot logs (unpatched, with one patch, with both patches) at
https://dev.gentoo.org/~dilfridge/igb/ (the 5.14.12* files).
Thanks!