Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] spi: spi-fsl-dspi: Fix casting warnings
@ 2024-09-27 13:28 Hardevsinh Palaniya
  2024-09-27 13:28 ` [PATCH 2/4] spi: spi-fsl-qspi: " Hardevsinh Palaniya
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Hardevsinh Palaniya @ 2024-09-27 13:28 UTC (permalink / raw)
  To: linux-spi, olteanv, broonie
  Cc: Hardevsinh Palaniya, Han Xu, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Haibo Chen, Yogesh Gaur,
	imx, linux-kernel, linux-arm-kernel

Sparse warnings:

drivers/spi/spi-fsl-dspi.c:283:17: warning: incorrect type in assignment (different base types)
drivers/spi/spi-fsl-dspi.c:283:17:    expected unsigned int [usertype]
drivers/spi/spi-fsl-dspi.c:283:17:    got restricted __be32 [usertype]
drivers/spi/spi-fsl-dspi.c:289:28: warning: cast to restricted __be32
drivers/spi/spi-fsl-dspi.c:289:28: warning: cast to restricted __be32
drivers/spi/spi-fsl-dspi.c:289:28: warning: cast to restricted __be32
drivers/spi/spi-fsl-dspi.c:289:28: warning: cast to restricted __be32
drivers/spi/spi-fsl-dspi.c:289:28: warning: cast to restricted __be32
drivers/spi/spi-fsl-dspi.c:289:28: warning: cast to restricted __be32
drivers/spi/spi-fsl-dspi.c:295:17: warning: incorrect type in assignment (different base types)
drivers/spi/spi-fsl-dspi.c:295:17:    expected unsigned int [usertype]
drivers/spi/spi-fsl-dspi.c:295:17:    got restricted __be16 [usertype]
drivers/spi/spi-fsl-dspi.c:301:28: warning: cast to restricted __be16
drivers/spi/spi-fsl-dspi.c:301:28: warning: cast to restricted __be16
drivers/spi/spi-fsl-dspi.c:301:28: warning: cast to restricted __be16
drivers/spi/spi-fsl-dspi.c:301:28: warning: cast to restricted __be16

Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
---
 drivers/spi/spi-fsl-dspi.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
index 191de1917f83..e34588679514 100644
--- a/drivers/spi/spi-fsl-dspi.c
+++ b/drivers/spi/spi-fsl-dspi.c
@@ -280,25 +280,25 @@ static void dspi_native_dev_to_host(struct fsl_dspi *dspi, u32 rxdata)
 
 static void dspi_8on32_host_to_dev(struct fsl_dspi *dspi, u32 *txdata)
 {
-	*txdata = cpu_to_be32(*(u32 *)dspi->tx);
+	*txdata = (__force u32)cpu_to_be32(*(u32 *)dspi->tx);
 	dspi->tx += sizeof(u32);
 }
 
 static void dspi_8on32_dev_to_host(struct fsl_dspi *dspi, u32 rxdata)
 {
-	*(u32 *)dspi->rx = be32_to_cpu(rxdata);
+	*(u32 *)dspi->rx = be32_to_cpu((__force __be32)rxdata);
 	dspi->rx += sizeof(u32);
 }
 
 static void dspi_8on16_host_to_dev(struct fsl_dspi *dspi, u32 *txdata)
 {
-	*txdata = cpu_to_be16(*(u16 *)dspi->tx);
+	*txdata = (__force u32)cpu_to_be16(*(u16 *)dspi->tx);
 	dspi->tx += sizeof(u16);
 }
 
 static void dspi_8on16_dev_to_host(struct fsl_dspi *dspi, u32 rxdata)
 {
-	*(u16 *)dspi->rx = be16_to_cpu(rxdata);
+	*(u16 *)dspi->rx = be16_to_cpu((__force __be16)rxdata);
 	dspi->rx += sizeof(u16);
 }
 
-- 
2.43.0



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

* [PATCH 2/4] spi: spi-fsl-qspi: Fix casting warnings
  2024-09-27 13:28 [PATCH 1/4] spi: spi-fsl-dspi: Fix casting warnings Hardevsinh Palaniya
@ 2024-09-27 13:28 ` Hardevsinh Palaniya
  2024-09-27 15:40   ` Frank Li
  2024-09-27 13:28 ` [PATCH 3/4] spi: spi-imx: " Hardevsinh Palaniya
  2024-09-27 13:28 ` [PATCH 4/4] spi: spi-nxp-fspi: " Hardevsinh Palaniya
  2 siblings, 1 reply; 10+ messages in thread
From: Hardevsinh Palaniya @ 2024-09-27 13:28 UTC (permalink / raw)
  To: linux-spi, olteanv, broonie
  Cc: Hardevsinh Palaniya, Han Xu, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Haibo Chen, Yogesh Gaur,
	imx, linux-kernel, linux-arm-kernel

Sparse warnings:

drivers/spi/spi-fsl-qspi.c:635:25: warning: cast from restricted __be32

Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
---
 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);
 
 	return readl_poll_timeout(base, reg, !(reg & mask), delay_us,
 				  timeout_us);
-- 
2.43.0



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

* [PATCH 3/4] spi: spi-imx: Fix casting warnings
  2024-09-27 13:28 [PATCH 1/4] spi: spi-fsl-dspi: Fix casting warnings Hardevsinh Palaniya
  2024-09-27 13:28 ` [PATCH 2/4] spi: spi-fsl-qspi: " Hardevsinh Palaniya
