diff options
Diffstat (limited to 'drivers/net/pcmcia/fmvj18x_cs.c')
-rw-r--r-- | drivers/net/pcmcia/fmvj18x_cs.c | 19 |
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; |