]> git.baikalelectronics.ru Git - kernel.git/commit
can: m_can: Enable TX FIFO Handling for M_CAN IP version >= v3.1.x
authorMario Huettel <mario.huettel@gmx.net>
Sat, 8 Apr 2017 12:10:15 +0000 (14:10 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 25 Apr 2017 07:00:48 +0000 (09:00 +0200)
commitc7a8441cce954d8823a3afd82116b07e70ef4549
treeacb339f036f80ec92f7c2fd4900bf54e8951b78b
parent2cb6123853a2aef5a3d1a50a6b6dedfb35108ded
can: m_can: Enable TX FIFO Handling for M_CAN IP version >= v3.1.x

* Added defines for TX Event FIFO Element
* Adapted ndo_start_xmit function.
  For versions >= v3.1.x it uses the TX FIFO to optimize the data
  throughput. It stores the echo skb at the same index as in the
  M_CAN's TX FIFO. The frame's message marker is set to this index.
  This message marker is received in the TX Event FIFO after
  the message was successfully transmitted. It is used to echo the
  correct echo skb back to the network stack.
* Added m_can_echo_tx_event function. It reads all received
  message markers in the TX Event FIFO and loops back the
  corresponding echo skbs.
* ISR checks for new TX Event Entry interrupt for version >= 3.1.x.

Signed-off-by: Mario Huettel <mario.huettel@gmx.net>
Reviewed-by: Oliver Hartkopp <socketcan@hartkopp.net>
Tested-by: Quentin Schulz <quentin.schulz@free-electrons.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/m_can/m_can.c