mirror of https://gitee.com/openkylin/linux.git
can: flexcan: fix state transition regression
Update state upon any interrupt to report correct state transitions in case the flexcan core enabled the broken error state quirk fix. Signed-off-by: Zhu Yi <yi.zhu5@cn.bosch.com> Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com> Acked-by: Wolfgang Grandegger <wg@grandegger.com> Cc: linux-stable <stable@vger.kernel.org> # >= v4.11 Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
28e33f9d78
commit
ad2302345d
|
@ -765,8 +765,9 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
|
|||
flexcan_write(reg_esr & FLEXCAN_ESR_ALL_INT, ®s->esr);
|
||||
}
|
||||
|
||||
/* state change interrupt */
|
||||
if (reg_esr & FLEXCAN_ESR_ERR_STATE)
|
||||
/* state change interrupt or broken error state quirk fix is enabled */
|
||||
if ((reg_esr & FLEXCAN_ESR_ERR_STATE) ||
|
||||
(priv->devtype_data->quirks & FLEXCAN_QUIRK_BROKEN_ERR_STATE))
|
||||
flexcan_irq_state(dev, reg_esr);
|
||||
|
||||
/* bus error IRQ - handle if bus error reporting is activated */
|
||||
|
|
Loading…
Reference in New Issue