All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix endianness conversion
@ 2022-06-20 14:49 Marc Kleine-Budde
  2022-06-21  6:02 ` Rasmus Villemoes
  2022-06-23 15:02 ` Manivannan Sadhasivam
  0 siblings, 2 replies; 3+ messages in thread
From: Marc Kleine-Budde @ 2022-06-20 14:49 UTC (permalink / raw)
  To: linux-can
  Cc: kernel, Manivannan Sadhasivam, Thomas Kopp, Marc Kleine-Budde,
	Rasmus Villemoes

In mcp251xfd_register_get_dev_id() the device ID register is read with
handcrafted SPI transfers. As all registers, this register is in
little endian, too. However after the transfer the register content is
converted from big endian to CPU endianness.

Fix the conversion by converting from little endian to CPU endianness.

Side note: So far the register content is 0x0 on all mcp251xfd
compatible chips, and is only used for an informative printk.

Fixes: 55e5b97f003e ("can: mcp25xxfd: add driver for Microchip MCP25xxFD SPI CAN")
Cc: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index 3160881e89d9..d7f406dbe2ce 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -1787,7 +1787,7 @@ mcp251xfd_register_get_dev_id(const struct mcp251xfd_priv *priv, u32 *dev_id,
 	if (err)
 		goto out_kfree_buf_tx;
 
-	*dev_id = be32_to_cpup((__be32 *)buf_rx->data);
+	*dev_id = le32_to_cpup((__le32 *)buf_rx->data);
 	*effective_speed_hz_slow = xfer[0].effective_speed_hz;
 	*effective_speed_hz_fast = xfer[1].effective_speed_hz;
 
-- 
2.35.1



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

* Re: [PATCH] can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix endianness conversion
  2022-06-20 14:49 [PATCH] can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix endianness conversion Marc Kleine-Budde
@ 2022-06-21  6:02 ` Rasmus Villemoes
  2022-06-23 15:02 ` Manivannan Sadhasivam
  1 sibling, 0 replies; 3+ messages in thread
From: Rasmus Villemoes @ 2022-06-21  6:02 UTC (permalink / raw)
  To: Marc Kleine-Budde, linux-can; +Cc: kernel, Manivannan Sadhasivam, Thomas Kopp

On 20/06/2022 16.49, Marc Kleine-Budde wrote:
> In mcp251xfd_register_get_dev_id() the device ID register is read with
> handcrafted SPI transfers. As all registers, this register is in
> little endian, too. However after the transfer the register content is
> converted from big endian to CPU endianness.
> 
> Fix the conversion by converting from little endian to CPU endianness.
> 
> Side note: So far the register content is 0x0 on all mcp251xfd
> compatible chips, and is only used for an informative printk.

Reviewed-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>

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

* Re: [PATCH] can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix endianness conversion
  2022-06-20 14:49 [PATCH] can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix endianness conversion Marc Kleine-Budde
  2022-06-21  6:02 ` Rasmus Villemoes
@ 2022-06-23 15:02 ` Manivannan Sadhasivam
  1 sibling, 0 replies; 3+ messages in thread
From: Manivannan Sadhasivam @ 2022-06-23 15:02 UTC (permalink / raw)
  To: Marc Kleine-Budde; +Cc: linux-can, kernel, Thomas Kopp, Rasmus Villemoes

On Mon, Jun 20, 2022 at 04:49:54PM +0200, Marc Kleine-Budde wrote:
> In mcp251xfd_register_get_dev_id() the device ID register is read with
> handcrafted SPI transfers. As all registers, this register is in
> little endian, too. However after the transfer the register content is
> converted from big endian to CPU endianness.
> 
> Fix the conversion by converting from little endian to CPU endianness.
> 
> Side note: So far the register content is 0x0 on all mcp251xfd
> compatible chips, and is only used for an informative printk.
> 
> Fixes: 55e5b97f003e ("can: mcp25xxfd: add driver for Microchip MCP25xxFD SPI CAN")
> Cc: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

Thanks,
Mani

> ---
>  drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> index 3160881e89d9..d7f406dbe2ce 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
> @@ -1787,7 +1787,7 @@ mcp251xfd_register_get_dev_id(const struct mcp251xfd_priv *priv, u32 *dev_id,
>  	if (err)
>  		goto out_kfree_buf_tx;
>  
> -	*dev_id = be32_to_cpup((__be32 *)buf_rx->data);
> +	*dev_id = le32_to_cpup((__le32 *)buf_rx->data);
>  	*effective_speed_hz_slow = xfer[0].effective_speed_hz;
>  	*effective_speed_hz_fast = xfer[1].effective_speed_hz;
>  
> -- 
> 2.35.1
> 
> 

-- 
மணிவண்ணன் சதாசிவம்

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

end of thread, other threads:[~2022-06-23 15:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-20 14:49 [PATCH] can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix endianness conversion Marc Kleine-Budde
2022-06-21  6:02 ` Rasmus Villemoes
2022-06-23 15:02 ` Manivannan Sadhasivam

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.