Commit 590eb2b7 authored by Stephane Grosjean's avatar Stephane Grosjean Committed by Marc Kleine-Budde
Browse files

can: peak_usb: pcan_usb_handle_bus_evt(): fix reading rxerr/txerr values

This patch fixes an incorrect way of reading error counters in messages
received for this purpose from the PCAN-USB interface. These messages
inform about the increase or decrease of the error counters, whose values
are placed in bytes 1 and 2 of the message data (not 0 and 1).

Fixes: ea8b33bd ("can: pcan_usb: add support of rxerr/txerr counters")
Link: https://lore.kernel.org/r/20210625130931.27438-4-s.grosjean@peak-system.com


Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: default avatarStephane Grosjean <s.grosjean@peak-system.com>
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent c6eea1c8
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -117,7 +117,8 @@
#define PCAN_USB_BERR_MASK	(PCAN_USB_ERR_RXERR | PCAN_USB_ERR_TXERR)

/* identify bus event packets with rx/tx error counters */
#define PCAN_USB_ERR_CNT		0x80
#define PCAN_USB_ERR_CNT_DEC		0x00	/* counters are decreasing */
#define PCAN_USB_ERR_CNT_INC		0x80	/* counters are increasing */

/* private to PCAN-USB adapter */
struct pcan_usb {
@@ -608,11 +609,12 @@ static int pcan_usb_handle_bus_evt(struct pcan_usb_msg_context *mc, u8 ir)

	/* acccording to the content of the packet */
	switch (ir) {
	case PCAN_USB_ERR_CNT:
	case PCAN_USB_ERR_CNT_DEC:
	case PCAN_USB_ERR_CNT_INC:

		/* save rx/tx error counters from in the device context */
		pdev->bec.rxerr = mc->ptr[0];
		pdev->bec.txerr = mc->ptr[1];
		pdev->bec.rxerr = mc->ptr[1];
		pdev->bec.txerr = mc->ptr[2];
		break;

	default: