summaryrefslogtreecommitdiff
path: root/drivers/net/can/spi/mcp251xfd
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2021-04-24 17:20:39 +0300
committerMarc Kleine-Budde <mkl@pengutronix.de>2021-07-24 20:02:32 +0300
commitef68a717960658e6a1e5f08adb0574326e9a12c2 (patch)
tree8a701cbb221058e6f063c65fda661000f99b51cf /drivers/net/can/spi/mcp251xfd
parent590eb2b7d8cfafb27e8108d52d4bf4850626d31d (diff)
downloadlinux-ef68a717960658e6a1e5f08adb0574326e9a12c2.tar.xz
can: mcp251xfd: mcp251xfd_irq(): stop timestamping worker in case error in IRQ
In case an error occurred in the IRQ handler, the chip status is dumped via devcoredump and all IRQs are disabled, but the chip stays powered for further analysis. The chip is in an undefined state and will not receive any CAN frames, so shut down the timestamping worker, which reads the TBC register regularly, too. This avoids any CRC read error messages if there is a communication problem with the chip. Fixes: efd8d98dfb90 ("can: mcp251xfd: add HW timestamp infrastructure") Link: https://lore.kernel.org/r/20210724155131.471303-1-mkl@pengutronix.de Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/spi/mcp251xfd')
-rw-r--r--drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index 47c3f408a799..9ae48072b6c6 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -2300,6 +2300,7 @@ static irqreturn_t mcp251xfd_irq(int irq, void *dev_id)
err, priv->regs_status.intf);
mcp251xfd_dump(priv);
mcp251xfd_chip_interrupts_disable(priv);
+ mcp251xfd_timestamp_stop(priv);
return handled;
}