From 9a60a82600822d34dcbc4df0866ec6ce643c0e79 Mon Sep 17 00:00:00 2001
From: Tobias Diedrich <ranma+kernel@tdiedrich.de>
Date: Sun, 1 Jun 2008 00:54:42 +0200
Subject: [PATCH] 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 <ranma+kernel@tdiedrich.de>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
 drivers/net/forcedeth.c | 5 +++++
 1 file changed, 5 insertions(+)

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;
-- 
GitLab