aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/davinci_emac.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/davinci_emac.c')
-rw-r--r--drivers/net/davinci_emac.c30
1 files changed, 27 insertions, 3 deletions
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index a876dce13b9e..f1b09c0992b4 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -2806,11 +2806,33 @@ static int __devexit davinci_emac_remove(struct platform_device *pdev)
2806 return 0; 2806 return 0;
2807} 2807}
2808 2808
2809static
2810int davinci_emac_suspend(struct platform_device *pdev, pm_message_t state)
2811{
2812 struct net_device *dev = platform_get_drvdata(pdev);
2813
2814 if (netif_running(dev))
2815 emac_dev_stop(dev);
2816
2817 clk_disable(emac_clk);
2818
2819 return 0;
2820}
2821
2822static int davinci_emac_resume(struct platform_device *pdev)
2823{
2824 struct net_device *dev = platform_get_drvdata(pdev);
2825
2826 clk_enable(emac_clk);
2827
2828 if (netif_running(dev))
2829 emac_dev_open(dev);
2830
2831 return 0;
2832}
2833
2809/** 2834/**
2810 * davinci_emac_driver: EMAC platform driver structure 2835 * davinci_emac_driver: EMAC platform driver structure
2811 *
2812 * We implement only probe and remove functions - suspend/resume and
2813 * others not supported by this module
2814 */ 2836 */
2815static struct platform_driver davinci_emac_driver = { 2837static struct platform_driver davinci_emac_driver = {
2816 .driver = { 2838 .driver = {
@@ -2819,6 +2841,8 @@ static struct platform_driver davinci_emac_driver = {
2819 }, 2841 },
2820 .probe = davinci_emac_probe, 2842 .probe = davinci_emac_probe,
2821 .remove = __devexit_p(davinci_emac_remove), 2843 .remove = __devexit_p(davinci_emac_remove),
2844 .suspend = davinci_emac_suspend,
2845 .resume = davinci_emac_resume,
2822}; 2846};
2823 2847
2824/** 2848/**