summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorFugang Duan <B38611@freescale.com>2013-11-04 11:13:12 +0800
committerFugang Duan <B38611@freescale.com>2013-11-04 12:36:07 +0800
commit9268001524a9e4b1a43039aef264fd6087052e7f (patch)
treef290b08a2a813ee52cc9b4c8e5fa17f442ffb1fe /drivers/net
parent6063e4c5c91662b1ce30e83c36a91ae4f7d8878a (diff)
ENGR00286017: net:fec: fix clock enable/disable usecount mismatch
Reproduce: 1. Boot up kernel with DHCP; 2. ifconfig eth0 down; 3. echo mem > /sys/power/state; There have clock enable/disable usecount mismatch warning dump. Fix this by checking device's netif_running state is up and then enable/disable clock. Signed-off-by: Fugang Duan <B38611@freescale.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 3836f5dd45e2..d48fb53eaebc 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -2358,9 +2358,9 @@ fec_suspend(struct device *dev)
if (netif_running(ndev)) {
fec_stop(ndev);
netif_device_detach(ndev);
+ fec_enet_clk_enable(ndev, false);
}
- fec_enet_clk_enable(ndev, false);
if (fep->reg_phy)
regulator_disable(fep->reg_phy);
@@ -2384,8 +2384,8 @@ fec_resume(struct device *dev)
return ret;
}
- fec_enet_clk_enable(ndev, true);
if (netif_running(ndev)) {
+ fec_enet_clk_enable(ndev, true);
fec_restart(ndev, fep->full_duplex);
netif_device_attach(ndev);
}