|
@@ -3840,19 +3840,12 @@ void ath9k_hw_settsf64(struct ath_hw *ah, u64 tsf64)
|
|
|
|
|
|
void ath9k_hw_reset_tsf(struct ath_hw *ah)
|
|
|
{
|
|
|
- int count;
|
|
|
-
|
|
|
ath9k_ps_wakeup(ah->ah_sc);
|
|
|
- count = 0;
|
|
|
- while (REG_READ(ah, AR_SLP32_MODE) & AR_SLP32_TSF_WRITE_STATUS) {
|
|
|
- count++;
|
|
|
- if (count > 10) {
|
|
|
- DPRINTF(ah->ah_sc, ATH_DBG_RESET,
|
|
|
- "AR_SLP32_TSF_WRITE_STATUS limit exceeded\n");
|
|
|
- break;
|
|
|
- }
|
|
|
- udelay(10);
|
|
|
- }
|
|
|
+ if (!ath9k_hw_wait(ah, AR_SLP32_MODE, AR_SLP32_TSF_WRITE_STATUS, 0,
|
|
|
+ AH_TSF_WRITE_TIMEOUT))
|
|
|
+ DPRINTF(ah->ah_sc, ATH_DBG_RESET,
|
|
|
+ "AR_SLP32_TSF_WRITE_STATUS limit exceeded\n");
|
|
|
+
|
|
|
REG_WRITE(ah, AR_RESET_TSF, AR_RESET_TSF_ONCE);
|
|
|
ath9k_ps_restore(ah->ah_sc);
|
|
|
}
|