Re: [PATCH 1/1] thermal/drivers/imx_sc_thermal: return -EAGAIN when SCFW turn off resource

From: Frank Li
Date: Wed Aug 16 2023 - 12:29:50 EST


On Wed, Aug 16, 2023 at 10:44:32AM +0200, Daniel Lezcano wrote:
>
> Hi Frank,
>
> sorry for the delay
>
> On 14/07/2023 19:19, Frank Li wrote:
> > On Thu, Jul 13, 2023 at 02:49:54PM +0200, Daniel Lezcano wrote:
> > > On 12/07/2023 23:05, Frank Li wrote:
> > > > Avoid endless print following message when SCFW turns off resource.
> > > > [ 1818.342337] thermal thermal_zone0: failed to read out thermal zone (-1)
> > > >
> > > > Signed-off-by: Frank Li <Frank.Li@xxxxxxx>
> > > > ---
> > > > drivers/thermal/imx_sc_thermal.c | 4 +++-
> > > > 1 file changed, 3 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/thermal/imx_sc_thermal.c b/drivers/thermal/imx_sc_thermal.c
> > > > index 8d6b4ef23746..0533d58f199f 100644
> > > > --- a/drivers/thermal/imx_sc_thermal.c
> > > > +++ b/drivers/thermal/imx_sc_thermal.c
> > > > @@ -58,7 +58,9 @@ static int imx_sc_thermal_get_temp(struct thermal_zone_device *tz, int *temp)
> > > > hdr->size = 2;
> > > > ret = imx_scu_call_rpc(thermal_ipc_handle, &msg, true);
> > > > - if (ret)
> > > > + if (ret == -EPERM) /* NO POWER */
> > > > + return -EAGAIN;
> > >
> > > Isn't there a chain call somewhere when the resource is turned off, so the
> > > thermal zone can be disabled?
> >
> > A possible place in drivers/firmware/imx/scu-pd.c. but I am not sure how to
> > get thermal devices. I just found a API thermal_zone_get_zone_by_name(). I
> > am not sure if it is good to depend on "name", which add coupling between
> > two drivers and if there are external thermal devices(such as) has the
> > same name, it will wrong turn off.
>
> Correct
>
> > If add power domain notification in thermal driver, I am not how to get
> > other devices's pd in thermal driver.
> >
> > Any example I can refer?
> >
> > Or this is simple enough solution.
>
> The solution works for removing the error message but it does not solve the
> root cause of the issue. The thermal zone keeps monitoring while the sensor
> is down.
>
> So the question is why the sensor is shut down if it is in use?

Do you know if there are any code I reference? I supposed it is quite common.

Frank

>
>
>
> > >
> > > > + else if (ret)
> > > > return ret;
> > > > *temp = msg.data.resp.celsius * 1000 + msg.data.resp.tenths * 100;
> > >
> > > --
> > > <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
> > >
> > > Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
> > > <http://twitter.com/#!/linaroorg> Twitter |
> > > <http://www.linaro.org/linaro-blog/> Blog
> > >
>
> --
> <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
>
> Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
> <http://twitter.com/#!/linaroorg> Twitter |
> <http://www.linaro.org/linaro-blog/> Blog
>