@ 2024-09-27 13:28 ` Hardevsinh Palaniya
  2024-09-27 16:53   ` Frank Li
  2024-09-27 13:28 ` [PATCH 4/4] spi: spi-nxp-fspi: " Hardevsinh Palaniya
  2 siblings, 1 reply; 10+ messages in thread
From: Hardevsinh Palaniya @ 2024-09-27 13:28 UTC (permalink / raw)
  To: linux-spi, olteanv, broonie
  Cc: Hardevsinh Palaniya, Han Xu, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Haibo Chen, Yogesh Gaur,
	imx, linux-kernel, linux-arm-kernel

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@siliconsignals.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);
 
 	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;
 	}
 
-- 
2.43.0



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

* [PATCH 4/4] spi: spi-nxp-fspi: Fix casting warnings
  2024-09-27 13:28 [PATCH 1/4] spi: spi-fsl-dspi: Fix casting warnings Hardevsinh Palaniya
  2024-09-27 13:28 ` [PATCH 2/4] spi: spi-fsl-qspi: " Hardevsinh Palaniya
  2024-09-27 13:28 ` [PATCH 3/4] spi: spi-imx: " Hardevsinh Palaniya
@ 2024-09-27 13:28 ` Hardevsinh Palaniya
  2024-09-27 15:47   ` Frank Li
  2 siblings, 1 reply; 10+ messages in thread
From: Hardevsinh Palaniya @ 2024-09-27 13:28 UTC (permalink / raw)
  To: linux-spi, olteanv, broonie
  Cc: Hardevsinh Palaniya, Han Xu, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Haibo Chen, Yogesh Gaur,
	imx, linux-kernel, linux-arm-kernel

Sparse warnings:

drivers/spi/spi-nxp-fspi.c:512:25: warning: cast from restricted __be32

Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
---
 drivers/spi/spi-nxp-fspi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c
index 6585b19a4866..f602bfd11426 100644
--- a/drivers/spi/spi-nxp-fspi.c
+++ b/drivers/spi/spi-nxp-fspi.c
@@ -509,7 +509,7 @@ static int fspi_readl_poll_tout(struct nxp_fspi *f, void __iomem *base,
 	u32 reg;
 
 	if (!f->devtype_data->little_endian)
-		mask = (u32)cpu_to_be32(mask);
+		mask = (__force u32)cpu_to_be32(mask);
 
 	if (c)
 		return readl_poll_timeout(base, reg, (reg & mask),
-- 
2.43.0



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

* Re: [PATCH 2/4] spi: spi-fsl-qspi: Fix casting warnings
  2024-09-27 13:28 ` [PATCH 2/4] spi: spi-fsl-qspi: " Hardevsinh Palaniya
