[PATCH] pcmcia: default suspend and resume handling
[linux-2.6-block.git] / drivers / net / wireless / wavelan_cs.c
index 696aeb9d8f521390acdc388bfa02f05c7761aede..8cabcfe3a654e6b553c22ddc1eedf3d9a2b314d3 100644 (file)
@@ -4742,19 +4742,12 @@ static int wavelan_suspend(struct pcmcia_device *p_dev)
        /* Stop receiving new messages and wait end of transmission */
        wv_ru_stop(dev);
 
+       if ((link->state & DEV_CONFIG) && (link->open))
+               netif_device_detach(dev);
+
        /* Power down the module */
        hacr_write(dev->base_addr, HACR_DEFAULT & (~HACR_PWR_STAT));
 
-       /* The card is now suspended */
-       link->state |= DEV_SUSPEND;
-
-       if(link->state & DEV_CONFIG)
-       {
-               if(link->open)
-                       netif_device_detach(dev);
-               pcmcia_release_configuration(link->handle);
-       }
-
        return 0;
 }
 
@@ -4764,14 +4757,9 @@ static int wavelan_resume(struct pcmcia_device *p_dev)
        struct net_device *     dev = (struct net_device *) link->priv;
 
        link->state &= ~DEV_SUSPEND;
-       if(link->state & DEV_CONFIG)
-       {
-               pcmcia_request_configuration(link->handle, &link->conf);
-               if(link->open)  /* If RESET -> True, If RESUME -> False ? */
-               {
-                       wv_hw_reset(dev);
-                       netif_device_attach(dev);
-               }
+       if ((link->state & DEV_CONFIG) && (link->open)) {
+               wv_hw_reset(dev);
+               netif_device_attach(dev);
        }
 
        return 0;