aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/571-ath9k_ani_fix_weak_sig.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-06-04 13:42:39 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-06-04 13:42:39 +0000
commitc9e36f4709ca2ed215699b9e29df817fff95e422 (patch)
tree3808ec88d024d5559e19daf3f083f1dbb66d0aac /package/mac80211/patches/571-ath9k_ani_fix_weak_sig.patch
parentb755998cd7d06275d2f98be337ed66de72f349c4 (diff)
downloadupstream-c9e36f4709ca2ed215699b9e29df817fff95e422.tar.gz
upstream-c9e36f4709ca2ed215699b9e29df817fff95e422.tar.bz2
upstream-c9e36f4709ca2ed215699b9e29df817fff95e422.zip
ath9k: fix ANI weak signal detection handling
SVN-Revision: 32045
Diffstat (limited to 'package/mac80211/patches/571-ath9k_ani_fix_weak_sig.patch')
-rw-r--r--package/mac80211/patches/571-ath9k_ani_fix_weak_sig.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/package/mac80211/patches/571-ath9k_ani_fix_weak_sig.patch b/package/mac80211/patches/571-ath9k_ani_fix_weak_sig.patch
new file mode 100644
index 0000000000..bfe0f0b46f
--- /dev/null
+++ b/package/mac80211/patches/571-ath9k_ani_fix_weak_sig.patch
@@ -0,0 +1,30 @@
+--- a/drivers/net/wireless/ath/ath9k/ani.c
++++ b/drivers/net/wireless/ath/ath9k/ani.c
+@@ -265,6 +265,7 @@ static void ath9k_hw_set_ofdm_nil(struct
+ struct ath_common *common = ath9k_hw_common(ah);
+ const struct ani_ofdm_level_entry *entry_ofdm;
+ const struct ani_cck_level_entry *entry_cck;
++ bool weak_sig;
+
+ ath_dbg(common, ANI, "**** ofdmlevel %d=>%d, rssi=%d[lo=%d hi=%d]\n",
+ aniState->ofdmNoiseImmunityLevel,
+@@ -290,13 +291,15 @@ static void ath9k_hw_set_ofdm_nil(struct
+ ATH9K_ANI_FIRSTEP_LEVEL,
+ entry_ofdm->fir_step_level);
+
+- if (BEACON_RSSI(ah) >= aniState->rssiThrHigh &&
+- (!aniState->ofdmWeakSigDetectOff !=
+- entry_ofdm->ofdm_weak_signal_on)) {
++ weak_sig = entry_ofdm->ofdm_weak_signal_on;
++ if (ah->opmode == NL80211_IFTYPE_STATION &&
++ BEACON_RSSI(ah) >= aniState->rssiThrHigh)
++ weak_sig = true;
++
++ if (!aniState->ofdmWeakSigDetectOff != weak_sig)
+ ath9k_hw_ani_control(ah,
+ ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
+ entry_ofdm->ofdm_weak_signal_on);
+- }
+ }
+
+ static void ath9k_hw_ani_ofdm_err_trigger(struct ath_hw *ah)