Fix forcedeth hibernate/wake-on-lan problems
authorTobias Diedrich <ranma+kernel@tdiedrich.de>
Sat, 31 May 2008 22:54:42 +0000 (00:54 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Sat, 28 Jun 2008 14:23:35 +0000 (10:23 -0400)
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 <ranma+kernel@tdiedrich.de>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/forcedeth.c

index c980ce9719af6383d095593b26850f30b738e5a1..afd063fe11af3af47aed8b9f5143afef56c5f912 100644 (file)
@@ -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;