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)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 29 Feb 2024 19:33:00 +0000 (20:33 +0100)
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>
kernel/power/suspend.c

index 742eb26618ccb1b612859c26423c0ca9361c8b07..e3ae93bbcb9b50d487727bee16f63f67d66442ac 100644 (file)
@@ -192,6 +192,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;
                }