Skip to content

Commit

Permalink
smsc95xx: sleep before read for lengthy operations
Browse files Browse the repository at this point in the history
During init, the device reset is unexpected to complete immediately,
so sleep before testing the condition rather than after it.

Signed-off-by: Steve Glendinning <steve.glendinning@shawell.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Steve Glendinning authored and David S. Miller committed Sep 28, 2012
1 parent 6a06e5e commit cf2acec
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/net/usb/smsc95xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -763,12 +763,12 @@ static int smsc95xx_reset(struct usbnet *dev)

timeout = 0;
do {
msleep(10);
ret = smsc95xx_read_reg(dev, HW_CFG, &read_buf);
if (ret < 0) {
netdev_warn(dev->net, "Failed to read HW_CFG: %d\n", ret);
return ret;
}
msleep(10);
timeout++;
} while ((read_buf & HW_CFG_LRST_) && (timeout < 100));

Expand All @@ -786,12 +786,12 @@ static int smsc95xx_reset(struct usbnet *dev)

timeout = 0;
do {
msleep(10);
ret = smsc95xx_read_reg(dev, PM_CTRL, &read_buf);
if (ret < 0) {
netdev_warn(dev->net, "Failed to read PM_CTRL: %d\n", ret);
return ret;
}
msleep(10);
timeout++;
} while ((read_buf & PM_CTL_PHY_RST_) && (timeout < 100));

Expand Down

0 comments on commit cf2acec

Please sign in to comment.