can: peak_usb: pcan_usb_handle_bus_evt(): fix reading rxerr/txerr values
commit 590eb2b7d8cfafb27e8108d52d4bf4850626d31d upstream.
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: ea8b33bde7
("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: Stephane Grosjean <s.grosjean@peak-system.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
afe2ffd920
commit
2fc2c2816c
@@ -117,7 +117,8 @@ MODULE_SUPPORTED_DEVICE("PEAK-System PCAN-USB adapter");
|
|||||||
#define PCAN_USB_BERR_MASK (PCAN_USB_ERR_RXERR | PCAN_USB_ERR_TXERR)
|
#define PCAN_USB_BERR_MASK (PCAN_USB_ERR_RXERR | PCAN_USB_ERR_TXERR)
|
||||||
|
|
||||||
/* identify bus event packets with rx/tx error counters */
|
/* 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 */
|
/* private to PCAN-USB adapter */
|
||||||
struct pcan_usb {
|
struct pcan_usb {
|
||||||
@@ -611,11 +612,12 @@ static int pcan_usb_handle_bus_evt(struct pcan_usb_msg_context *mc, u8 ir)
|
|||||||
|
|
||||||
/* acccording to the content of the packet */
|
/* acccording to the content of the packet */
|
||||||
switch (ir) {
|
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 */
|
/* save rx/tx error counters from in the device context */
|
||||||
pdev->bec.rxerr = mc->ptr[0];
|
pdev->bec.rxerr = mc->ptr[1];
|
||||||
pdev->bec.txerr = mc->ptr[1];
|
pdev->bec.txerr = mc->ptr[2];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user