ath9k: add ANI fix for ar913x to improve stability
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 40573
This commit is contained in:
parent
b4532ad21e
commit
7e34e45dcf
1 changed files with 39 additions and 0 deletions
|
@ -1,3 +1,20 @@
|
|||
commit 98a713933d8495f4078f561c1e651b738dd5b531
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Sun Apr 27 14:49:03 2014 +0200
|
||||
|
||||
ath9k_hw: do not lower ANI setting below default on AR913x
|
||||
|
||||
When the amount of noise fluctuates strongly, low immunity settings
|
||||
can sometimes disrupt signal detection on AR913x chips. When that
|
||||
happens, no OFDM/CCK errors are reported anymore, and ANI tunes the
|
||||
radio to the lowest immunity settings.
|
||||
Usually rx/tx fails as well in that case.
|
||||
|
||||
To fix this, keep noise immunity settings at or above ANI default level,
|
||||
which will keep radio parameters at or above INI values.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
commit 7cbb4c021bfd1e656f5b9953a947ab3c64e4e3b0
|
||||
Author: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Thu Apr 10 10:49:01 2014 +0200
|
||||
|
@ -98,3 +115,25 @@ Date: Sun Apr 6 23:35:28 2014 +0200
|
|||
return;
|
||||
|
||||
drv_bss_info_changed(local, sdata, &sdata->vif.bss_conf, changed);
|
||||
--- a/drivers/net/wireless/ath/ath9k/ani.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ani.c
|
||||
@@ -155,6 +155,9 @@ static void ath9k_hw_set_ofdm_nil(struct
|
||||
ATH9K_ANI_RSSI_THR_LOW,
|
||||
ATH9K_ANI_RSSI_THR_HIGH);
|
||||
|
||||
+ if (AR_SREV_9100(ah) && immunityLevel < ATH9K_ANI_OFDM_DEF_LEVEL)
|
||||
+ immunityLevel = ATH9K_ANI_OFDM_DEF_LEVEL;
|
||||
+
|
||||
if (!scan)
|
||||
aniState->ofdmNoiseImmunityLevel = immunityLevel;
|
||||
|
||||
@@ -235,6 +238,9 @@ static void ath9k_hw_set_cck_nil(struct
|
||||
BEACON_RSSI(ah), ATH9K_ANI_RSSI_THR_LOW,
|
||||
ATH9K_ANI_RSSI_THR_HIGH);
|
||||
|
||||
+ if (AR_SREV_9100(ah) && immunityLevel < ATH9K_ANI_CCK_DEF_LEVEL)
|
||||
+ immunityLevel = ATH9K_ANI_CCK_DEF_LEVEL;
|
||||
+
|
||||
if (ah->opmode == NL80211_IFTYPE_STATION &&
|
||||
BEACON_RSSI(ah) <= ATH9K_ANI_RSSI_THR_LOW &&
|
||||
immunityLevel > ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI)
|
||||
|
|
Loading…
Reference in a new issue