linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] thermal: imx8mm: Fix build warning of incorrect argument type
@ 2020-03-23 14:19 Anson Huang
  2020-03-23 14:33 ` Daniel Lezcano
  0 siblings, 1 reply; 4+ messages in thread
From: Anson Huang @ 2020-03-23 14:19 UTC (permalink / raw)
  To: rui.zhang, daniel.lezcano, amit.kucheria, shawnguo, s.hauer,
	kernel, festevam, linux-pm, linux-arm-kernel, linux-kernel
  Cc: Linux-imx

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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] thermal: imx8mm: Fix build warning of incorrect argument type
  2020-03-23 14:19 [PATCH] thermal: imx8mm: Fix build warning of incorrect argument type Anson Huang
@ 2020-03-23 14:33 ` Daniel Lezcano
  2020-03-23 14:53   ` Anson Huang
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Lezcano @ 2020-03-23 14:33 UTC (permalink / raw)
  To: Anson Huang, rui.zhang, amit.kucheria, shawnguo, s.hauer, kernel,
	festevam, linux-pm, linux-arm-kernel, linux-kernel
  Cc: Linux-imx

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


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] thermal: imx8mm: Fix build warning of incorrect argument type
  2020-03-23 14:33 ` Daniel Lezcano
@ 2020-03-23 14:53   ` Anson Huang
  2020-03-23 16:14     ` Daniel Lezcano
  0 siblings, 1 reply; 4+ messages in thread
From: Anson Huang @ 2020-03-23 14:53 UTC (permalink / raw)
  To: Daniel Lezcano, rui.zhang, amit.kucheria, shawnguo, s.hauer,
	kernel, festevam, linux-pm, linux-arm-kernel, linux-kernel
  Cc: dl-linux-imx

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😊 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 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] thermal: imx8mm: Fix build warning of incorrect argument type
  2020-03-23 14:53   ` Anson Huang
@ 2020-03-23 16:14     ` Daniel Lezcano
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Lezcano @ 2020-03-23 16:14 UTC (permalink / raw)
  To: Anson Huang, rui.zhang, amit.kucheria, shawnguo, s.hauer, kernel,
	festevam, linux-pm, linux-arm-kernel, linux-kernel
  Cc: dl-linux-imx

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😊 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?

No need, it is fine.


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-03-23 16:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-23 14:19 [PATCH] thermal: imx8mm: Fix build warning of incorrect argument type Anson Huang
2020-03-23 14:33 ` Daniel Lezcano
2020-03-23 14:53   ` Anson Huang
2020-03-23 16:14     ` Daniel Lezcano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).