Skip to content

Commit

Permalink
can: c_can: end pending transmission on network stop (ifdown)
Browse files Browse the repository at this point in the history
Put controller into init mode in network stop to end pending transmissions. The
issue is observed in cases when transmitted frame is not acked.

Signed-off-by: Viktor Babrian <babrian.viktor@renyi.mta.hu>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
  • Loading branch information
Viktor Babrian authored and Marc Kleine-Budde committed Jan 21, 2015
1 parent 06efe0e commit 7ffd7b4
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/net/can/c_can/c_can.c
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,9 @@ static void c_can_stop(struct net_device *dev)

c_can_irq_control(priv, false);

/* put ctrl to init on stop to end ongoing transmission */
priv->write_reg(priv, C_CAN_CTRL_REG, CONTROL_INIT);

/* deactivate pins */
pinctrl_pm_select_sleep_state(dev->dev.parent);
priv->can.state = CAN_STATE_STOPPED;
Expand Down

0 comments on commit 7ffd7b4

Please sign in to comment.