Hi, this series is aimed at optimizing the driver code for tcan chips and more generally for peripheral m_can chips. I did different things to improve the performance: - Reduce the number of SPI transfers. - Reduce the number of interrupts. - Enable use of FIFOs. I am working with a tcan4550 in loopback mode attached to a beaglebone black. I am currently working on optimizing the receive path as well which will be submitted in another series once it is done. Best, Markus Markus Schneider-Pargmann (15): can: m_can: Eliminate double read of TXFQS in tx_handler can: m_can: Wakeup net queue once tx was issued can: m_can: Cache tx putidx and transmits in flight can: m_can: Use transmit event FIFO watermark level interrupt can: m_can: Disable unused interrupts can: m_can: Avoid reading irqstatus twice can: m_can: Read register PSR only on error can: m_can: Count TXE FIFO getidx in the driver can: m_can: Count read getindex in the driver can: m_can: Batch acknowledge rx fifo can: m_can: Batch acknowledge transmit events can: tcan4x5x: Remove invalid write in clear_interrupts can: tcan4x5x: Fix use of register error status mask can: tcan4x5x: Fix register range of first block can: tcan4x5x: Specify separate read/write ranges drivers/net/can/m_can/m_can.c | 140 +++++++++++++++--------- drivers/net/can/m_can/m_can.h | 5 + drivers/net/can/m_can/tcan4x5x-core.c | 19 ++-- drivers/net/can/m_can/tcan4x5x-regmap.c | 45 ++++++-- 4 files changed, 141 insertions(+), 68 deletions(-) base-commit: 094226ad94f471a9f19e8f8e7140a09c2625abaa prerequisite-patch-id: e9df6751d43bb0d1e3b8938d7e93bc1cfa22cef2 prerequisite-patch-id: dad9ec37af766bcafe54cb156f896267a0f47fe1 prerequisite-patch-id: f4e6f1a213a31df2741a5fa3baa87aa45ef6707a -- 2.38.1