summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/578-ath9k_cleanup_ani_ofdm_trig.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/578-ath9k_cleanup_ani_ofdm_trig.patch')
-rw-r--r--package/mac80211/patches/578-ath9k_cleanup_ani_ofdm_trig.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/package/mac80211/patches/578-ath9k_cleanup_ani_ofdm_trig.patch b/package/mac80211/patches/578-ath9k_cleanup_ani_ofdm_trig.patch
new file mode 100644
index 000000000..9b4b9910f
--- /dev/null
+++ b/package/mac80211/patches/578-ath9k_cleanup_ani_ofdm_trig.patch
@@ -0,0 +1,41 @@
+--- a/drivers/net/wireless/ath/ath9k/ani.c
++++ b/drivers/net/wireless/ath/ath9k/ani.c
+@@ -179,6 +179,14 @@ static void ath9k_hw_set_ofdm_nil(struct
+ ath9k_hw_ani_control(ah,
+ ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
+ entry_ofdm->ofdm_weak_signal_on);
++
++ if (aniState->ofdmNoiseImmunityLevel >= ATH9K_ANI_OFDM_DEF_LEVEL) {
++ ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH;
++ ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_ABOVE_INI;
++ } else {
++ ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_BELOW_INI;
++ ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW;
++ }
+ }
+
+ static void ath9k_hw_ani_ofdm_err_trigger(struct ath_hw *ah)
+@@ -428,21 +436,10 @@ void ath9k_hw_ani_monitor(struct ath_hw
+
+ if (aniState->listenTime > ah->aniperiod) {
+ if (cckPhyErrRate < ah->config.cck_trig_low &&
+- ((ofdmPhyErrRate < ah->config.ofdm_trig_low &&
+- aniState->ofdmNoiseImmunityLevel <
+- ATH9K_ANI_OFDM_DEF_LEVEL) ||
+- (ofdmPhyErrRate < ATH9K_ANI_OFDM_TRIG_LOW_ABOVE_INI &&
+- aniState->ofdmNoiseImmunityLevel >=
+- ATH9K_ANI_OFDM_DEF_LEVEL))) {
++ ofdmPhyErrRate < ah->config.ofdm_trig_low) {
+ ath9k_hw_ani_lower_immunity(ah);
+ aniState->ofdmsTurn = !aniState->ofdmsTurn;
+- } else if ((ofdmPhyErrRate > ah->config.ofdm_trig_high &&
+- aniState->ofdmNoiseImmunityLevel >=
+- ATH9K_ANI_OFDM_DEF_LEVEL) ||
+- (ofdmPhyErrRate >
+- ATH9K_ANI_OFDM_TRIG_HIGH_BELOW_INI &&
+- aniState->ofdmNoiseImmunityLevel <
+- ATH9K_ANI_OFDM_DEF_LEVEL)) {
++ } else if (ofdmPhyErrRate > ah->config.ofdm_trig_high) {
+ ath9k_hw_ani_ofdm_err_trigger(ah);
+ aniState->ofdmsTurn = false;
+ } else if (cckPhyErrRate > ah->config.cck_trig_high) {