Skip to content
Snippets Groups Projects
Commit 7e34e45d authored by Felix Fietkau's avatar Felix Fietkau
Browse files

ath9k: add ANI fix for ar913x to improve stability


Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>

SVN-Revision: 40573
parent b4532ad2
No related branches found
No related tags found
No related merge requests found
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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment