can: xilinx_can: only report warning and passive states on state changes
authorAnssi Hannula <anssi.hannula@bitwise.fi>
Wed, 8 Feb 2017 11:32:43 +0000 (13:32 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Fri, 27 Jul 2018 08:40:17 +0000 (10:40 +0200)
commit7e2804aae1288643f3d3d5c018feefc98c098509
treeb067a15c9178da86ebec656d6b642506092fe9a3
parentc8d4dea2a82b0e1c695646aaabdada130ab71f79
can: xilinx_can: only report warning and passive states on state changes

The xilinx_can driver currently increments error-warning and
error-passive statistics on every error interrupt regardless of whether
the interface was already in the same state. Similarly, the error frame
sent on error interrupts is always sent with
CAN_ERR_CRTL_(RX|TX)_(PASSIVE|WARNING) bit set.

To make the error-warning and error-passive statistics more useful, add
a check to only set the error state when the state has actually been
changed.

Tested with the integrated CAN on Zynq-7000 SoC.

Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/xilinx_can.c