diff options
author | Nick Kossifidis <mickflemm@gmail.com> | 2011-11-25 13:40:24 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-28 14:44:15 -0500 |
commit | 1846ac3dbec0894095520b2756b68c4fd81e3fbb (patch) | |
tree | a4e5215b05ded63d3ee516d03312c30243d05b4f | |
parent | ce169aca0d823d38465127023e3d571816e6666c (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.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath5k/pci.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath5k/phy.c | 22 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath5k/reset.c | 14 |
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 91627dd2c26..49fdc9333aa 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 dfa48eb7d95..849fa060ebc 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 ca4241d2a77..bf097b118bd 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 2abac257b4b..de28be4296a 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 */ |