ACPI: processor idle: Allow playing dead in C3 state
authorRichard Gong <richard.gong@amd.com>
Wed, 22 Sep 2021 13:31:16 +0000 (08:31 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Apr 2022 07:34:04 +0000 (09:34 +0200)
commit d6b88ce2eb9d2698eb24451eb92c0a1649b17bb1 upstream.

When some cores are disabled on AMD platforms, the system will no longer
be able to enter suspend-to-idle s0ix.

Update to allow playing dead in C3 state so that the CPUs can enter the
deepest state on AMD platforms.

BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1708
Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Richard Gong <richard.gong@amd.com>
[ rjw: Fixed coding style ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/processor_idle.c

index 3e369d0..ef6762a 100644 (file)
@@ -789,7 +789,8 @@ static int acpi_processor_setup_cstates(struct acpi_processor *pr)
                state->enter = acpi_idle_enter;
 
                state->flags = 0;
-               if (cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2) {
+               if (cx->type == ACPI_STATE_C1 || cx->type == ACPI_STATE_C2 ||
+                   cx->type == ACPI_STATE_C3) {
                        state->enter_dead = acpi_idle_play_dead;
                        drv->safe_state_index = count;
                }