From e8ffd122d41d8487663aa290806851f7353e5ff3 Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 10 Mar 2014 18:58:52 +0000 Subject: [PATCH 1/1] ath9k: add another ANI fix for older chipsets Signed-off-by: Felix Fietkau git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39865 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../kernel/mac80211/patches/300-pending_work.patch | 33 +++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/package/kernel/mac80211/patches/300-pending_work.patch b/package/kernel/mac80211/patches/300-pending_work.patch index 15c04cd6aa..a74bd2b3eb 100644 --- a/package/kernel/mac80211/patches/300-pending_work.patch +++ b/package/kernel/mac80211/patches/300-pending_work.patch @@ -1,3 +1,16 @@ +commit c977493766310a825f406836636ffd66e1447783 +Author: Felix Fietkau +Date: Mon Mar 10 19:52:56 2014 +0100 + + ath9k_hw: remove ANI function restrictions for AP mode + + The primary purpose of this piece of code was to selectively disable + OFDM weak signal detection. The checks for this are elsewhere, and an + earlier commit relaxed the restrictions for older chips, which are more + sensitive to interference. + + Signed-off-by: Felix Fietkau + commit 8d804f1af11e4e058b1e8453327777d73a585cb8 Author: Felix Fietkau Date: Sun Mar 9 11:25:43 2014 +0100 @@ -3870,7 +3883,25 @@ Date: Thu Jan 23 20:06:34 2014 +0100 if (aniState->ofdmNoiseImmunityLevel >= ATH9K_ANI_OFDM_DEF_LEVEL) { ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH; -@@ -483,10 +493,17 @@ void ath9k_hw_ani_init(struct ath_hw *ah +@@ -308,17 +318,6 @@ void ath9k_ani_reset(struct ath_hw *ah, + BUG_ON(aniState == NULL); + ah->stats.ast_ani_reset++; + +- /* only allow a subset of functions in AP mode */ +- if (ah->opmode == NL80211_IFTYPE_AP) { +- if (IS_CHAN_2GHZ(chan)) { +- ah->ani_function = (ATH9K_ANI_SPUR_IMMUNITY_LEVEL | +- ATH9K_ANI_FIRSTEP_LEVEL); +- if (AR_SREV_9300_20_OR_LATER(ah)) +- ah->ani_function |= ATH9K_ANI_MRC_CCK; +- } else +- ah->ani_function = 0; +- } +- + ofdm_nil = max_t(int, ATH9K_ANI_OFDM_DEF_LEVEL, + aniState->ofdmNoiseImmunityLevel); + cck_nil = max_t(int, ATH9K_ANI_CCK_DEF_LEVEL, +@@ -483,10 +482,17 @@ void ath9k_hw_ani_init(struct ath_hw *ah ath_dbg(common, ANI, "Initialize ANI\n"); -- 2.11.0