The resolution of msleep is related to HZ, so 10ms msleep() causes ~23ms sleep with OMAP's default CONFIG_HZ=128 timer configuration. This looks too much, and usleep_range() with some slack gives more control of what is happening here. Signed-off-by: Dmitry Antipov <dmitry.antipov@xxxxxxxxxx> --- drivers/net/usb/smsc95xx.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index d45520e..5d406d4 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -688,7 +688,7 @@ static int smsc95xx_phy_initialize(struct usbnet *dev) smsc95xx_mdio_write(dev->net, dev->mii.phy_id, MII_BMCR, BMCR_RESET); do { - msleep(10); + usleep_range(10000, 15000); bmcr = smsc95xx_mdio_read(dev->net, dev->mii.phy_id, MII_BMCR); timeout++; } while ((bmcr & BMCR_RESET) && (timeout < 100)); @@ -736,7 +736,7 @@ static int smsc95xx_reset(struct usbnet *dev) netdev_warn(dev->net, "Failed to read HW_CFG: %d\n", ret); return ret; } - msleep(10); + usleep_range(10000, 15000); timeout++; } while ((read_buf & HW_CFG_LRST_) && (timeout < 100)); @@ -759,7 +759,7 @@ static int smsc95xx_reset(struct usbnet *dev) netdev_warn(dev->net, "Failed to read PM_CTRL: %d\n", ret); return ret; } - msleep(10); + usleep_range(10000, 15000); timeout++; } while ((read_buf & PM_CTL_PHY_RST_) && (timeout < 100)); -- 1.7.7.5 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html