|
@@ -1268,11 +1268,10 @@ static int __maybe_unused flexcan_suspend(struct device *device)
|
|
|
struct flexcan_priv *priv = netdev_priv(dev);
|
|
|
int err;
|
|
|
|
|
|
- err = flexcan_chip_disable(priv);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
-
|
|
|
if (netif_running(dev)) {
|
|
|
+ err = flexcan_chip_disable(priv);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
netif_stop_queue(dev);
|
|
|
netif_device_detach(dev);
|
|
|
}
|
|
@@ -1285,13 +1284,17 @@ static int __maybe_unused flexcan_resume(struct device *device)
|
|
|
{
|
|
|
struct net_device *dev = dev_get_drvdata(device);
|
|
|
struct flexcan_priv *priv = netdev_priv(dev);
|
|
|
+ int err;
|
|
|
|
|
|
priv->can.state = CAN_STATE_ERROR_ACTIVE;
|
|
|
if (netif_running(dev)) {
|
|
|
netif_device_attach(dev);
|
|
|
netif_start_queue(dev);
|
|
|
+ err = flexcan_chip_enable(priv);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
}
|
|
|
- return flexcan_chip_enable(priv);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
static SIMPLE_DEV_PM_OPS(flexcan_pm_ops, flexcan_suspend, flexcan_resume);
|