summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLily Zhang <r58066@freescale.com>2009-11-24 18:14:31 +0800
committerJustin Waters <justin.waters@timesys.com>2010-03-25 14:01:13 -0400
commitacb7d210d093567b40d3c42ec2f46ffd62e0b380 (patch)
tree588fc313fa3195279d07db36d79a609f9713e828 /drivers
parent1aeaf02a11f866ab1c9098dbc042e29617802e21 (diff)
ENGR00118714 Disable FEC clock when it's not used
Disable FEC clock when it's not used in 31 kernel Signed-off-by: Lily Zhang <r58066@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 91d8e214d4a9..b3b2921550e2 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -1530,6 +1530,7 @@ fec_enet_open(struct net_device *dev)
* a simple way to do that.
*/
+ clk_enable(fep->clk);
ret = fec_enet_alloc_buffers(dev);
if (ret)
return ret;
@@ -1579,6 +1580,7 @@ fec_enet_close(struct net_device *dev)
fec_stop(dev);
fec_enet_free_buffers(dev);
+ clk_disable(fep->clk);
return 0;
}
@@ -1975,6 +1977,7 @@ fec_probe(struct platform_device *pdev)
if (ret)
goto failed_register;
+ clk_disable(fep->clk);
return 0;
failed_register:
@@ -2023,8 +2026,10 @@ fec_suspend(struct platform_device *dev, pm_message_t state)
if (netif_running(ndev)) {
netif_device_detach(ndev);
fec_stop(ndev);
+ clk_disable(fep->clk);
}
}
+
return 0;
}
@@ -2032,9 +2037,12 @@ static int
fec_resume(struct platform_device *dev)
{
struct net_device *ndev = platform_get_drvdata(dev);
+ struct fec_enet_private *fep;
if (ndev) {
+ fep = netdev_priv(ndev);
if (netif_running(ndev)) {
+ clk_enable(fep->clk);
fec_restart(ndev, 1);
netif_device_attach(ndev);
}