From: John Crispin Date: Sun, 7 Dec 2014 16:53:09 +0000 (+0000) Subject: ag71xx: replace delay with sleep calls X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=59e7999a440be5cb229cba87b3a0fb8392b094da;p=openwrt%2Fstaging%2Fjow.git ag71xx: replace delay with sleep calls I don't see that we're in an atomic context so there's no need to busy-wait. Therefore replace the delay with sleep calls. See also Documentation/timers/timers-howto.txt. It states: "In general, use of mdelay is discouraged and code should be refactored to allow for the use of msleep." Signed-off-by: Heiner Kallweit SVN-Revision: 43539 --- diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c index 7f26196f3d..8dfff3b6eb 100644 --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ar7240.c @@ -445,7 +445,7 @@ static int __ar7240sw_reg_wait(struct mii_bus *mii, u32 reg, u32 mask, u32 val, if ((t & mask) == val) return 0; - msleep(1); + usleep_range(1000, 2000); } return -ETIMEDOUT; @@ -654,7 +654,7 @@ static int ar7240sw_reset(struct ar7240sw *as) ar7240sw_disable_port(as, i); /* Wait for transmit queues to drain. */ - msleep(2); + usleep_range(2000, 3000); /* Reset the switch. */ ar7240sw_reg_write(mii, AR7240_REG_MASK_CTRL, diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c index 892d5e69e9..259cc205cb 100644 --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c @@ -470,18 +470,18 @@ static void ag71xx_hw_init(struct ag71xx *ag) reset_mask &= ~(AR71XX_RESET_GE0_PHY | AR71XX_RESET_GE1_PHY); ath79_device_reset_set(reset_phy); - mdelay(50); + msleep(50); ath79_device_reset_clear(reset_phy); - mdelay(200); + msleep(200); } ag71xx_sb(ag, AG71XX_REG_MAC_CFG1, MAC_CFG1_SR); udelay(20); ath79_device_reset_set(reset_mask); - mdelay(100); + msleep(100); ath79_device_reset_clear(reset_mask); - mdelay(200); + msleep(200); ag71xx_hw_setup(ag);