diff mbox series

thermal: imx8mm: Fix build warning of incorrect argument type

Message ID 1584973156-25734-1-git-send-email-Anson.Huang@nxp.com (mailing list archive)
State Mainlined
Commit 76a5c400aae52f541737de982e2b5a2e1f423bab
Headers show
Series thermal: imx8mm: Fix build warning of incorrect argument type | expand

Commit Message

Anson Huang March 23, 2020, 2:19 p.m. UTC
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(-)

Comments

Daniel Lezcano March 23, 2020, 2:33 p.m. UTC | #1
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 */
>
Anson Huang March 23, 2020, 2:53 p.m. UTC | #2
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
Daniel Lezcano March 23, 2020, 4:14 p.m. UTC | #3
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 mbox series

Patch

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 */