34 lines
1.1 KiB
Diff
34 lines
1.1 KiB
Diff
From d2fa21debb4ea8c022b0fbed165eea821d19da9e Mon Sep 17 00:00:00 2001
|
|
From: Gabor Juhos <juhosg@openwrt.org>
|
|
Date: Sat, 20 Jun 2009 23:57:22 +0200
|
|
Subject: [PATCH] ath9k: wake up the chip for TSF reset
|
|
|
|
If we are in NETWORK SLEEP state, AR_SLP32_TSF_WRITE_STATUS limit
|
|
always exceeds in 'ath9k_hw_reset_tsf', because reading of the
|
|
AR_SLP3 register always return with the magic 0xdeadbeef value.
|
|
|
|
Changes-licensed-under: ISC
|
|
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|
---
|
|
drivers/net/wireless/ath/ath9k/hw.c | 2 ++
|
|
1 files changed, 2 insertions(+), 0 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
|
@@ -3803,6 +3803,7 @@ void ath9k_hw_reset_tsf(struct ath_hw *a
|
|
{
|
|
int count;
|
|
|
|
+ ath9k_ps_wakeup(ah->ah_sc);
|
|
count = 0;
|
|
while (REG_READ(ah, AR_SLP32_MODE) & AR_SLP32_TSF_WRITE_STATUS) {
|
|
count++;
|
|
@@ -3814,6 +3815,7 @@ void ath9k_hw_reset_tsf(struct ath_hw *a
|
|
udelay(10);
|
|
}
|
|
REG_WRITE(ah, AR_RESET_TSF, AR_RESET_TSF_ONCE);
|
|
+ ath9k_ps_restore(ah->ah_sc);
|
|
}
|
|
|
|
bool ath9k_hw_set_tsfadjust(struct ath_hw *ah, u32 setting)
|