[netdrvr] ne: Fix suspend and resume for ISA PnP cards.
authorDavid Fries <david@fries.net>
Tue, 9 Sep 2008 03:01:14 +0000 (22:01 -0500)
committerJeff Garzik <jgarzik@redhat.com>
Wed, 24 Sep 2008 22:48:59 +0000 (18:48 -0400)
A call to pnp_stop_dev and pnp_start_dev now shuts down and
initializes plug and play devices for suspend and resume.

Signed-off-by: David Fries <david@fries.net>
Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/ne.c

index fa3ceca4e15c0c07f3d414b8fbeb05eb711129cb..79599900c4b5a1783b5d21468461a0d02b2ccb63 100644 (file)
@@ -844,8 +844,12 @@ static int ne_drv_suspend(struct platform_device *pdev, pm_message_t state)
 {
        struct net_device *dev = platform_get_drvdata(pdev);
 
-       if (netif_running(dev))
+       if (netif_running(dev)) {
+               struct pnp_dev *idev = (struct pnp_dev *)ei_status.priv;
                netif_device_detach(dev);
+               if (idev)
+                       pnp_stop_dev(idev);
+       }
        return 0;
 }
 
@@ -854,6 +858,9 @@ static int ne_drv_resume(struct platform_device *pdev)
        struct net_device *dev = platform_get_drvdata(pdev);
 
        if (netif_running(dev)) {
+               struct pnp_dev *idev = (struct pnp_dev *)ei_status.priv;
+               if (idev)
+                       pnp_start_dev(idev);
                ne_reset_8390(dev);
                NS8390p_init(dev, 1);
                netif_device_attach(dev);