diff options
Diffstat (limited to 'drivers/net/smc91x.c')
-rw-r--r-- | drivers/net/smc91x.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 1438fdd20826..c573bb351d4c 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c | |||
@@ -1983,6 +1983,10 @@ static int __init smc_probe(struct net_device *dev, void __iomem *ioaddr) | |||
1983 | if (lp->version >= (CHIP_91100 << 4)) | 1983 | if (lp->version >= (CHIP_91100 << 4)) |
1984 | smc_phy_detect(dev); | 1984 | smc_phy_detect(dev); |
1985 | 1985 | ||
1986 | /* then shut everything down to save power */ | ||
1987 | smc_shutdown(dev); | ||
1988 | smc_phy_powerdown(dev); | ||
1989 | |||
1986 | /* Set default parameters */ | 1990 | /* Set default parameters */ |
1987 | lp->msg_enable = NETIF_MSG_LINK; | 1991 | lp->msg_enable = NETIF_MSG_LINK; |
1988 | lp->ctl_rfduplx = 0; | 1992 | lp->ctl_rfduplx = 0; |
@@ -2291,11 +2295,11 @@ static int smc_drv_remove(struct device *dev) | |||
2291 | return 0; | 2295 | return 0; |
2292 | } | 2296 | } |
2293 | 2297 | ||
2294 | static int smc_drv_suspend(struct device *dev, pm_message_t state, u32 level) | 2298 | static int smc_drv_suspend(struct device *dev, pm_message_t state) |
2295 | { | 2299 | { |
2296 | struct net_device *ndev = dev_get_drvdata(dev); | 2300 | struct net_device *ndev = dev_get_drvdata(dev); |
2297 | 2301 | ||
2298 | if (ndev && level == SUSPEND_DISABLE) { | 2302 | if (ndev) { |
2299 | if (netif_running(ndev)) { | 2303 | if (netif_running(ndev)) { |
2300 | netif_device_detach(ndev); | 2304 | netif_device_detach(ndev); |
2301 | smc_shutdown(ndev); | 2305 | smc_shutdown(ndev); |
@@ -2305,12 +2309,12 @@ static int smc_drv_suspend(struct device *dev, pm_message_t state, u32 level) | |||
2305 | return 0; | 2309 | return 0; |
2306 | } | 2310 | } |
2307 | 2311 | ||
2308 | static int smc_drv_resume(struct device *dev, u32 level) | 2312 | static int smc_drv_resume(struct device *dev) |
2309 | { | 2313 | { |
2310 | struct platform_device *pdev = to_platform_device(dev); | 2314 | struct platform_device *pdev = to_platform_device(dev); |
2311 | struct net_device *ndev = dev_get_drvdata(dev); | 2315 | struct net_device *ndev = dev_get_drvdata(dev); |
2312 | 2316 | ||
2313 | if (ndev && level == RESUME_ENABLE) { | 2317 | if (ndev) { |
2314 | struct smc_local *lp = netdev_priv(ndev); | 2318 | struct smc_local *lp = netdev_priv(ndev); |
2315 | smc_enable_device(pdev); | 2319 | smc_enable_device(pdev); |
2316 | if (netif_running(ndev)) { | 2320 | if (netif_running(ndev)) { |