@ 2024-09-27 15:40   ` Frank Li
  2024-09-28  6:11     ` Hardevsinh Palaniya
  0 siblings, 1 reply; 10+ messages in thread
From: Frank Li @ 2024-09-27 15:40 UTC (permalink / raw)
  To: Hardevsinh Palaniya
  Cc: linux-spi, olteanv, broonie, Han Xu, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Haibo Chen, Yogesh Gaur,
	imx, linux-kernel, linux-arm-kernel

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@siliconsignals.io>
> ---
>  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
>


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

* Re: [PATCH 4/4] spi: spi-nxp-fspi: Fix casting warnings
  2024-09-27 13:28 ` [PATCH 4/4] spi: spi-nxp-fspi: " Hardevsinh Palaniya
@ 2024-09-27 15:47   ` Frank Li
  0 siblings, 0 replies; 10+ messages in thread
From: Frank Li @ 2024-09-27 15:47 UTC (permalink / raw)
  To: Hardevsinh Palaniya
  Cc: linux-spi, olteanv, broonie, Han Xu, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Haibo Chen, Yogesh Gaur,
	imx, linux-kernel, linux-arm-kernel

On Fri, Sep 27, 2024 at 06:58:35PM +0530, Hardevsinh Palaniya wrote:
> Sparse warnings:
>
> drivers/spi/spi-nxp-fspi.c:512:25: warning: cast from restricted __be32
>
> Signed-off-by: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
> ---
>  drivers/spi/spi-nxp-fspi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c
> index 6585b19a4866..f602bfd11426 100644
> --- a/drivers/spi/spi-nxp-fspi.c
> +++ b/drivers/spi/spi-nxp-fspi.c
> @@ -509,7 +509,7 @@ static int fspi_readl_poll_tout(struct nxp_fspi *f, void __iomem *base,
>  	u32 reg;
>
>  	if (!f->devtype_data->little_endian)
> -		mask = (u32)cpu_to_be32(mask);
> +		mask = (__force u32)cpu_to_be32(mask);

See patch 2's comments.

Frank

>
>  	if (c)
>  		return readl_poll_timeout(base, reg, (reg & mask),
> --
> 2.43.0
>


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

* Re: [PATCH 3/4] spi: spi-imx: Fix casting warnings
  2024-09-27 13:28 ` [PATCH 3/4] spi: spi-imx: " Hardevsinh Palaniya
@ 2024-09-27 16:53   ` Frank Li
  2024-09-28  6:16     ` Hardevsinh Palaniya
  0 siblings, 1 reply; 10+ messages in thread
From: Frank Li @ 2024-09-27 16:53 UTC (permalink / raw)
  To: Hardevsinh Palaniya
  Cc: linux-spi, olteanv, broonie, Han Xu, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Haibo Chen, Yogesh Gaur,
	imx, linux-kernel, linux-arm-kernel

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@siliconsignals.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
>


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

* Re: [PATCH 2/4] spi: spi-fsl-qspi: Fix casting warnings
  2024-09-27 15:40   ` Frank Li
@ 2024-09-28  6:11     ` Hardevsinh Palaniya
  2024-09-30  5:21       ` Hardevsinh Palaniya
  0 siblings, 1 reply; 10+ messages in thread
From: Hardevsinh Palaniya @ 2024-09-28  6:11 UTC (permalink / raw)
  To: Frank Li
  Cc: linux-spi@vger.kernel.org, olteanv@gmail.com, broonie@kernel.org,
	Han Xu, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Haibo Chen, Yogesh Gaur, imx@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org

Hi Frank,

Thanks for the suggestions

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

I’m curious about the types of real problems that might arise

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

I agree , it is a good approach since qspi_readl() already handles the endian issue 

I will change it to your approach.

>
>Frank

Best Regards,
Hardev

________________________________________
From: Frank Li <Frank.li@nxp.com>
Sent: Friday, September 27, 2024 9:10 PM
To: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
Cc: linux-spi@vger.kernel.org <linux-spi@vger.kernel.org>; olteanv@gmail.com <olteanv@gmail.com>; broonie@kernel.org <broonie@kernel.org>; Han Xu <han.xu@nxp.com>; Shawn Guo <shawnguo@kernel.org>; Sascha Hauer <s.hauer@pengutronix.de>; Pengutronix Kernel Team <kernel@pengutronix.de>; Fabio Estevam <festevam@gmail.com>; Haibo Chen <haibo.chen@nxp.com>; Yogesh Gaur <yogeshgaur.83@gmail.com>; imx@lists.linux.dev <imx@lists.linux.dev>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 2/4] spi: spi-fsl-qspi: Fix casting warnings
 
CAUTION: This email originated from outside the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.

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@siliconsignals.io>
> ---
>  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
>

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

* Re: [PATCH 3/4] spi: spi-imx: Fix casting warnings
  2024-09-27 16:53   ` Frank Li
@ 2024-09-28  6:16     ` Hardevsinh Palaniya
  0 siblings, 0 replies; 10+ messages in thread
From: Hardevsinh Palaniya @ 2024-09-28  6:16 UTC (permalink / raw)
  To: Frank Li
  Cc: linux-spi@vger.kernel.org, olteanv@gmail.com, broonie@kernel.org,
	Han Xu, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Haibo Chen, Yogesh Gaur, imx@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org

Hi Frank,

Thanks for suggestions

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

I agree , i will update with ioread32be

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

I will remove 

>
>below writel change to iowrite32be().

Sure 

>
>Frank

Best Regards,
Hardev


________________________________________
From: Frank Li <Frank.li@nxp.com>
Sent: Friday, September 27, 2024 10:23 PM
To: Hardevsinh Palaniya <hardevsinh.palaniya@siliconsignals.io>
Cc: linux-spi@vger.kernel.org <linux-spi@vger.kernel.org>; olteanv@gmail.com <olteanv@gmail.com>; broonie@kernel.org <broonie@kernel.org>; Han Xu <han.xu@nxp.com>; Shawn Guo <shawnguo@kernel.org>; Sascha Hauer <s.hauer@pengutronix.de>; Pengutronix Kernel Team <kernel@pengutronix.de>; Fabio Estevam <festevam@gmail.com>; Haibo Chen <haibo.chen@nxp.com>; Yogesh Gaur <yogeshgaur.83@gmail.com>; imx@lists.linux.dev <imx@lists.linux.dev>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 3/4] spi: spi-imx: Fix casting warnings
 
