@@ -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));
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@linaro.org> --- drivers/net/usb/smsc95xx.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)