summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fec_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/fec_main.c')
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index c0c677c3501a..7d34e70482e1 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -4058,8 +4058,6 @@ static int __maybe_unused fec_suspend(struct device *dev)
if (fep->wol_flag & FEC_WOL_FLAG_ENABLE)
fep->wol_flag |= FEC_WOL_FLAG_SLEEP_ON;
phy_stop(ndev->phydev);
- if (fep->reg_phy)
- disable_irq(ndev->phydev->irq);
napi_disable(&fep->napi);
netif_tx_lock_bh(ndev);
netif_device_detach(ndev);
@@ -4067,6 +4065,8 @@ static int __maybe_unused fec_suspend(struct device *dev)
fec_stop(ndev);
if (!(fep->wol_flag & FEC_WOL_FLAG_ENABLE)) {
fec_irqs_disable(ndev);
+ if (fep->reg_phy)
+ disable_irq(ndev->phydev->irq);
pinctrl_pm_select_sleep_state(&fep->pdev->dev);
} else {
fec_enet_enter_stop_mode(fep);
@@ -4135,8 +4135,10 @@ static int __maybe_unused fec_resume(struct device *dev)
fep->wol_flag &= ~FEC_WOL_FLAG_SLEEP_ON;
} else {
pinctrl_pm_select_default_state(&fep->pdev->dev);
- if (fep->reg_phy)
+ if (fep->reg_phy) {
+ phy_init_hw(ndev->phydev);
enable_irq(ndev->phydev->irq);
+ }
}
fec_restart(ndev);
netif_tx_lock_bh(ndev);