can: flexcan: Disable error interrupt when bus error reporting is disabled
authorAlexander Stein <alexander.stein@systec-electronic.com>
Tue, 12 Aug 2014 08:47:21 +0000 (10:47 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 21 Aug 2014 08:49:59 +0000 (10:49 +0200)
In case we don't have FLEXCAN_HAS_BROKEN_ERR_STATE and the user set
CAN_CTRLMODE_BERR_REPORTING once it can not be unset again until reboot.
So in case neither hardware nor user wants the error interrupt disable
the bit.

Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/flexcan.c

index f425ec2c7839de4abe1a481cf94d0fd03435c845..a691651f9ad955b68e79affae789796ef10dd80f 100644 (file)
@@ -852,6 +852,8 @@ static int flexcan_chip_start(struct net_device *dev)
        if (priv->devtype_data->features & FLEXCAN_HAS_BROKEN_ERR_STATE ||
            priv->can.ctrlmode & CAN_CTRLMODE_BERR_REPORTING)
                reg_ctrl |= FLEXCAN_CTRL_ERR_MSK;
+       else
+               reg_ctrl &= ~FLEXCAN_CTRL_ERR_MSK;
 
        /* save for later use */
        priv->reg_ctrl_default = reg_ctrl;