diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-06-10 12:03:33 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-06-10 12:03:33 +0000 |
commit | bfd06f261a6baa1ba60ae14b72a09667fcb345f3 (patch) | |
tree | 7c05a8baca63c94d4c4222ccc0e22bf6210aebf0 /package/mac80211/patches/578-ath9k_cleanup_ani_ofdm_trig.patch | |
parent | 085fe0b761674b273625fd1bb91886eb871a890b (diff) | |
download | upstream-bfd06f261a6baa1ba60ae14b72a09667fcb345f3.tar.gz upstream-bfd06f261a6baa1ba60ae14b72a09667fcb345f3.tar.bz2 upstream-bfd06f261a6baa1ba60ae14b72a09667fcb345f3.zip |
ath9k: add some more ani fixes
SVN-Revision: 32159
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.patch | 41 |
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 0000000000..9b4b9910fa --- /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) { |