aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/pcmcia/fmvj18x_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/pcmcia/fmvj18x_cs.c')
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 6b435e940607..62efbc7c2dca 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -683,13 +683,8 @@ static int fmvj18x_suspend(struct pcmcia_device *p_dev)
683 dev_link_t *link = dev_to_instance(p_dev); 683 dev_link_t *link = dev_to_instance(p_dev);
684 struct net_device *dev = link->priv; 684 struct net_device *dev = link->priv;
685 685
686 link->state |= DEV_SUSPEND; 686 if ((link->state & DEV_CONFIG) && (link->open))
687 if (link->state & DEV_CONFIG) { 687 netif_device_detach(dev);
688 if (link->open)
689 netif_device_detach(dev);
690 pcmcia_release_configuration(link->handle);
691 }
692
693 688
694 return 0; 689 return 0;
695} 690}
@@ -699,13 +694,9 @@ static int fmvj18x_resume(struct pcmcia_device *p_dev)
699 dev_link_t *link = dev_to_instance(p_dev); 694 dev_link_t *link = dev_to_instance(p_dev);
700 struct net_device *dev = link->priv; 695 struct net_device *dev = link->priv;
701 696
702 link->state &= ~DEV_SUSPEND; 697 if ((link->state & DEV_CONFIG) && (link->open)) {
703 if (link->state & DEV_CONFIG) { 698 fjn_reset(dev);
704 pcmcia_request_configuration(link->handle, &link->conf); 699 netif_device_attach(dev);
705 if (link->open) {
706 fjn_reset(dev);
707 netif_device_attach(dev);
708 }
709 } 700 }
710 701
711 return 0; 702 return 0;