]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/usb/pegasus.c
usbnet: pegasus: set wakeup enable in set_wol
[karo-tx-linux.git] / drivers / net / usb / pegasus.c
index 3c02f950a3d2018b50a90b32991a32e018c1e0eb..8ee5ab0db12788523f52ee8d3137799c2547b1ac 100644 (file)
@@ -1097,6 +1097,7 @@ pegasus_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
 {
        pegasus_t       *pegasus = netdev_priv(dev);
        u8              reg78 = 0x04;
+       int             ret;
 
        if (wol->wolopts & ~WOL_SUPPORTED)
                return -EINVAL;
@@ -1111,7 +1112,12 @@ pegasus_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
        else
                pegasus->eth_regs[0] &= ~0x10;
        pegasus->wolopts = wol->wolopts;
-       return set_register(pegasus, WakeupControl, reg78);
+
+       ret = set_register(pegasus, WakeupControl, reg78);
+       if (!ret)
+               ret = device_set_wakeup_enable(&pegasus->usb->dev,
+                                               wol->wolopts);
+       return ret;
 }
 
 static inline void pegasus_reset_wol(struct net_device *dev)