summaryrefslogtreecommitdiff
path: root/drivers/net
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 /drivers/net
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>
Diffstat (limited to 'drivers/net')
-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)) {