From: Felix Fietkau Date: Wed, 27 Jun 2012 02:15:25 +0000 (+0000) Subject: ath9k: more ani fixes X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=d4c6868027273aee151dcc201cea4aba2ac172d0;p=openwrt%2Fstaging%2Fyousong.git ath9k: more ani fixes SVN-Revision: 32510 --- 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;