aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-06-27 02:15:25 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-06-27 02:15:25 +0000
commitd4c6868027273aee151dcc201cea4aba2ac172d0 (patch)
tree93ae32d9543f6263c694d6bfbbcbc769c8ce37d3
parent1e884c092331cf9df113b8d479f2d7fe4c467b42 (diff)
downloadupstream-d4c6868027273aee151dcc201cea4aba2ac172d0.tar.gz
upstream-d4c6868027273aee151dcc201cea4aba2ac172d0.tar.bz2
upstream-d4c6868027273aee151dcc201cea4aba2ac172d0.zip
ath9k: more ani fixes
SVN-Revision: 32510
-rw-r--r--package/mac80211/patches/562-ath9k_reduce_ani_interval.patch11
-rw-r--r--package/mac80211/patches/563-ath9k_enable_ar9340_ani.patch13
-rw-r--r--package/mac80211/patches/564-ath9k_fix_ani_update.patch59
3 files changed, 83 insertions, 0 deletions
diff --git a/package/mac80211/patches/562-ath9k_reduce_ani_interval.patch b/package/mac80211/patches/562-ath9k_reduce_ani_interval.patch
new file mode 100644
index 0000000000..e2a0d124a3
--- /dev/null
+++ b/package/mac80211/patches/562-ath9k_reduce_ani_interval.patch
@@ -0,0 +1,11 @@
+--- a/drivers/net/wireless/ath/ath9k/ani.h
++++ b/drivers/net/wireless/ath/ath9k/ani.h
+@@ -51,7 +51,7 @@
+ #define ATH9K_ANI_PERIOD 300
+
+ /* in ms */
+-#define ATH9K_ANI_POLLINTERVAL 1000
++#define ATH9K_ANI_POLLINTERVAL 100
+
+ #define HAL_NOISE_IMMUNE_MAX 4
+ #define HAL_SPUR_IMMUNE_MAX 7
diff --git a/package/mac80211/patches/563-ath9k_enable_ar9340_ani.patch b/package/mac80211/patches/563-ath9k_enable_ar9340_ani.patch
new file mode 100644
index 0000000000..7503634776
--- /dev/null
+++ b/package/mac80211/patches/563-ath9k_enable_ar9340_ani.patch
@@ -0,0 +1,13 @@
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -676,10 +676,6 @@ static int __ath9k_hw_init(struct ath_hw
+ if (!AR_SREV_9300_20_OR_LATER(ah))
+ ah->ani_function &= ~ATH9K_ANI_MRC_CCK;
+
+- /* disable ANI for 9340 */
+- if (AR_SREV_9340(ah))
+- ah->config.enable_ani = false;
+-
+ ath9k_hw_init_mode_regs(ah);
+
+ if (!ah->is_pciexpress)
diff --git a/package/mac80211/patches/564-ath9k_fix_ani_update.patch b/package/mac80211/patches/564-ath9k_fix_ani_update.patch
new file mode 100644
index 0000000000..91ba67db7b
--- /dev/null
+++ b/package/mac80211/patches/564-ath9k_fix_ani_update.patch
@@ -0,0 +1,59 @@
+--- a/drivers/net/wireless/ath/ath9k/ani.c
++++ b/drivers/net/wireless/ath/ath9k/ani.c
+@@ -153,9 +153,7 @@ static void ath9k_hw_set_ofdm_nil(struct
+ immunityLevel, BEACON_RSSI(ah),
+ aniState->rssiThrLow, aniState->rssiThrHigh);
+
+- if (aniState->update_ani)
+- aniState->ofdmNoiseImmunityLevel = immunityLevel;
+-
++ aniState->ofdmNoiseImmunityLevel = immunityLevel;
+ entry_ofdm = &ofdm_level_table[aniState->ofdmNoiseImmunityLevel];
+ entry_cck = &cck_level_table[aniState->cckNoiseImmunityLevel];
+
+@@ -222,9 +220,7 @@ static void ath9k_hw_set_cck_nil(struct
+ immunityLevel > ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI)
+ immunityLevel = ATH9K_ANI_CCK_MAX_LEVEL_LOW_RSSI;
+
+- if (aniState->update_ani)
+- aniState->cckNoiseImmunityLevel = immunityLevel;
+-
++ aniState->cckNoiseImmunityLevel = immunityLevel;
+ entry_ofdm = &ofdm_level_table[aniState->ofdmNoiseImmunityLevel];
+ entry_cck = &cck_level_table[aniState->cckNoiseImmunityLevel];
+
+@@ -338,7 +334,6 @@ void ath9k_ani_reset(struct ath_hw *ah,
+ aniState->ofdmNoiseImmunityLevel,
+ aniState->cckNoiseImmunityLevel);
+
+- aniState->update_ani = false;
+ ofdm_nil = ATH9K_ANI_OFDM_DEF_LEVEL;
+ cck_nil = ATH9K_ANI_CCK_DEF_LEVEL;
+ }
+@@ -354,8 +349,6 @@ void ath9k_ani_reset(struct ath_hw *ah,
+ is_scanning,
+ aniState->ofdmNoiseImmunityLevel,
+ aniState->cckNoiseImmunityLevel);
+-
+- aniState->update_ani = true;
+ }
+ ath9k_hw_set_ofdm_nil(ah, ofdm_nil);
+ ath9k_hw_set_cck_nil(ah, cck_nil);
+@@ -538,7 +531,6 @@ void ath9k_hw_ani_init(struct ath_hw *ah
+ ani->ofdmWeakSigDetect = ATH9K_ANI_USE_OFDM_WEAK_SIG;
+ ani->cckNoiseImmunityLevel = ATH9K_ANI_CCK_DEF_LEVEL;
+ ani->ofdmNoiseImmunityLevel = ATH9K_ANI_OFDM_DEF_LEVEL;
+- ani->update_ani = false;
+ }
+
+ /*
+--- a/drivers/net/wireless/ath/ath9k/ani.h
++++ b/drivers/net/wireless/ath/ath9k/ani.h
+@@ -116,7 +116,6 @@ struct ar5416AniState {
+ u8 firstepLevel;
+ u8 ofdmWeakSigDetect;
+ u8 cckWeakSigThreshold;
+- bool update_ani;
+ u32 listenTime;
+ int32_t rssiThrLow;
+ int32_t rssiThrHigh;