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

From: Daniel Lezcano
Date: Mon Mar 23 2020 - 10:33:25 EST


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? :)

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