From: Tobias Diedrich Date: Sat, 31 May 2008 22:54:42 +0000 (+0200) Subject: Fix forcedeth hibernate/wake-on-lan problems X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=9a60a82600822d34dcbc4df0866ec6ce643c0e79;p=openwrt%2Fstaging%2Fblogic.git Fix forcedeth hibernate/wake-on-lan problems We currently don't signal the kernel we that this device can wake the system. Call device_init_wakeup() to correct this. Without this device_can_wakeup and device_may_wakeup will return incorrect values. Together with the minimized acpi wakeup patch (6/4 ;)), which will follow in the next mail, this really makes wake-on-lan work for me as expected (i.e. "ethtool -s eth0 wol g" is sufficient, no additional magic needed). Signed-off-by: Tobias Diedrich Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index c980ce9719af..afd063fe11af 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c @@ -5559,6 +5559,11 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i /* set mac address */ nv_copy_mac_to_hw(dev); + /* Workaround current PCI init glitch: wakeup bits aren't + * being set from PCI PM capability. + */ + device_init_wakeup(&pci_dev->dev, 1); + /* disable WOL */ writel(0, base + NvRegWakeUpFlags); np->wolenabled = 0;