From: Bruno Prémont Date: Thu, 9 Oct 2008 00:06:25 +0000 (-0700) Subject: r8169: WoL fixes, part 2. X-Git-Tag: v2.6.28-rc1~717^2~57 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=8b76ab39196edd459d209f6d6a075fa15e9da232;p=~emulex%2Finfiniband.git r8169: WoL fixes, part 2. Since recent kernel (2.6.26 or 2.6.27) the PCI wakeup functions are influenced by generic device ability and configuration when enabling PCI-device triggered wake-up. This patch causes WoL setting to enable/disable device's wish to be permitted to wake-up the host when changing WoL options and also during device probing. Without this patch one has write 'enabled' to /sys/bus/pci/devices/0000:02:08.0/power/wakeup Signed-off-by: Bruno Prémont Acked-by: Rafael J. Wysocki Signed-off-by: David S. Miller --- diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index 3c6e591326f..108aaff0b21 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -759,6 +759,7 @@ static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) tp->features |= RTL_FEATURE_WOL; else tp->features &= ~RTL_FEATURE_WOL; + device_set_wakeup_enable(&tp->pci_dev->dev, wol->wolopts); spin_unlock_irq(&tp->lock); @@ -2017,6 +2018,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) } rtl8169_init_phy(dev, tp); + device_set_wakeup_enable(&pdev->dev, tp->features & RTL_FEATURE_WOL); out: return rc;