aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl3501_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl3501_cs.c')
-rw-r--r--drivers/net/wireless/wl3501_cs.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index 0c81b3e7d7ff..3a93a8bb2e1f 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -2160,14 +2160,9 @@ static int wl3501_suspend(struct pcmcia_device *p_dev)
2160 dev_link_t *link = dev_to_instance(p_dev); 2160 dev_link_t *link = dev_to_instance(p_dev);
2161 struct net_device *dev = link->priv; 2161 struct net_device *dev = link->priv;
2162 2162
2163 link->state |= DEV_SUSPEND;
2164
2165 wl3501_pwr_mgmt(dev->priv, WL3501_SUSPEND); 2163 wl3501_pwr_mgmt(dev->priv, WL3501_SUSPEND);
2166 if (link->state & DEV_CONFIG) { 2164 if ((link->state & DEV_CONFIG) && (link->open))
2167 if (link->open) 2165 netif_device_detach(dev);
2168 netif_device_detach(dev);
2169 pcmcia_release_configuration(link->handle);
2170 }
2171 2166
2172 return 0; 2167 return 0;
2173} 2168}
@@ -2178,12 +2173,9 @@ static int wl3501_resume(struct pcmcia_device *p_dev)
2178 struct net_device *dev = link->priv; 2173 struct net_device *dev = link->priv;
2179 2174
2180 wl3501_pwr_mgmt(dev->priv, WL3501_RESUME); 2175 wl3501_pwr_mgmt(dev->priv, WL3501_RESUME);
2181 if (link->state & DEV_CONFIG) { 2176 if ((link->state & DEV_CONFIG) && (link->open)) {
2182 pcmcia_request_configuration(link->handle, &link->conf); 2177 wl3501_reset(dev);
2183 if (link->open) { 2178 netif_device_attach(dev);
2184 wl3501_reset(dev);
2185 netif_device_attach(dev);
2186 }
2187 } 2179 }
2188 2180
2189 return 0; 2181 return 0;