diff options
author | Lily Zhang <r58066@freescale.com> | 2009-11-24 18:14:31 +0800 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2010-03-25 14:01:13 -0400 |
commit | acb7d210d093567b40d3c42ec2f46ffd62e0b380 (patch) | |
tree | 588fc313fa3195279d07db36d79a609f9713e828 /drivers/net | |
parent | 1aeaf02a11f866ab1c9098dbc042e29617802e21 (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/net')
-rw-r--r-- | drivers/net/fec.c | 8 |
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); } |