Re: [PATCH 2/4] spi: spi-fsl-qspi: Fix casting warnings

From: Frank Li
Date: Fri Sep 27 2024 - 11:40:55 EST


On Fri, Sep 27, 2024 at 06:58:33PM +0530, Hardevsinh Palaniya wrote:
> Sparse warnings:
>
> drivers/spi/spi-fsl-qspi.c:635:25: warning: cast from restricted __be32
>
> Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@xxxxxxxxxxxxxxxxx>
> ---
> drivers/spi/spi-fsl-qspi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/spi/spi-fsl-qspi.c b/drivers/spi/spi-fsl-qspi.c
> index 79bac30e79af..e4a2a6049e33 100644
> --- a/drivers/spi/spi-fsl-qspi.c
> +++ b/drivers/spi/spi-fsl-qspi.c
> @@ -632,7 +632,7 @@ static int fsl_qspi_readl_poll_tout(struct fsl_qspi *q, void __iomem *base,
> u32 reg;
>
> if (!q->devtype_data->little_endian)
> - mask = (u32)cpu_to_be32(mask);
> + mask =(__force u32)cpu_to_be32(mask);

Most this kind warning report the real problem. I don't suggest fix as it

the 'if branch' should be removed.

and simple

return read_poll_timeout(qspi_readl, reg, !(reg & mask), delay_us, timeout_us,
q, base);

qspi_readl() already handle endian problem.

Frank

>
> return readl_poll_timeout(base, reg, !(reg & mask), delay_us,
> timeout_us);
> --
> 2.43.0
>