From: Steffen Klassert Date: Tue, 16 Oct 2007 21:24:09 +0000 (-0700) Subject: WOL bugfix for 3c59x.c X-Git-Tag: v2.6.24-rc1~819^2 X-Git-Url: http://bbs.cooldavid.org/git/?a=commitdiff_plain;h=1a1769f32349a188db48cf81fe306b6f841fc246;p=net-next-2.6.git WOL bugfix for 3c59x.c Some NICs (3c905B) can not generate PME in power state PCI_D0, while others like 3c905C can. Call pci_enable_wake() with PCI_D3hot should give proper WOL for 3c905B. Signed-off-by: Steffen Klassert Tested-by: Harry Coin Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index 8d3893da06f..862f47223fd 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c @@ -3118,7 +3118,13 @@ static void acpi_set_WOL(struct net_device *dev) iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD); iowrite16(RxEnable, ioaddr + EL3_CMD); - pci_enable_wake(VORTEX_PCI(vp), 0, 1); + if (pci_enable_wake(VORTEX_PCI(vp), PCI_D3hot, 1)) { + printk(KERN_INFO "%s: WOL not supported.\n", + pci_name(VORTEX_PCI(vp))); + + vp->enable_wol = 0; + return; + } /* Change the power state to D3; RxEnable doesn't take effect. */ pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);