diff mbox series

PSCI: Print a warning if PSCI doesn't accept PC mode

Message ID 20220727182034.983727-1-dmitry.baryshkov@linaro.org (mailing list archive)
State New, archived
Headers show
Series PSCI: Print a warning if PSCI doesn't accept PC mode | expand

Commit Message

Dmitry Baryshkov July 27, 2022, 6:20 p.m. UTC
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>
---
 drivers/firmware/psci/psci.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Sudeep Holla July 28, 2022, 8:58 a.m. UTC | #1
On Wed, Jul 27, 2022 at 09:20:34PM +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.
>

Are you seeing that even setting to PC mode failing on msm8996. The platform
must boot in PC mode, so even if it fails we ignore so not sure if the logging
is of much help here IMO.

> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>  drivers/firmware/psci/psci.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c
> index cfb448eabdaa..b907768eea01 100644
> --- a/drivers/firmware/psci/psci.c
> +++ b/drivers/firmware/psci/psci.c
> @@ -597,7 +597,9 @@ static int __init psci_1_0_init(struct device_node *np)
>  		pr_info("OSI mode supported.\n");
>  
>  		/* Default to PC mode. */
> -		psci_set_osi_mode(false);
> +		err = psci_set_osi_mode(false);
> +		if (err)
> +			pr_info("setting PC mode failed with %d\n", err);

Since we don't care about error value here, does it make sense to add the
log in psci_set_osi_mode() that covers both PC and OSI case whenever it is
called ?
Dmitry Baryshkov July 28, 2022, 9:35 a.m. UTC | #2
On Thu, 28 Jul 2022 at 11:58, Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> On Wed, Jul 27, 2022 at 09:20:34PM +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.
> >
>
> Are you seeing that even setting to PC mode failing on msm8996. The platform
> must boot in PC mode, so even if it fails we ignore so not sure if the logging
> is of much help here IMO.

It helped me to understand that it is not only setting OSI, who fails
with the 'not_supported' status, but setting PC mode also fails. Which
later led me to checking which functions are provided at all, etc.

>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >  drivers/firmware/psci/psci.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c
> > index cfb448eabdaa..b907768eea01 100644
> > --- a/drivers/firmware/psci/psci.c
> > +++ b/drivers/firmware/psci/psci.c
> > @@ -597,7 +597,9 @@ static int __init psci_1_0_init(struct device_node *np)
> >               pr_info("OSI mode supported.\n");
> >
> >               /* Default to PC mode. */
> > -             psci_set_osi_mode(false);
> > +             err = psci_set_osi_mode(false);
> > +             if (err)
> > +                     pr_info("setting PC mode failed with %d\n", err);
>
> Since we don't care about error value here, does it make sense to add the
> log in psci_set_osi_mode() that covers both PC and OSI case whenever it is
> called ?

Yes, this sounds like a logical idea. I'll do this in v2.
diff mbox series

Patch

diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c
index cfb448eabdaa..b907768eea01 100644
--- a/drivers/firmware/psci/psci.c
+++ b/drivers/firmware/psci/psci.c
@@ -597,7 +597,9 @@  static int __init psci_1_0_init(struct device_node *np)
 		pr_info("OSI mode supported.\n");
 
 		/* Default to PC mode. */
-		psci_set_osi_mode(false);
+		err = psci_set_osi_mode(false);
+		if (err)
+			pr_info("setting PC mode failed with %d\n", err);
 	}
 
 	return 0;