From: Karsten Keil following patch fix the suspend/resume for tulip based cards, so suspend on disk work now for me and tulip based cardbus cards. Signed-off-by: Karsten Keil Cc: Jeff Garzik Signed-off-by: Andrew Morton --- drivers/net/tulip/tulip_core.c | 8 ++++++++ 1 files changed, 8 insertions(+) diff -puN drivers/net/tulip/tulip_core.c~fix-tulip-suspend-resume drivers/net/tulip/tulip_core.c --- 25/drivers/net/tulip/tulip_core.c~fix-tulip-suspend-resume Mon Jun 6 15:54:51 2005 +++ 25-akpm/drivers/net/tulip/tulip_core.c Mon Jun 6 15:54:51 2005 @@ -1755,12 +1755,16 @@ err_out_free_netdev: static int tulip_suspend (struct pci_dev *pdev, pm_message_t state) { struct net_device *dev = pci_get_drvdata(pdev); + int err; + pci_save_state(pdev); if (dev && netif_running (dev) && netif_device_present (dev)) { netif_device_detach (dev); tulip_down (dev); /* pci_power_off(pdev, -1); */ } + if ((err = pci_set_power_state(pdev, PCI_D3hot))) + printk(KERN_ERR "%s: pci_set_power_state D3hot return %d\n", dev->name, err); return 0; } @@ -1768,7 +1772,11 @@ static int tulip_suspend (struct pci_dev static int tulip_resume(struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata(pdev); + int err; + if ((err = pci_set_power_state(pdev, PCI_D0))) + printk(KERN_ERR "%s: pci_set_power_state D0 return %d\n", dev->name, err); + pci_restore_state(pdev); if (dev && netif_running (dev) && !netif_device_present (dev)) { #if 1 pci_enable_device (pdev); _