aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/can/c_can
diff options
context:
space:
mode:
authorMarkus Schneider-Pargmann <msp@baylibre.com>2024-02-07 10:32:10 +0100
committerMarc Kleine-Budde <mkl@pengutronix.de>2024-02-12 17:02:43 +0100
commit07f25091ca0265da65ea7a4bd2409c627f529c6f (patch)
tree5e38bbbd96df922e074a96eb71a161e6b2e22cd3 /drivers/net/can/c_can
parent4248ba9ea24fa2c8a2106bfb14f775035e9ea8aa (diff)
can: m_can: Implement receive coalescing
m_can offers the possibility to set an interrupt on reaching a watermark level in the receive FIFO. This can be used to implement coalescing. Unfortunately there is no hardware timeout available to trigger an interrupt if only a few messages were received within a given time. To solve this I am using a hrtimer to wake up the irq thread after x microseconds. The timer is always started if receive coalescing is enabled and new received frames were available during an interrupt. The timer is stopped if during a interrupt handling no new data was available. If the timer is started the new item interrupt is disabled and the watermark interrupt takes over. If the timer is not started again, the new item interrupt is enabled again, notifying the handler about every new item received. Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com> Link: https://lore.kernel.org/all/20240207093220.2681425-5-msp@baylibre.com Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/c_can')
0 files changed, 0 insertions, 0 deletions