Messages in this thread Patches in this message | | | Subject | [PATCH]eepro100 resume failure | From | Li Shaohua <> | Date | Mon, 15 Nov 2004 16:30:50 +0800 |
| |
Hi, After resume from S3, eepro100 driver reported some errors and stop working in my Toshiba laptop. Below patch fixes it.
Thanks, Shaohua
Signed-off-by: Li Shaohua<shaohua.li@intel.com> ---
2.6-root/drivers/net/eepro100.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletion(-)
diff -puN drivers/net/eepro100.c~eepro100-pm drivers/net/eepro100.c --- 2.6/drivers/net/eepro100.c~eepro100-pm 2004-11-15 16:06:22.500880880 +0800 +++ 2.6-root/drivers/net/eepro100.c 2004-11-15 16:16:43.057541928 +0800 @@ -2327,7 +2327,7 @@ static int eepro100_suspend(struct pci_d netif_device_detach(dev); outl(PortPartialReset, ioaddr + SCBPort); - /* XXX call pci_set_power_state ()? */ + pci_set_power_state (pdev, 3); return 0; } @@ -2337,7 +2337,12 @@ static int eepro100_resume(struct pci_de struct speedo_private *sp = netdev_priv(dev); long ioaddr = dev->base_addr; + pci_set_power_state(pdev, 0); pci_restore_state(pdev); + if (pdev->is_enabled) + pci_enable_device(pdev); + if (pdev->is_busmaster) + pci_set_master(pdev); if (!netif_running(dev)) return 0; _
---
2.6-root/drivers/net/eepro100.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletion(-)
diff -puN drivers/net/eepro100.c~eepro100-pm drivers/net/eepro100.c --- 2.6/drivers/net/eepro100.c~eepro100-pm 2004-11-15 16:06:22.500880880 +0800 +++ 2.6-root/drivers/net/eepro100.c 2004-11-15 16:16:43.057541928 +0800 @@ -2327,7 +2327,7 @@ static int eepro100_suspend(struct pci_d netif_device_detach(dev); outl(PortPartialReset, ioaddr + SCBPort); - /* XXX call pci_set_power_state ()? */ + pci_set_power_state (pdev, 3); return 0; } @@ -2337,7 +2337,12 @@ static int eepro100_resume(struct pci_de struct speedo_private *sp = netdev_priv(dev); long ioaddr = dev->base_addr; + pci_set_power_state(pdev, 0); pci_restore_state(pdev); + if (pdev->is_enabled) + pci_enable_device(pdev); + if (pdev->is_busmaster) + pci_set_master(pdev); if (!netif_running(dev)) return 0; _ | |