[PATCH 3/3] can: rcar_canfd: Handle Bus-Off recovery interrupt
From: Biju
Date: Fri Apr 03 2026 - 06:03:25 EST
From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
Add handling for the Bus-Off recovery interrupt in the error handler.
When the channel bus-off recovery interrupt is received, transition the
CAN state back to CAN_STATE_ERROR_ACTIVE to reflect that the controller
has successfully recovered from a bus-off event.
Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
---
drivers/net/can/rcar/rcar_canfd.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index 1d6d667b8816..427472d0fd98 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -1186,6 +1186,10 @@ static void rcar_canfd_error(struct net_device *ndev, u32 cerfl,
can_bus_off(ndev);
cf->can_id |= CAN_ERR_BUSOFF;
}
+ if (cerfl & RCANFD_CERFL_BORF) {
+ netdev_dbg(ndev, "Bus-Off recovery interrupt\n");
+ priv->can.state = CAN_STATE_ERROR_ACTIVE;
+ }
if (cerfl & RCANFD_CERFL_OVLF) {
netdev_dbg(ndev,
"Overload Frame Transmission error interrupt\n");
--
2.43.0