Re: [PATCH v2] firmware/psci: Print a warning if PSCI doesn't accept PC mode

Dmitry Baryshkov
2022-09-19T12:00:18Z

On 05/08/2022 17:19, Mark Rutland wrote:
> On Thu, Aug 04, 2022 at 04:07:50PM +0300, Dmitry Baryshkov wrote:
>> 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>
>
> Acked-by: Mark Rutland <mark.rutland@arm.com>
>
> Mark.

Granted that this patch has been acked by the maintainers of PSCI
interface, how do I proceed? Should I submit it to Russel's patch
tracker? Or do PSCI patches land via some other tree?

>
>> ---
>> This is a replacement for [1], now moving the warning from
>> psci_set_osi_mode() callers to the function iself.
>>
>> https://lore.kernel.org/all/20220727182034.983727-1-dmitry.baryshkov@linaro.org/
>>
>> ---
>> drivers/cpuidle/cpuidle-psci-domain.c | 4 +---
>> drivers/firmware/psci/psci.c | 2 ++
>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/cpuidle/cpuidle-psci-domain.c b/drivers/cpuidle/cpuidle-psci-domain.c
>> index 3db4fca1172b..821984947ed9 100644
>> --- a/drivers/cpuidle/cpuidle-psci-domain.c
>> +++ b/drivers/cpuidle/cpuidle-psci-domain.c
>> @@ -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;
>> }
>> diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c
>> index cfb448eabdaa..1628f1edef4a 100644
>> --- a/drivers/firmware/psci/psci.c
>> +++ b/drivers/firmware/psci/psci.c
>> @@ -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);
>> }
>>
>> --
>> 2.35.1
>>

--
With best wishes
Dmitry