Skip to content

Commit

Permalink
smsc75xx: don't enable remote wakeup directly
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
steveglen authored and davem330 committed Nov 28, 2012
1 parent b4cdea9 commit 351f33d
Showing 1 changed file with 8 additions and 35 deletions.
43 changes: 8 additions & 35 deletions drivers/net/usb/smsc75xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@
#define SUSPEND_SUSPEND1 (0x02)
#define SUSPEND_SUSPEND2 (0x04)
#define SUSPEND_SUSPEND3 (0x08)
#define SUSPEND_REMOTEWAKE (0x10)
#define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \
SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3)

Expand Down Expand Up @@ -172,26 +171,6 @@ static int __must_check smsc75xx_write_reg(struct usbnet *dev, u32 index,
return __smsc75xx_write_reg(dev, index, data, 0);
}

static int smsc75xx_set_feature(struct usbnet *dev, u32 feature)
{
if (WARN_ON_ONCE(!dev))
return -EINVAL;

return usbnet_write_cmd_nopm(dev, USB_REQ_SET_FEATURE,
USB_DIR_OUT | USB_RECIP_DEVICE,
feature, 0, NULL, 0);
}

static int smsc75xx_clear_feature(struct usbnet *dev, u32 feature)
{
if (WARN_ON_ONCE(!dev))
return -EINVAL;

return usbnet_write_cmd_nopm(dev, USB_REQ_CLEAR_FEATURE,
USB_DIR_OUT | USB_RECIP_DEVICE,
feature, 0, NULL, 0);
}

/* Loop until the read is completed with timeout
* called with phy_mutex held */
static __must_check int __smsc75xx_phy_wait_not_busy(struct usbnet *dev,
Expand Down Expand Up @@ -674,8 +653,13 @@ static int smsc75xx_ethtool_set_wol(struct net_device *net,
{
struct usbnet *dev = netdev_priv(net);
struct smsc75xx_priv *pdata = (struct smsc75xx_priv *)(dev->data[0]);
int ret;

pdata->wolopts = wolinfo->wolopts & SUPPORTED_WAKE;

ret = device_set_wakeup_enable(&dev->udev->dev, pdata->wolopts);
check_warn_return(ret, "device_set_wakeup_enable error %d\n", ret);

return 0;
}

Expand Down Expand Up @@ -1263,9 +1247,7 @@ static int smsc75xx_enter_suspend0(struct usbnet *dev)
ret = smsc75xx_write_reg_nopm(dev, PMT_CTL, val);
check_warn_return(ret, "Error writing PMT_CTL\n");

smsc75xx_set_feature(dev, USB_DEVICE_REMOTE_WAKEUP);

pdata->suspend_flags |= SUSPEND_SUSPEND0 | SUSPEND_REMOTEWAKE;
pdata->suspend_flags |= SUSPEND_SUSPEND0;

return 0;
}
Expand All @@ -1292,9 +1274,7 @@ static int smsc75xx_enter_suspend1(struct usbnet *dev)
ret = smsc75xx_write_reg_nopm(dev, PMT_CTL, val);
check_warn_return(ret, "Error writing PMT_CTL\n");

smsc75xx_set_feature(dev, USB_DEVICE_REMOTE_WAKEUP);

pdata->suspend_flags |= SUSPEND_SUSPEND1 | SUSPEND_REMOTEWAKE;
pdata->suspend_flags |= SUSPEND_SUSPEND1;

return 0;
}
Expand Down Expand Up @@ -1349,9 +1329,7 @@ static int smsc75xx_enter_suspend3(struct usbnet *dev)
ret = smsc75xx_write_reg_nopm(dev, PMT_CTL, val);
check_warn_return(ret, "Error writing PMT_CTL\n");

smsc75xx_set_feature(dev, USB_DEVICE_REMOTE_WAKEUP);

pdata->suspend_flags |= SUSPEND_SUSPEND3 | SUSPEND_REMOTEWAKE;
pdata->suspend_flags |= SUSPEND_SUSPEND3;

return 0;
}
Expand Down Expand Up @@ -1651,11 +1629,6 @@ static int smsc75xx_resume(struct usb_interface *intf)
/* do this first to ensure it's cleared even in error case */
pdata->suspend_flags = 0;

if (suspend_flags & SUSPEND_REMOTEWAKE) {
ret = smsc75xx_clear_feature(dev, USB_DEVICE_REMOTE_WAKEUP);
check_warn_return(ret, "Error disabling remote wakeup\n");
}

if (suspend_flags & SUSPEND_ALLMODES) {
/* Disable wakeup sources */
ret = smsc75xx_read_reg_nopm(dev, WUCSR, &val);
Expand Down

0 comments on commit 351f33d

Please sign in to comment.