aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Kossifidis <mickflemm@gmail.com>2011-11-25 13:40:24 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-11-28 14:44:15 -0500
commit1846ac3dbec0894095520b2756b68c4fd81e3fbb (patch)
treea4e5215b05ded63d3ee516d03312c30243d05b4f
parentce169aca0d823d38465127023e3d571816e6666c (diff)
ath5k: Use usleep_range where possible
Use usleep_range where possible to reduce busy waits Signed-off-by: Nick Kossifidis <mickflemm@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath5k/attach.c2
-rw-r--r--drivers/net/wireless/ath/ath5k/pci.c2
-rw-r--r--drivers/net/wireless/ath/ath5k/phy.c22
-rw-r--r--drivers/net/wireless/ath/ath5k/reset.c14
4 files changed, 20 insertions, 20 deletions
diff --git a/drivers/net/wireless/ath/ath5k/attach.c b/drivers/net/wireless/ath/ath5k/attach.c
index 91627dd2c26a..49fdc9333aa8 100644
--- a/drivers/net/wireless/ath/ath5k/attach.c
+++ b/drivers/net/wireless/ath/ath5k/attach.c
@@ -298,7 +298,7 @@ int ath5k_hw_init(struct ath5k_hw *ah)
298 298
299 /* Reset SERDES to load new settings */ 299 /* Reset SERDES to load new settings */
300 ath5k_hw_reg_write(ah, 0x00000000, AR5K_PCIE_SERDES_RESET); 300 ath5k_hw_reg_write(ah, 0x00000000, AR5K_PCIE_SERDES_RESET);
301 mdelay(1); 301 usleep_range(1000, 1500);
302 } 302 }
303 303
304 /* Get misc capabilities */ 304 /* Get misc capabilities */
diff --git a/drivers/net/wireless/ath/ath5k/pci.c b/drivers/net/wireless/ath/ath5k/pci.c
index dfa48eb7d953..849fa060ebc4 100644
--- a/drivers/net/wireless/ath/ath5k/pci.c
+++ b/drivers/net/wireless/ath/ath5k/pci.c
@@ -98,7 +98,7 @@ ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data)
98 0xffff); 98 0xffff);
99 return true; 99 return true;
100 } 100 }
101 udelay(15); 101 usleep_range(15, 20);
102 } 102 }
103 103
104 return false; 104 return false;
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c
index ca4241d2a774..bf097b118bd4 100644
--- a/drivers/net/wireless/ath/ath5k/phy.c
+++ b/drivers/net/wireless/ath/ath5k/phy.c
@@ -58,7 +58,7 @@ u16 ath5k_hw_radio_revision(struct ath5k_hw *ah, enum ieee80211_band band)
58 return 0; 58 return 0;
59 } 59 }
60 60
61 mdelay(2); 61 usleep_range(2000, 2500);
62 62
63 /* ...wait until PHY is ready and read the selected radio revision */ 63 /* ...wait until PHY is ready and read the selected radio revision */
64 ath5k_hw_reg_write(ah, 0x00001c16, AR5K_PHY(0x34)); 64 ath5k_hw_reg_write(ah, 0x00001c16, AR5K_PHY(0x34));
@@ -308,9 +308,9 @@ static void ath5k_hw_wait_for_synth(struct ath5k_hw *ah,
308 delay = delay << 2; 308 delay = delay << 2;
309 /* XXX: /2 on turbo ? Let's be safe 309 /* XXX: /2 on turbo ? Let's be safe
310 * for now */ 310 * for now */
311 udelay(100 + delay); 311 usleep_range(100 + delay, 100 + (2 * delay));
312 } else { 312 } else {
313 mdelay(1); 313 usleep_range(1000, 1500);
314 } 314 }
315} 315}
316 316
@@ -1083,7 +1083,7 @@ static int ath5k_hw_rf5110_channel(struct ath5k_hw *ah,
1083 data = ath5k_hw_rf5110_chan2athchan(channel); 1083 data = ath5k_hw_rf5110_chan2athchan(channel);
1084 ath5k_hw_reg_write(ah, data, AR5K_RF_BUFFER); 1084 ath5k_hw_reg_write(ah, data, AR5K_RF_BUFFER);
1085 ath5k_hw_reg_write(ah, 0, AR5K_RF_BUFFER_CONTROL_0); 1085 ath5k_hw_reg_write(ah, 0, AR5K_RF_BUFFER_CONTROL_0);
1086 mdelay(1); 1086 usleep_range(1000, 1500);
1087 1087
1088 return 0; 1088 return 0;
1089} 1089}
@@ -1454,7 +1454,7 @@ static int ath5k_hw_rf5110_calibrate(struct ath5k_hw *ah,
1454 beacon = ath5k_hw_reg_read(ah, AR5K_BEACON_5210); 1454 beacon = ath5k_hw_reg_read(ah, AR5K_BEACON_5210);
1455 ath5k_hw_reg_write(ah, beacon & ~AR5K_BEACON_ENABLE, AR5K_BEACON_5210); 1455 ath5k_hw_reg_write(ah, beacon & ~AR5K_BEACON_ENABLE, AR5K_BEACON_5210);
1456 1456
1457 mdelay(2); 1457 usleep_range(2000, 2500);
1458 1458
1459 /* 1459 /*
1460 * Set the channel (with AGC turned off) 1460 * Set the channel (with AGC turned off)
@@ -1467,7 +1467,7 @@ static int ath5k_hw_rf5110_calibrate(struct ath5k_hw *ah,
1467 * Activate PHY and wait 1467 * Activate PHY and wait
1468 */ 1468 */
1469 ath5k_hw_reg_write(ah, AR5K_PHY_ACT_ENABLE, AR5K_PHY_ACT); 1469 ath5k_hw_reg_write(ah, AR5K_PHY_ACT_ENABLE, AR5K_PHY_ACT);
1470 mdelay(1); 1470 usleep_range(1000, 1500);
1471 1471
1472 AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE); 1472 AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE);
1473 1473
@@ -1504,7 +1504,7 @@ static int ath5k_hw_rf5110_calibrate(struct ath5k_hw *ah,
1504 ath5k_hw_reg_write(ah, AR5K_PHY_RFSTG_DISABLE, AR5K_PHY_RFSTG); 1504 ath5k_hw_reg_write(ah, AR5K_PHY_RFSTG_DISABLE, AR5K_PHY_RFSTG);
1505 AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE); 1505 AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE);
1506 1506
1507 mdelay(1); 1507 usleep_range(1000, 1500);
1508 1508
1509 /* 1509 /*
1510 * Enable calibration and wait until completion 1510 * Enable calibration and wait until completion
@@ -3397,7 +3397,7 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
3397 if (ret) 3397 if (ret)
3398 return ret; 3398 return ret;
3399 3399
3400 mdelay(1); 3400 usleep_range(1000, 1500);
3401 3401
3402 /* 3402 /*
3403 * Write RF buffer 3403 * Write RF buffer
@@ -3418,10 +3418,10 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
3418 } 3418 }
3419 3419
3420 } else if (ah->ah_version == AR5K_AR5210) { 3420 } else if (ah->ah_version == AR5K_AR5210) {
3421 mdelay(1); 3421 usleep_range(1000, 1500);
3422 /* Disable phy and wait */ 3422 /* Disable phy and wait */
3423 ath5k_hw_reg_write(ah, AR5K_PHY_ACT_DISABLE, AR5K_PHY_ACT); 3423 ath5k_hw_reg_write(ah, AR5K_PHY_ACT_DISABLE, AR5K_PHY_ACT);
3424 mdelay(1); 3424 usleep_range(1000, 1500);
3425 } 3425 }
3426 3426
3427 /* Set channel on PHY */ 3427 /* Set channel on PHY */
@@ -3447,7 +3447,7 @@ int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
3447 for (i = 0; i <= 20; i++) { 3447 for (i = 0; i <= 20; i++) {
3448 if (!(ath5k_hw_reg_read(ah, AR5K_PHY_ADC_TEST) & 0x10)) 3448 if (!(ath5k_hw_reg_read(ah, AR5K_PHY_ADC_TEST) & 0x10))
3449 break; 3449 break;
3450 udelay(200); 3450 usleep_range(200, 250);
3451 } 3451 }
3452 ath5k_hw_reg_write(ah, phy_tst1, AR5K_PHY_TST1); 3452 ath5k_hw_reg_write(ah, phy_tst1, AR5K_PHY_TST1);
3453 3453
diff --git a/drivers/net/wireless/ath/ath5k/reset.c b/drivers/net/wireless/ath/ath5k/reset.c
index 2abac257b4b4..de28be4296a6 100644
--- a/drivers/net/wireless/ath/ath5k/reset.c
+++ b/drivers/net/wireless/ath/ath5k/reset.c
@@ -357,7 +357,7 @@ static int ath5k_hw_nic_reset(struct ath5k_hw *ah, u32 val)
357 ath5k_hw_reg_write(ah, val, AR5K_RESET_CTL); 357 ath5k_hw_reg_write(ah, val, AR5K_RESET_CTL);
358 358
359 /* Wait at least 128 PCI clocks */ 359 /* Wait at least 128 PCI clocks */
360 udelay(15); 360 usleep_range(15, 20);
361 361
362 if (ah->ah_version == AR5K_AR5210) { 362 if (ah->ah_version == AR5K_AR5210) {
363 val &= AR5K_RESET_CTL_PCU | AR5K_RESET_CTL_DMA 363 val &= AR5K_RESET_CTL_PCU | AR5K_RESET_CTL_DMA
@@ -422,7 +422,7 @@ static int ath5k_hw_wisoc_reset(struct ath5k_hw *ah, u32 flags)
422 regval = __raw_readl(reg); 422 regval = __raw_readl(reg);
423 __raw_writel(regval | val, reg); 423 __raw_writel(regval | val, reg);
424 regval = __raw_readl(reg); 424 regval = __raw_readl(reg);
425 udelay(100); 425 usleep_range(100, 150);
426 426
427 /* Bring BB/MAC out of reset */ 427 /* Bring BB/MAC out of reset */
428 __raw_writel(regval & ~val, reg); 428 __raw_writel(regval & ~val, reg);
@@ -493,7 +493,7 @@ static int ath5k_hw_set_power(struct ath5k_hw *ah, enum ath5k_power_mode mode,
493 493
494 ath5k_hw_reg_write(ah, data | AR5K_SLEEP_CTL_SLE_WAKE, 494 ath5k_hw_reg_write(ah, data | AR5K_SLEEP_CTL_SLE_WAKE,
495 AR5K_SLEEP_CTL); 495 AR5K_SLEEP_CTL);
496 udelay(15); 496 usleep_range(15, 20);
497 497
498 for (i = 200; i > 0; i--) { 498 for (i = 200; i > 0; i--) {
499 /* Check if the chip did wake up */ 499 /* Check if the chip did wake up */
@@ -502,7 +502,7 @@ static int ath5k_hw_set_power(struct ath5k_hw *ah, enum ath5k_power_mode mode,
502 break; 502 break;
503 503
504 /* Wait a bit and retry */ 504 /* Wait a bit and retry */
505 udelay(50); 505 usleep_range(50, 75);
506 ath5k_hw_reg_write(ah, data | AR5K_SLEEP_CTL_SLE_WAKE, 506 ath5k_hw_reg_write(ah, data | AR5K_SLEEP_CTL_SLE_WAKE,
507 AR5K_SLEEP_CTL); 507 AR5K_SLEEP_CTL);
508 } 508 }
@@ -563,7 +563,7 @@ int ath5k_hw_on_hold(struct ath5k_hw *ah)
563 ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU | 563 ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
564 AR5K_RESET_CTL_MAC | AR5K_RESET_CTL_DMA | 564 AR5K_RESET_CTL_MAC | AR5K_RESET_CTL_DMA |
565 AR5K_RESET_CTL_PHY | AR5K_RESET_CTL_PCI); 565 AR5K_RESET_CTL_PHY | AR5K_RESET_CTL_PCI);
566 mdelay(2); 566 usleep_range(2000, 2500);
567 } else { 567 } else {
568 ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU | 568 ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
569 AR5K_RESET_CTL_BASEBAND | bus_flags); 569 AR5K_RESET_CTL_BASEBAND | bus_flags);
@@ -621,7 +621,7 @@ int ath5k_hw_nic_wakeup(struct ath5k_hw *ah, struct ieee80211_channel *channel)
621 ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU | 621 ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
622 AR5K_RESET_CTL_MAC | AR5K_RESET_CTL_DMA | 622 AR5K_RESET_CTL_MAC | AR5K_RESET_CTL_DMA |
623 AR5K_RESET_CTL_PHY | AR5K_RESET_CTL_PCI); 623 AR5K_RESET_CTL_PHY | AR5K_RESET_CTL_PCI);
624 mdelay(2); 624 usleep_range(2000, 2500);
625 } else { 625 } else {
626 if (ath5k_get_bus_type(ah) == ATH_AHB) 626 if (ath5k_get_bus_type(ah) == ATH_AHB)
627 ret = ath5k_hw_wisoc_reset(ah, AR5K_RESET_CTL_PCU | 627 ret = ath5k_hw_wisoc_reset(ah, AR5K_RESET_CTL_PCU |
@@ -739,7 +739,7 @@ int ath5k_hw_nic_wakeup(struct ath5k_hw *ah, struct ieee80211_channel *channel)
739 /* ...update PLL if needed */ 739 /* ...update PLL if needed */
740 if (ath5k_hw_reg_read(ah, AR5K_PHY_PLL) != clock) { 740 if (ath5k_hw_reg_read(ah, AR5K_PHY_PLL) != clock) {
741 ath5k_hw_reg_write(ah, clock, AR5K_PHY_PLL); 741 ath5k_hw_reg_write(ah, clock, AR5K_PHY_PLL);
742 udelay(300); 742 usleep_range(300, 350);
743 } 743 }
744 744
745 /* ...set the PHY operating mode */ 745 /* ...set the PHY operating mode */