aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/can
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/can')
-rw-r--r--drivers/net/can/flexcan.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 76dcbca6c80c..fc0769527e6b 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -812,6 +812,7 @@ static int flexcan_chip_start(struct net_device *dev)
812 struct flexcan_regs __iomem *regs = priv->base; 812 struct flexcan_regs __iomem *regs = priv->base;
813 int err; 813 int err;
814 u32 reg_mcr, reg_ctrl; 814 u32 reg_mcr, reg_ctrl;
815 int i;
815 816
816 /* enable module */ 817 /* enable module */
817 err = flexcan_chip_enable(priv); 818 err = flexcan_chip_enable(priv);
@@ -878,6 +879,12 @@ static int flexcan_chip_start(struct net_device *dev)
878 netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl); 879 netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl);
879 flexcan_write(reg_ctrl, &regs->ctrl); 880 flexcan_write(reg_ctrl, &regs->ctrl);
880 881
882 /* clear and invalidate all mailboxes first */
883 for (i = FLEXCAN_TX_BUF_ID; i < ARRAY_SIZE(regs->cantxfg); i++) {
884 flexcan_write(FLEXCAN_MB_CODE_RX_INACTIVE,
885 &regs->cantxfg[i].can_ctrl);
886 }
887
881 /* mark TX mailbox as INACTIVE */ 888 /* mark TX mailbox as INACTIVE */
882 flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE, 889 flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE,
883 &regs->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl); 890 &regs->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl);