Skip to content

Commit 55c8670

Browse files
Dong AishengNitin Garg
authored andcommitted
MLK-10131 flexcan: fix wakeup unwork issue
Original code will always disable flexcan during suspend no matter whether wakeup feature is enabled. It's caused by merge issue when doing kernel upgrade. Fix it by removing that disable code. Signed-off-by: Dong Aisheng <b29396@freescale.com>
1 parent bb0cb8e commit 55c8670

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

drivers/net/can/flexcan.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,11 +1323,7 @@ static int flexcan_suspend(struct device *device)
13231323
{
13241324
struct net_device *dev = dev_get_drvdata(device);
13251325
struct flexcan_priv *priv = netdev_priv(dev);
1326-
int err;
1327-
1328-
err = flexcan_chip_disable(priv);
1329-
if (err)
1330-
return err;
1326+
int err = 0;
13311327

13321328
if (netif_running(dev)) {
13331329
netif_stop_queue(dev);
@@ -1340,20 +1336,21 @@ static int flexcan_suspend(struct device *device)
13401336
enable_irq_wake(dev->irq);
13411337
flexcan_enter_stop_mode(priv);
13421338
} else {
1343-
flexcan_chip_disable(priv);
1339+
err = flexcan_chip_disable(priv);
13441340
}
13451341
} else {
1346-
flexcan_chip_disable(priv);
1342+
err = flexcan_chip_disable(priv);
13471343
}
13481344
priv->can.state = CAN_STATE_SLEEPING;
13491345

1350-
return 0;
1346+
return err;
13511347
}
13521348

13531349
static int flexcan_resume(struct device *device)
13541350
{
13551351
struct net_device *dev = dev_get_drvdata(device);
13561352
struct flexcan_priv *priv = netdev_priv(dev);
1353+
int err = 0;
13571354

13581355
priv->can.state = CAN_STATE_ERROR_ACTIVE;
13591356
if (netif_running(dev)) {
@@ -1364,13 +1361,13 @@ static int flexcan_resume(struct device *device)
13641361
disable_irq_wake(dev->irq);
13651362
flexcan_exit_stop_mode(priv);
13661363
} else {
1367-
flexcan_chip_enable(priv);
1364+
err = flexcan_chip_enable(priv);
13681365
}
13691366
} else {
1370-
flexcan_chip_enable(priv);
1367+
err = flexcan_chip_enable(priv);
13711368
}
13721369

1373-
return 0;
1370+
return err;
13741371
}
13751372
#endif /* CONFIG_PM_SLEEP */
13761373

0 commit comments

Comments
 (0)