diff options
author | Markus Schneider-Pargmann <msp@baylibre.com> | 2024-02-07 10:32:10 +0100 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2024-02-12 17:02:43 +0100 |
commit | 07f25091ca0265da65ea7a4bd2409c627f529c6f (patch) | |
tree | 5e38bbbd96df922e074a96eb71a161e6b2e22cd3 /drivers/net/can/m_can/Makefile | |
parent | 4248ba9ea24fa2c8a2106bfb14f775035e9ea8aa (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/m_can/Makefile')
0 files changed, 0 insertions, 0 deletions