CHROMIUM: r8169.c: Fix WOL setting after resume from S3.
[cascardo/linux.git] / drivers / net / ethernet / realtek / r8169.c
index 47c3fbc..3fa638e 100644 (file)
@@ -5828,6 +5828,11 @@ static int rtl8169_suspend(struct device *device)
 {
        struct pci_dev *pdev = to_pci_dev(device);
        struct net_device *dev = pci_get_drvdata(pdev);
+       struct rtl8169_private *tp = netdev_priv(dev);
+
+       rtl_lock_work(tp);
+       tp->saved_wolopts = __rtl8169_get_wol(tp);
+       rtl_unlock_work(tp);
 
        rtl8169_net_suspend(dev);
 
@@ -5856,6 +5861,10 @@ static int rtl8169_resume(struct device *device)
        struct net_device *dev = pci_get_drvdata(pdev);
        struct rtl8169_private *tp = netdev_priv(dev);
 
+       rtl_lock_work(tp);
+       __rtl8169_set_wol(tp, tp->saved_wolopts);
+       rtl_unlock_work(tp);
+
        rtl8169_init_phy(dev, tp);
 
        if (netif_running(dev))