firmware/psci: Print a warning if PSCI doesn't accept PC mode
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Mon, 26 Sep 2022 11:02:49 +0000 (14:02 +0300)
committerArnd Bergmann <arnd@arndb.de>
Wed, 28 Sep 2022 20:37:55 +0000 (22:37 +0200)
The function psci_pd_try_set_osi_mode() will print an error if enabling
OSI mode fails. To ease debugging PSCI issues print corresponding
message if switching to PC mode fails too.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20220926110249.666813-1-dmitry.baryshkov@linaro.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/cpuidle/cpuidle-psci-domain.c
drivers/firmware/psci/psci.c

index 3db4fca1172b4355877426a8a5f1b4aa95f942b7..821984947ed9bff93ebd169307af64a49aea7515 100644 (file)
@@ -124,10 +124,8 @@ static bool psci_pd_try_set_osi_mode(void)
                return false;
 
        ret = psci_set_osi_mode(true);
-       if (ret) {
-               pr_warn("failed to enable OSI mode: %d\n", ret);
+       if (ret)
                return false;
-       }
 
        return true;
 }
index cfb448eabdaa22e367c5f9159cdc9ddfd782332f..1628f1edef4a840269291b297f242977236022eb 100644 (file)
@@ -163,6 +163,8 @@ int psci_set_osi_mode(bool enable)
                        PSCI_1_0_SUSPEND_MODE_PC;
 
        err = invoke_psci_fn(PSCI_1_0_FN_SET_SUSPEND_MODE, suspend_mode, 0, 0);
+       if (err < 0)
+               pr_warn("failed to set %s mode: %d\n", enable ? "OSI" : "PC", err);
        return psci_to_linux_errno(err);
 }