Message ID | 1584973156-25734-1-git-send-email-Anson.Huang@nxp.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Daniel Lezcano |
Headers | show |
Series | thermal: imx8mm: Fix build warning of incorrect argument type | expand |
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@nxp.com> > --- > 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? :) > - val = readl_relaxed(tmu->base + TRITSR); > val = sensor->hw_id ? FIELD_GET(TRITSR_TEMP1_VAL_MASK, val) : > FIELD_GET(TRITSR_TEMP0_VAL_MASK, val); > if (val & SIGN_BIT) /* negative */ >
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@nxp.com> > > --- > > 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
On 23/03/2020 15:53, Anson Huang wrote: > 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@nxp.com> >>> --- >>> 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
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; - val = readl_relaxed(tmu->base + TRITSR); val = sensor->hw_id ? FIELD_GET(TRITSR_TEMP1_VAL_MASK, val) : FIELD_GET(TRITSR_TEMP0_VAL_MASK, val); if (val & SIGN_BIT) /* negative */
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@nxp.com> --- drivers/thermal/imx8mm_thermal.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)