• Philippe Gerum's avatar
    drivers/can: flexcan: rebase on mainline v4.14.58 · c6f278d6
    Philippe Gerum authored
    Usable with latest Flexcan controller revisions available from recent
    i.MX series. The older driver would break when initializing the chip
    (FIFO activation), e.g.:
    
    [  957.052272] rtcan0: real bitrate 1000000, sampling point 75.0%
    [  957.058325] rtcan0: writing ctrl=0x011a2003
    [  957.062670] rtcan0: flexcan_set_bit_time: mcr=0x5980000f ctrl=0x011a2003
    [  957.069403] rtcan0: flexcan_chip_start: writing mcr=0x79a2020f
    [  957.069421] rtcan0: flexcan_chip_start: writing ctrl=0x011aac53
    [  957.075359] Unhandled fault: imprecise external abort (0x1c06) at 0xaec71a2c
    [  957.088371] pgd = cae8c000
    [  957.091106] [aec71a2c] *pgd=9d843835, *pte=ba49d75f, *ppte=ba49dc7f
    [  957.097447] Internal error: : 1c06 [#1] SMP ARM
    [  957.108324] CPU: 1 PID: 843 Comm: rtcanconfig Not tainted 4.14.34 #1
    [  957.115391] Hardware name: Freescale i.MX7 Dual (Device Tree)
    [  957.121155] I-pipe domain: Linux
    [  957.124404] task: caee1900 task.stack: ca5d0000
    [  957.128968] PC is at flexcan_chip_start+0x180/0x34c
    [  957.133869] LR is at flexcan_chip_start+0x178/0x34c
    
    As a bonus, the latest work arounds addressing silicon bugs are now
    included (e.g. use of timestamp-based offloading when the FIFO
    ordering does not match the time of arrival).
    Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
    Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
    c6f278d6
rtcan_flexcan.c 41.6 KB