[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Zvbi7g+xpI8fGth6@lizhi-Precision-Tower-5810>
Date: Fri, 27 Sep 2024 12:53:02 -0400
From: Frank Li <Frank.li@....com>
To: Hardevsinh Palaniya <hardevsinh.palaniya@...iconsignals.io>
Cc: linux-spi@...r.kernel.org, olteanv@...il.com, broonie@...nel.org,
Han Xu <han.xu@....com>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>, Haibo Chen <haibo.chen@....com>,
Yogesh Gaur <yogeshgaur.83@...il.com>, imx@...ts.linux.dev,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH 3/4] spi: spi-imx: Fix casting warnings
On Fri, Sep 27, 2024 at 06:58:34PM +0530, Hardevsinh Palaniya wrote:
> Sparse warnings:
>
> drivers/spi/spi-imx.c:410:19: warning: cast to restricted __be32
> drivers/spi/spi-imx.c:410:19: warning: cast to restricted __be32
> drivers/spi/spi-imx.c:410:19: warning: cast to restricted __be32
> drivers/spi/spi-imx.c:410:19: warning: cast to restricted __be32
> drivers/spi/spi-imx.c:410:19: warning: cast to restricted __be32
> drivers/spi/spi-imx.c:410:19: warning: cast to restricted __be32
> drivers/spi/spi-imx.c:439:21: warning: incorrect type in assignment (different base types)
> drivers/spi/spi-imx.c:439:21: expected unsigned int [addressable] [usertype] val
> drivers/spi/spi-imx.c:439:21: got restricted __be32 [usertype]
>
> Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@...iconsignals.io>
> ---
> drivers/spi/spi-imx.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
> index 85bd1a82a34e..8d09d9c1c556 100644
> --- a/drivers/spi/spi-imx.c
> +++ b/drivers/spi/spi-imx.c
> @@ -407,7 +407,7 @@ static void spi_imx_buf_tx_swap(struct spi_imx_data *spi_imx)
>
> static void mx53_ecspi_rx_target(struct spi_imx_data *spi_imx)
> {
> - u32 val = be32_to_cpu(readl(spi_imx->base + MXC_CSPIRXDATA));
> + u32 val = readl(spi_imx->base + MXC_CSPIRXDATA);
be32_to_cpu() is necessary in little endian system. You can't simple remove
it. you can use ioread32be here.
>
> if (spi_imx->rx_buf) {
> int n_bytes = spi_imx->target_burst % sizeof(val);
> @@ -436,7 +436,7 @@ static void mx53_ecspi_tx_target(struct spi_imx_data *spi_imx)
> if (spi_imx->tx_buf) {
> memcpy(((u8 *)&val) + sizeof(val) - n_bytes,
> spi_imx->tx_buf, n_bytes);
> - val = cpu_to_be32(val);
> + val = (__force u32)cpu_to_be32(val);
> spi_imx->tx_buf += n_bytes;
> }
Original code logic is strange, you'd better to remove cpu_to_be32 here.
below writel change to iowrite32be().
Frank
>
> --
> 2.43.0
>
Powered by blists - more mailing lists