[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220626191407.hcio6opdcxuf3adc@pengutronix.de>
Date: Sun, 26 Jun 2022 21:14:07 +0200
From: Marc Kleine-Budde <mkl@...gutronix.de>
To: Thomas.Kopp@...rochip.com
Cc: pavel.modilaynen@...vocars.com, drew@...gleboard.org,
linux-can@...r.kernel.org, menschel.p@...teo.de,
netdev@...r.kernel.org, will@...china.cc
Subject: Re: [net-next 6/6] can: mcp251xfd: mcp251xfd_regmap_crc_read(): work
around broken CRC on TBC register
On 21.12.2021 22:24:52, Thomas.Kopp@...rochip.com wrote:
> diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c
> index 297491516a26..e5bc897f37e8 100644
> --- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c
> +++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c
> @@ -332,12 +332,10 @@ mcp251xfd_regmap_crc_read(void *context,
> *
> * If the highest bit in the lowest byte is flipped
> * the transferred CRC matches the calculated one. We
> - * assume for now the CRC calculation in the chip
> - * works on wrong data and the transferred data is
> - * correct.
> + * assume for now the CRC operates on the correct data.
> */
> if (reg == MCP251XFD_REG_TBC &&
> - (buf_rx->data[0] == 0x0 || buf_rx->data[0] == 0x80)) {
> + ((buf_rx->data[0] & 0xF8) == 0x0 || (buf_rx->data[0] & 0xF8) == 0x80)) {
With this change the read of the TBC on the mcp2517fd becomes much more
stable. No more single bit flips in the 1st data byte that can be fixed
with xor 0x80.
regards,
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Embedded Linux | https://www.pengutronix.de |
Vertretung West/Dortmund | Phone: +49-231-2826-924 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists