]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerZefan Li <lizefan@huawei.com>
Mon, 1 Dec 2014 10:02:36 +0000 (18:02 +0800)
commita6cdbaecaa2575bd2f0dd290ff83cfe2dae06959
treee8d8669052b38be5fd501c245da88c384cd0b80c
parent12c6d3d6558aecc71f612698d2d18425f810e66d
can: flexcan: implement workaround for errata ERR005829

commit 25e924450fcb23c11c07c95ea8964dd9f174652e upstream.

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>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Zefan Li <lizefan@huawei.com>
drivers/net/can/flexcan.c