mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-21 02:39:32 +02:00
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)
|