summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDong Aisheng <b29396@freescale.com>2012-08-03 22:03:15 +0800
committerDong Aisheng <b29396@freescale.com>2012-08-06 14:52:48 +0800
commitfa94bc564e81b09c4c72d20e1128dc93379ef110 (patch)
tree23422ebab9d4e2b335a0f9bc2343a5dd31e8ae56
parent65069a963114d88cea3f6b200148b2215369c76a (diff)
ENGR00217318-1 flexcan: exit stop mode when resume
Currently flexcan only exits stop mode by remote wakeup, if system resumes normally, the flexcan may still in stop mode and can not work anymore. Change to also exit stop mode during normal resume in case system is not remote wakeup by flexcan. Signed-off-by: Dong Aisheng <b29396@freescale.com>
-rw-r--r--drivers/net/can/flexcan.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 467b5355de89..0f0b76f0f566 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -1100,6 +1100,11 @@ static int flexcan_resume(struct platform_device *pdev)
if (ret)
return ret;
+ /* remove stop request */
+ if (priv->version >= FLEXCAN_VER_10_0_12)
+ /* CAN1/CAN2_STOP_REQ bit 28/29 in group 13 */
+ mxc_iomux_set_gpr_register(13, 28 + priv->id, 1, 0);
+
priv->can.state = CAN_STATE_ERROR_ACTIVE;
if (netif_running(dev)) {