]> git.baikalelectronics.ru Git - kernel.git/commit
can: flexcan: implement workaround for errata ERR005829
authorDavid Jander <david@protonic.nl>
Wed, 3 Sep 2014 14:47:22 +0000 (16:47 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 18 Sep 2014 09:15:20 +0000 (11:15 +0200)
commitc2a7118fbaac6c9821ee532d562bdc1a27bcd40c
treee70b938081ffc7ae87981724ee01816aa7117d48
parent03fdf6c58f7a6737e94e4b69770bf4b8f8260e00
can: flexcan: implement workaround for errata ERR005829

This patch implements the workaround mentioned in ERR005829:

    ERR005829: FlexCAN: FlexCAN does not transmit a message that is enabled to
    be transmitted in a specific moment during the arbitration process.

Workaround: The workaround consists of two extra steps after setting up a
message for transmission:

Step 8: Reserve the first valid mailbox as an inactive mailbox (CODE=0b1000).
If RX FIFO is disabled, this mailbox must be message buffer 0. Otherwise, the
first valid mailbox can be found using the "RX FIFO filters" table in the
FlexCAN chapter of the chip reference manual.

Step 9: Write twice INACTIVE code (0b1000) into the first valid mailbox.

Signed-off-by: David Jander <david@protonic.nl>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/flexcan.c