diff options
author | Steve Glendinning <steve.glendinning@shawell.net> | 2012-11-30 00:55:50 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-11-30 12:27:20 -0500 |
commit | 3b14692c01e0b68f0ce51138dfcea967a63cd7bb (patch) | |
tree | 195b77f902c61c6d6421aee5b32fc1eb62be0838 | |
parent | 3b9f7d8cdb6db2b6ba78c149dacec3d72591c544 (diff) |
smsc95xx: don't enable remote wakeup directly
As pointed out by Bjorn Mork, the generic "usb" driver sets this
for us so no need to directly set it in this driver.
Signed-off-by: Steve Glendinning <steve.glendinning@shawell.net>
Cc: Bjorn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/usb/smsc95xx.c | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index ffeaf131baa7..064df1af0df3 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c | |||
@@ -154,25 +154,6 @@ static int __must_check smsc95xx_write_reg(struct usbnet *dev, u32 index, | |||
154 | { | 154 | { |
155 | return __smsc95xx_write_reg(dev, index, data, 0); | 155 | return __smsc95xx_write_reg(dev, index, data, 0); |
156 | } | 156 | } |
157 | static int smsc95xx_set_feature(struct usbnet *dev, u32 feature) | ||
158 | { | ||
159 | if (WARN_ON_ONCE(!dev)) | ||
160 | return -EINVAL; | ||
161 | |||
162 | return usbnet_write_cmd_nopm(dev, USB_REQ_SET_FEATURE, | ||
163 | USB_RECIP_DEVICE, feature, 0, | ||
164 | NULL, 0); | ||
165 | } | ||
166 | |||
167 | static int smsc95xx_clear_feature(struct usbnet *dev, u32 feature) | ||
168 | { | ||
169 | if (WARN_ON_ONCE(!dev)) | ||
170 | return -EINVAL; | ||
171 | |||
172 | return usbnet_write_cmd_nopm(dev, USB_REQ_CLEAR_FEATURE, | ||
173 | USB_RECIP_DEVICE, feature, | ||
174 | 0, NULL, 0); | ||
175 | } | ||
176 | 157 | ||
177 | /* Loop until the read is completed with timeout | 158 | /* Loop until the read is completed with timeout |
178 | * called with phy_mutex held */ | 159 | * called with phy_mutex held */ |
@@ -685,8 +666,13 @@ static int smsc95xx_ethtool_set_wol(struct net_device *net, | |||
685 | { | 666 | { |
686 | struct usbnet *dev = netdev_priv(net); | 667 | struct usbnet *dev = netdev_priv(net); |
687 | struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); | 668 | struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); |
669 | int ret; | ||
688 | 670 | ||
689 | pdata->wolopts = wolinfo->wolopts & SUPPORTED_WAKE; | 671 | pdata->wolopts = wolinfo->wolopts & SUPPORTED_WAKE; |
672 | |||
673 | ret = device_set_wakeup_enable(&dev->udev->dev, pdata->wolopts); | ||
674 | check_warn_return(ret, "device_set_wakeup_enable error %d\n", ret); | ||
675 | |||
690 | return 0; | 676 | return 0; |
691 | } | 677 | } |
692 | 678 | ||
@@ -1160,8 +1146,6 @@ static int smsc95xx_enter_suspend0(struct usbnet *dev) | |||
1160 | ret = smsc95xx_read_reg_nopm(dev, PM_CTRL, &val); | 1146 | ret = smsc95xx_read_reg_nopm(dev, PM_CTRL, &val); |
1161 | check_warn_return(ret, "Error reading PM_CTRL\n"); | 1147 | check_warn_return(ret, "Error reading PM_CTRL\n"); |
1162 | 1148 | ||
1163 | smsc95xx_set_feature(dev, USB_DEVICE_REMOTE_WAKEUP); | ||
1164 | |||
1165 | return 0; | 1149 | return 0; |
1166 | } | 1150 | } |
1167 | 1151 | ||
@@ -1204,8 +1188,6 @@ static int smsc95xx_enter_suspend1(struct usbnet *dev) | |||
1204 | ret = smsc95xx_write_reg_nopm(dev, PM_CTRL, val); | 1188 | ret = smsc95xx_write_reg_nopm(dev, PM_CTRL, val); |
1205 | check_warn_return(ret, "Error writing PM_CTRL\n"); | 1189 | check_warn_return(ret, "Error writing PM_CTRL\n"); |
1206 | 1190 | ||
1207 | smsc95xx_set_feature(dev, USB_DEVICE_REMOTE_WAKEUP); | ||
1208 | |||
1209 | return 0; | 1191 | return 0; |
1210 | } | 1192 | } |
1211 | 1193 | ||
@@ -1456,8 +1438,6 @@ static int smsc95xx_resume(struct usb_interface *intf) | |||
1456 | BUG_ON(!dev); | 1438 | BUG_ON(!dev); |
1457 | 1439 | ||
1458 | if (pdata->wolopts) { | 1440 | if (pdata->wolopts) { |
1459 | smsc95xx_clear_feature(dev, USB_DEVICE_REMOTE_WAKEUP); | ||
1460 | |||
1461 | /* clear wake-up sources */ | 1441 | /* clear wake-up sources */ |
1462 | ret = smsc95xx_read_reg_nopm(dev, WUCSR, &val); | 1442 | ret = smsc95xx_read_reg_nopm(dev, WUCSR, &val); |
1463 | check_warn_return(ret, "Error reading WUCSR\n"); | 1443 | check_warn_return(ret, "Error reading WUCSR\n"); |