RE: [PATCH] thermal: imx8mm: Fix build warning of incorrect argument type

From: Anson Huang
Date: Mon Mar 23 2020 - 10:54:40 EST


Hi, Daniel

> Subject: Re: [PATCH] thermal: imx8mm: Fix build warning of incorrect
> argument type
>
> On 23/03/2020 15:19, Anson Huang wrote:
> > Fix below sparse warning:
> >
> > drivers/thermal/imx8mm_thermal.c:82:36: sparse: sparse: incorrect type
> > in argument 2 (different address spaces), expected unsigned long const
> > volatile *addr
> > drivers/thermal/imx8mm_thermal.c:82:36: sparse: expected unsigned long
> > const volatile *addr
> >
> > Signed-off-by: Anson Huang <Anson.Huang@xxxxxxx>
> > ---
> > drivers/thermal/imx8mm_thermal.c | 7 +++----
> > 1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/thermal/imx8mm_thermal.c
> > b/drivers/thermal/imx8mm_thermal.c
> > index c32308b..0d60f8d 100644
> > --- a/drivers/thermal/imx8mm_thermal.c
> > +++ b/drivers/thermal/imx8mm_thermal.c
> > @@ -75,15 +75,14 @@ static int imx8mp_tmu_get_temp(void *data, int
> > *temp) {
> > struct tmu_sensor *sensor = data;
> > struct imx8mm_tmu *tmu = sensor->priv;
> > + unsigned long val;
> > bool ready;
> > - u32 val;
> >
> > - ready = test_bit(probe_status_offset(sensor->hw_id),
> > - tmu->base + TRITSR);
> > + val = readl_relaxed(tmu->base + TRITSR);
> > + ready = test_bit(probe_status_offset(sensor->hw_id), &val);
> > if (!ready)
> > return -EAGAIN;
>
> Doesn't this patch also fix a bug because the read was done after testing the
> bit? :)

Yesð Previous patch reads the register twice at different time, may cause a
sync issue of checking the ready bit and reading the temperature using register
values read at different time.

Do I need to improve the commit log? I guess no need?

Thanks,
Anson