]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
PM: suspend: Set mem_sleep_current during kernel command line setup
authorMaulik Shah <quic_mkshah@quicinc.com>
Thu, 29 Feb 2024 06:44:59 +0000 (12:14 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Apr 2024 10:58:13 +0000 (12:58 +0200)
[ Upstream commit 9bc4ffd32ef8943f5c5a42c9637cfd04771d021b ]

psci_init_system_suspend() invokes suspend_set_ops() very early during
bootup even before kernel command line for mem_sleep_default is setup.
This leads to kernel command line mem_sleep_default=s2idle not working
as mem_sleep_current gets changed to deep via suspend_set_ops() and never
changes back to s2idle.

Set mem_sleep_current along with mem_sleep_default during kernel command
line setup as default suspend mode.

Fixes: faf7ec4a92c0 ("drivers: firmware: psci: add system suspend support")
CC: stable@vger.kernel.org # 5.4+
Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/power/suspend.c

index 4aa4d5d3947f140e3793e575bbd3519bfa678735..14e981c0588adbc3eb211b6dbf8079f04c4bfdf9 100644 (file)
@@ -187,6 +187,7 @@ static int __init mem_sleep_default_setup(char *str)
                if (mem_sleep_labels[state] &&
                    !strcmp(str, mem_sleep_labels[state])) {
                        mem_sleep_default = state;
+                       mem_sleep_current = state;
                        break;
                }