can: rx-offload: Add support for timestamp based irq offloading
authorMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 23 Sep 2014 13:28:21 +0000 (15:28 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Mon, 6 Feb 2017 14:13:24 +0000 (15:13 +0100)
commit3abbac0b5dd3e3b3dfb30a4885cdde5c20e1cb83
tree8517ce1aabaa92c0d810797a66fb97f3177e6085
parentd254586c34538c0014280806c5d4795697cf21e5
can: rx-offload: Add support for timestamp based irq offloading

Some CAN controllers don't implement a FIFO in hardware, but fill their
mailboxes in a particular order (from lowest to highest or highest to lowest).
This makes problems to read the frames in the correct order from the hardware,
as new frames might be filled into just read (low) mailboxes. This gets worse,
when following new frames are received into not read (higher) mailboxes.

On the bright side some these CAN controllers put a timestamp on each received
CAN frame. This patch adds support to offload CAN frames in interrupt context,
order them by timestamp and then transmitted in a NAPI context.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/rx-offload.c
include/linux/can/rx-offload.h