CAUTION: This email originated from outside the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.

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@siliconsignals.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
>

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

* Re: [PATCH 2/4] spi: spi-fsl-qspi: Fix casting warnings
  2024-09-28  6:11     ` Hardevsinh Palaniya
@ 2024-09-30  5:21       ` Hardevsinh Palaniya
  0 siblings, 0 replies; 10+ messages in thread
From: Hardevsinh Palaniya @ 2024-09-30  5:21 UTC (permalink / raw)
  To: Frank Li
  Cc: linux-spi@vger.kernel.org, olteanv@gmail.com, broonie@kernel.org,
	Han Xu, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Haibo Chen, Yogesh Gaur, imx@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org

Hi Frank,

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

Should I drop patches 2 and 4 as per your suggestion.

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

 would you prefer I resend them with the changes you've recommended?

Best Regards,
Hardev

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

end of thread, other threads:[~2024-09-30  5:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-27 13:28 [PATCH 1/4] spi: spi-fsl-dspi: Fix casting warnings Hardevsinh Palaniya
2024-09-27 13:28 ` [PATCH 2/4] spi: spi-fsl-qspi: " Hardevsinh Palaniya
2024-09-27 15:40   ` Frank Li
2024-09-28  6:11     ` Hardevsinh Palaniya
2024-09-30  5:21       ` Hardevsinh Palaniya
2024-09-27 13:28 ` [PATCH 3/4] spi: spi-imx: " Hardevsinh Palaniya
2024-09-27 16:53   ` Frank Li
2024-09-28  6:16     ` Hardevsinh Palaniya
2024-09-27 13:28 ` [PATCH 4/4] spi: spi-nxp-fspi: " Hardevsinh Palaniya
2024-09-27 15:47   ` Frank Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox