[PATCH] fix tulip suspend/resume

Karsten Keil
2005-06-06T23:53:08Z

Hi,

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 <kkeil@suse.de>

--- linux/drivers/net/tulip/tulip_core.c.orig 2005-03-23 23:54:43.000000000 +0100
+++ linux/drivers/net/tulip/tulip_core.c 2005-05-26 17:29:14.000000000 +0200
@@ -1755,12 +1755,16 @@
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_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);

--
Karsten Keil
SuSE Labs
ISDN development