Hi Marc and everyone, second version part 2, I fixed the bug I noticed for integrated m_can devices. The accounting was wrong or missing for these. I don't have the integrated hardware myself so any testing is appreciated (I only have the tcan device to test the mcan driver). Also v2 rebases on top of v6.2-rc5. The series implements many small and bigger throughput improvements and adds rx/tx coalescing at the end. Best, Markus Changes in v2: - Rebased on v6.2-rc5 - Fixed missing/broken accounting for non peripheral m_can devices. part 1: v1 - https://lore.kernel.org/lkml/20221116205308.2996556-1-msp@xxxxxxxxxxxx v2 - https://lore.kernel.org/lkml/20221206115728.1056014-1-msp@xxxxxxxxxxxx part 2: v1 - https://lore.kernel.org/lkml/20221221152537.751564-1-msp@xxxxxxxxxxxx Markus Schneider-Pargmann (18): can: tcan4x5x: Remove reserved register 0x814 from writable table can: tcan4x5x: Check size of mram configuration can: m_can: Remove repeated check for is_peripheral can: m_can: Always acknowledge all interrupts can: m_can: Remove double interrupt enable can: m_can: Disable unused interrupts can: m_can: Keep interrupts enabled during peripheral read can: m_can: Write transmit header and data in one transaction can: m_can: Implement receive coalescing can: m_can: Implement transmit coalescing can: m_can: Add rx coalescing ethtool support can: m_can: Add tx coalescing ethtool support can: m_can: Cache tx putidx can: m_can: Use the workqueue as queue can: m_can: Introduce a tx_fifo_in_flight counter can: m_can: Use tx_fifo_in_flight for netif_queue control can: m_can: Implement BQL can: m_can: Implement transmit submission coalescing drivers/net/can/m_can/m_can.c | 514 ++++++++++++++++++------ drivers/net/can/m_can/m_can.h | 36 +- drivers/net/can/m_can/tcan4x5x-core.c | 5 + drivers/net/can/m_can/tcan4x5x-regmap.c | 1 - 4 files changed, 432 insertions(+), 124 deletions(-) -- 2.39.0