aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/can/m_can
diff options
context:
space:
mode:
authorAnssi Hannula <anssi.hannula@bitwise.fi>2019-10-04 12:02:56 +0300
committerMarc Kleine-Budde <mkl@pengutronix.de>2019-11-11 21:58:09 +0100
commit91e9f2c0e7a49ec6a6673b4d97d535b838396fc9 (patch)
tree8e4946a42f62965160ed9fde7b9ba8ed05bee328 /drivers/net/can/m_can
parentcan: xilinx_can: fix checkpatch warnings (diff)
downloadlinux-dev-91e9f2c0e7a49ec6a6673b4d97d535b838396fc9.tar.xz
linux-dev-91e9f2c0e7a49ec6a6673b4d97d535b838396fc9.zip
can: xilinx_can: avoid non-requested bus error frames
Userspace can signal with CAN_CTRLMODE_BERR_REPORTING whether they need reporting of bus errors (CAN_ERR_BUSERROR) or not. However, xilinx_can driver currently always sends CAN_ERR_BUSERROR frames to userspace on bus errors. To improve performance on error conditions when bus error reporting is not needed, avoid sending CAN_ERR_BUSERROR frames unless requested via CAN_CTRLMODE_BERR_REPORTING. The error interrupt is still kept enabled as there is no dedicated state transition interrupt, but just disabling error frame submission still yields a significant performance improvement. In a simple test with continuous bus errors and no userspace programs reading/writing CAN I saw system CPU load reduced by 1/3. Tested on a ZynqMP board with CAN-FD v1.0. Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/m_can')
0 files changed, 0 insertions, 0 deletions