linux_dsm_epyc7002/drivers/net/can
ZHU Yi (ST-FIR/ENG1-Zhu) da49a8075c can: flexcan: implement error passive state quirk
Add FLEXCAN_QUIRK_BROKEN_PERR_STATE for better description of the
missing error passive interrupt quirk.

Error interrupt flooding may happen if the broken error state quirk fix
is enabled. For example, in case there is singled out node on the bus
and the node sends a frame, then error interrupt flooding happens and
will not stop because the node cannot go to bus off. The flooding will
stop after another node connected to the bus again.

If high bitrate configured on the low end system, then the flooding
may causes performance issue, hence, this patch mitigates this by:
1. disable error interrupt upon error passive state transition
2. re-enable error interrupt upon error warning state transition
3. disable/enable error interrupt upon error active state transition
   depends on FLEXCAN_QUIRK_BROKEN_WERR_STATE

In this way, the driver is still able to report correct state
transitions without additional latency. When there are bus problems,
flooding of error interrupts is limited to the number of frames required
to change state from error warning to error passive if the core has
[TR]WRN_INT connected (FLEXCAN_QUIRK_BROKEN_WERR_STATE is not enabled),
otherwise, the flooding is limited to the number of frames required to
change state from error active to error passive.

Signed-off-by: Zhu Yi <yi.zhu5@cn.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Cc: linux-stable <stable@vger.kernel.org> # >= v4.11
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2017-10-19 13:05:53 +02:00
..
c_can can: constify platform_device_id 2017-08-13 20:12:23 -07:00
cc770 Annotate hardware config module parameters in drivers/net/can/ 2017-04-20 12:02:32 +01:00
ifi_canfd can: ifi: use correct register to read rx status 2017-04-04 17:48:22 +02:00
m_can can: m_can: add deep Suspend/Resume support 2017-05-18 10:32:48 +02:00
mscan treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
peak_canfd can: peak_canfd: fix uninitialized symbol warnings 2017-06-09 11:39:23 +02:00
rcar scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
sja1000 Annotate hardware config module parameters in drivers/net/can/ 2017-04-20 12:02:32 +01:00
softing sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
spi can: hi311x: Add Holt HI-311x CAN driver 2017-04-04 17:35:59 +02:00
usb can: gs_usb: fix memory leak in gs_cmd_reset() 2017-06-09 11:39:23 +02:00
at91_can.c net: can: at91_can: constify attribute_group structures. 2017-07-18 12:04:56 -07:00
bfin_can.c can: remove obsolete assignment for CAN protocol error type 2015-11-23 09:37:38 +01:00
dev.c net: add netlink_ext_ack argument to rtnl_link_ops.validate 2017-06-26 23:13:22 -04:00
flexcan.c can: flexcan: implement error passive state quirk 2017-10-19 13:05:53 +02:00
grcan.c docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
janz-ican3.c net: can: janz-ican3: constify attribute_group structures. 2017-07-18 12:04:56 -07:00
Kconfig can: add Virtual CAN Tunnel driver (vxcan) 2017-04-25 09:04:30 +02:00
led.c can: add combined rx/tx LED trigger support 2015-03-22 23:50:11 +01:00
Makefile can: add Virtual CAN Tunnel driver (vxcan) 2017-04-25 09:04:30 +02:00
pch_can.c can: fix assignment of error location in CAN error messages 2015-11-23 09:37:34 +01:00
rx-offload.c can: rx-offload: Add support for timestamp based irq offloading 2017-02-06 15:13:24 +01:00
slcan.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
sun4i_can.c can: remove obsolete assignment for CAN protocol error type 2015-11-23 09:37:38 +01:00
ti_hecc.c can: ti_hecc: fix return value check in ti_hecc_probe() 2017-04-25 10:03:40 +02:00
vcan.c can: enable CAN FD for virtual CAN devices by default 2017-06-09 14:39:02 +02:00
vxcan.c net: add netlink_ext_ack argument to rtnl_link_ops.newlink 2017-06-26 23:13:21 -04:00
xilinx_can.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00