• David Jander's avatar
    can: flexcan: implement workaround for errata ERR005829 · 1a9500cc
    David Jander authored
    commit 25e92445 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: default avatarDavid Jander <david@protonic.nl>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    1a9500cc
flexcan.c 33.2 KB