-+ ath9k_hw_set_ofdm_nil(ah, ofdm_nil);
-+ ath9k_hw_set_cck_nil(ah, cck_nil);
-
- /*
- * enable phy counters if hw supports or if not, enable phy
-@@ -627,9 +378,6 @@ static bool ath9k_hw_ani_read_counters(s
- {
- struct ath_common *common = ath9k_hw_common(ah);
- struct ar5416AniState *aniState = &ah->curchan->ani;
-- u32 ofdm_base = 0;
-- u32 cck_base = 0;
-- u32 ofdmPhyErrCnt, cckPhyErrCnt;
- u32 phyCnt1, phyCnt2;
- int32_t listenTime;
-
-@@ -642,11 +390,6 @@ static bool ath9k_hw_ani_read_counters(s
- return false;
- }
-
-- if (!use_new_ani(ah)) {
-- ofdm_base = AR_PHY_COUNTMAX - ah->config.ofdm_trig_high;
-- cck_base = AR_PHY_COUNTMAX - ah->config.cck_trig_high;
-- }
--
- aniState->listenTime += listenTime;
-
- ath9k_hw_update_mibstats(ah, &ah->ah_mibStats);
-@@ -654,35 +397,12 @@ static bool ath9k_hw_ani_read_counters(s
- phyCnt1 = REG_READ(ah, AR_PHY_ERR_1);
- phyCnt2 = REG_READ(ah, AR_PHY_ERR_2);
-
-- if (!use_new_ani(ah) && (phyCnt1 < ofdm_base || phyCnt2 < cck_base)) {
-- if (phyCnt1 < ofdm_base) {
-- ath_dbg(common, ANI,
-- "phyCnt1 0x%x, resetting counter value to 0x%x\n",
-- phyCnt1, ofdm_base);
-- REG_WRITE(ah, AR_PHY_ERR_1, ofdm_base);
-- REG_WRITE(ah, AR_PHY_ERR_MASK_1,
-- AR_PHY_ERR_OFDM_TIMING);
-- }
-- if (phyCnt2 < cck_base) {
-- ath_dbg(common, ANI,
-- "phyCnt2 0x%x, resetting counter value to 0x%x\n",
-- phyCnt2, cck_base);
-- REG_WRITE(ah, AR_PHY_ERR_2, cck_base);
-- REG_WRITE(ah, AR_PHY_ERR_MASK_2,
-- AR_PHY_ERR_CCK_TIMING);
-- }
-- return false;
-- }
-+ ah->stats.ast_ani_ofdmerrs += phyCnt1 - aniState->ofdmPhyErrCount;
-+ aniState->ofdmPhyErrCount = phyCnt1;
-+
-+ ah->stats.ast_ani_cckerrs += phyCnt2 - aniState->cckPhyErrCount;
-+ aniState->cckPhyErrCount = phyCnt2;
-
-- ofdmPhyErrCnt = phyCnt1 - ofdm_base;
-- ah->stats.ast_ani_ofdmerrs +=
-- ofdmPhyErrCnt - aniState->ofdmPhyErrCount;
-- aniState->ofdmPhyErrCount = ofdmPhyErrCnt;
--
-- cckPhyErrCnt = phyCnt2 - cck_base;
-- ah->stats.ast_ani_cckerrs +=
-- cckPhyErrCnt - aniState->cckPhyErrCount;
-- aniState->cckPhyErrCount = cckPhyErrCnt;
- return true;
- }
-
-@@ -716,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) {
-@@ -778,49 +487,6 @@ void ath9k_hw_disable_mib_counters(struc
- }
- EXPORT_SYMBOL(ath9k_hw_disable_mib_counters);
-
--/*
-- * Process a MIB interrupt. We may potentially be invoked because
-- * any of the MIB counters overflow/trigger so don't assume we're
-- * here because a PHY error counter triggered.
-- */
--void ath9k_hw_proc_mib_event(struct ath_hw *ah)
--{
-- u32 phyCnt1, phyCnt2;
--
-- /* Reset these counters regardless */
-- REG_WRITE(ah, AR_FILT_OFDM, 0);
-- REG_WRITE(ah, AR_FILT_CCK, 0);
-- if (!(REG_READ(ah, AR_SLP_MIB_CTRL) & AR_SLP_MIB_PENDING))
-- REG_WRITE(ah, AR_SLP_MIB_CTRL, AR_SLP_MIB_CLEAR);
--
-- /* Clear the mib counters and save them in the stats */
-- ath9k_hw_update_mibstats(ah, &ah->ah_mibStats);
--
-- if (!DO_ANI(ah)) {
-- /*
-- * We must always clear the interrupt cause by
-- * resetting the phy error regs.
-- */
-- REG_WRITE(ah, AR_PHY_ERR_1, 0);
-- REG_WRITE(ah, AR_PHY_ERR_2, 0);
-- return;
-- }
--
-- /* NB: these are not reset-on-read */
-- phyCnt1 = REG_READ(ah, AR_PHY_ERR_1);
-- phyCnt2 = REG_READ(ah, AR_PHY_ERR_2);
-- if (((phyCnt1 & AR_MIBCNT_INTRMASK) == AR_MIBCNT_INTRMASK) ||
-- ((phyCnt2 & AR_MIBCNT_INTRMASK) == AR_MIBCNT_INTRMASK)) {
--
-- if (!use_new_ani(ah))
-- ath9k_hw_ani_read_counters(ah);
--
-- /* NB: always restart to insure the h/w counters are reset */
-- ath9k_ani_restart(ah);
-- }
--}
--EXPORT_SYMBOL(ath9k_hw_proc_mib_event);
--
- void ath9k_hw_ani_setup(struct ath_hw *ah)
- {
- int i;
-@@ -845,50 +511,31 @@ void ath9k_hw_ani_init(struct ath_hw *ah
-
- ath_dbg(common, ANI, "Initialize ANI\n");
-
-- if (use_new_ani(ah)) {
-- ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_NEW;
-- ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_NEW;
-+ ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH;
-+ ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW;
-
-- ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH_NEW;
-- ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW_NEW;
-- } else {
-- ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_OLD;
-- ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_OLD;
--
-- ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH_OLD;
-- ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW_OLD;
-- }
-+ ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH;
-+ ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW;
-
- for (i = 0; i < ARRAY_SIZE(ah->channels); i++) {
- struct ath9k_channel *chan = &ah->channels[i];
- struct ar5416AniState *ani = &chan->ani;
-
-- if (use_new_ani(ah)) {
-- ani->spurImmunityLevel =
-- ATH9K_ANI_SPUR_IMMUNE_LVL_NEW;
-+ ani->spurImmunityLevel = ATH9K_ANI_SPUR_IMMUNE_LVL;
-
-- ani->firstepLevel = ATH9K_ANI_FIRSTEP_LVL_NEW;
-+ ani->firstepLevel = ATH9K_ANI_FIRSTEP_LVL;
-
-- if (AR_SREV_9300_20_OR_LATER(ah))
-- ani->mrcCCKOff =
-- !ATH9K_ANI_ENABLE_MRC_CCK;
-- else
-- ani->mrcCCKOff = true;
--
-- ani->ofdmsTurn = true;
-- } else {
-- ani->spurImmunityLevel =
-- ATH9K_ANI_SPUR_IMMUNE_LVL_OLD;
-- ani->firstepLevel = ATH9K_ANI_FIRSTEP_LVL_OLD;
-+ if (AR_SREV_9300_20_OR_LATER(ah))
-+ ani->mrcCCKOff =
-+ !ATH9K_ANI_ENABLE_MRC_CCK;
-+ else
-+ ani->mrcCCKOff = true;
-
-- ani->cckWeakSigThreshold =
-- ATH9K_ANI_CCK_WEAK_SIG_THR;
-- }
-+ ani->ofdmsTurn = true;
-
- ani->rssiThrHigh = ATH9K_ANI_RSSI_THR_HIGH;
- ani->rssiThrLow = ATH9K_ANI_RSSI_THR_LOW;
-- ani->ofdmWeakSigDetectOff =
-- !ATH9K_ANI_USE_OFDM_WEAK_SIG;
-+ 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;
-@@ -898,13 +545,8 @@ void ath9k_hw_ani_init(struct ath_hw *ah
- * since we expect some ongoing maintenance on the tables, let's sanity
- * check here default level should not modify INI setting.
- */
-- if (use_new_ani(ah)) {
-- ah->aniperiod = ATH9K_ANI_PERIOD_NEW;
-- ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL_NEW;
-- } else {
-- ah->aniperiod = ATH9K_ANI_PERIOD_OLD;
-- ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL_OLD;
-- }
-+ ah->aniperiod = ATH9K_ANI_PERIOD;
-+ ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL;
-
- if (ah->config.enable_ani)
- ah->proc_phyerr |= HAL_PROCESS_ANI;
---- a/drivers/net/wireless/ath/ath9k/ani.h
-+++ b/drivers/net/wireless/ath/ath9k/ani.h
-@@ -24,42 +24,34 @@
- #define BEACON_RSSI(ahp) (ahp->stats.avgbrssi)
-
- /* units are errors per second */
--#define ATH9K_ANI_OFDM_TRIG_HIGH_OLD 500
--#define ATH9K_ANI_OFDM_TRIG_HIGH_NEW 3500
-+#define ATH9K_ANI_OFDM_TRIG_HIGH 3500
- #define ATH9K_ANI_OFDM_TRIG_HIGH_BELOW_INI 1000
-
- /* units are errors per second */
--#define ATH9K_ANI_OFDM_TRIG_LOW_OLD 200
--#define ATH9K_ANI_OFDM_TRIG_LOW_NEW 400
-+#define ATH9K_ANI_OFDM_TRIG_LOW 400
- #define ATH9K_ANI_OFDM_TRIG_LOW_ABOVE_INI 900
-
- /* units are errors per second */
--#define ATH9K_ANI_CCK_TRIG_HIGH_OLD 200
--#define ATH9K_ANI_CCK_TRIG_HIGH_NEW 600
-+#define ATH9K_ANI_CCK_TRIG_HIGH 600
-
- /* units are errors per second */
--#define ATH9K_ANI_CCK_TRIG_LOW_OLD 100
--#define ATH9K_ANI_CCK_TRIG_LOW_NEW 300
-+#define ATH9K_ANI_CCK_TRIG_LOW 300
-
- #define ATH9K_ANI_NOISE_IMMUNE_LVL 4
- #define ATH9K_ANI_USE_OFDM_WEAK_SIG true
- #define ATH9K_ANI_CCK_WEAK_SIG_THR false
-
--#define ATH9K_ANI_SPUR_IMMUNE_LVL_OLD 7
--#define ATH9K_ANI_SPUR_IMMUNE_LVL_NEW 3
-+#define ATH9K_ANI_SPUR_IMMUNE_LVL 3
-
--#define ATH9K_ANI_FIRSTEP_LVL_OLD 0
--#define ATH9K_ANI_FIRSTEP_LVL_NEW 2
-+#define ATH9K_ANI_FIRSTEP_LVL 2
-
- #define ATH9K_ANI_RSSI_THR_HIGH 40
- #define ATH9K_ANI_RSSI_THR_LOW 7
-
--#define ATH9K_ANI_PERIOD_OLD 100
--#define ATH9K_ANI_PERIOD_NEW 300
-+#define ATH9K_ANI_PERIOD 300
-
- /* in ms */
--#define ATH9K_ANI_POLLINTERVAL_OLD 100
--#define ATH9K_ANI_POLLINTERVAL_NEW 1000
-+#define ATH9K_ANI_POLLINTERVAL 1000
-
- #define HAL_NOISE_IMMUNE_MAX 4
- #define HAL_SPUR_IMMUNE_MAX 7
-@@ -122,13 +114,12 @@ struct ar5416AniState {
- u8 mrcCCKOff;
- u8 spurImmunityLevel;
- u8 firstepLevel;
-- u8 ofdmWeakSigDetectOff;
-+ u8 ofdmWeakSigDetect;
- u8 cckWeakSigThreshold;
- bool update_ani;
- u32 listenTime;
- int32_t rssiThrLow;
- int32_t rssiThrHigh;
-- u32 noiseFloor;
- u32 ofdmPhyErrCount;
- u32 cckPhyErrCount;
- int16_t pktRssi[2];
---- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-@@ -995,141 +995,6 @@ static u32 ar5008_hw_compute_pll_control
- return pll;
- }
-
--static bool ar5008_hw_ani_control_old(struct ath_hw *ah,
-- enum ath9k_ani_cmd cmd,
-- int param)
--{
-- struct ar5416AniState *aniState = &ah->curchan->ani;
-- struct ath_common *common = ath9k_hw_common(ah);
--
-- switch (cmd & ah->ani_function) {
-- case ATH9K_ANI_NOISE_IMMUNITY_LEVEL:{
-- u32 level = param;
--
-- if (level >= ARRAY_SIZE(ah->totalSizeDesired)) {
-- ath_dbg(common, ANI, "level out of range (%u > %zu)\n",
-- level, ARRAY_SIZE(ah->totalSizeDesired));
-- return false;
-- }
--
-- REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ,
-- AR_PHY_DESIRED_SZ_TOT_DES,
-- ah->totalSizeDesired[level]);
-- REG_RMW_FIELD(ah, AR_PHY_AGC_CTL1,
-- AR_PHY_AGC_CTL1_COARSE_LOW,
-- ah->coarse_low[level]);
-- REG_RMW_FIELD(ah, AR_PHY_AGC_CTL1,
-- AR_PHY_AGC_CTL1_COARSE_HIGH,
-- ah->coarse_high[level]);
-- REG_RMW_FIELD(ah, AR_PHY_FIND_SIG,
-- AR_PHY_FIND_SIG_FIRPWR,
-- ah->firpwr[level]);
--
-- if (level > aniState->noiseImmunityLevel)
-- ah->stats.ast_ani_niup++;
-- else if (level < aniState->noiseImmunityLevel)
-- ah->stats.ast_ani_nidown++;
-- aniState->noiseImmunityLevel = level;
-- break;
-- }
-- case ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION:{
-- u32 on = param ? 1 : 0;
--
-- if (on)
-- REG_SET_BIT(ah, AR_PHY_SFCORR_LOW,
-- AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
-- else
-- REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
-- AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
--
-- if (!on != aniState->ofdmWeakSigDetectOff) {
-- if (on)
-- ah->stats.ast_ani_ofdmon++;
-- else
-- ah->stats.ast_ani_ofdmoff++;
-- aniState->ofdmWeakSigDetectOff = !on;
-- }
-- break;
-- }
-- case ATH9K_ANI_CCK_WEAK_SIGNAL_THR:{
-- static const int weakSigThrCck[] = { 8, 6 };
-- u32 high = param ? 1 : 0;
--
-- REG_RMW_FIELD(ah, AR_PHY_CCK_DETECT,
-- AR_PHY_CCK_DETECT_WEAK_SIG_THR_CCK,
-- weakSigThrCck[high]);
-- if (high != aniState->cckWeakSigThreshold) {
-- if (high)
-- ah->stats.ast_ani_cckhigh++;
-- else
-- ah->stats.ast_ani_ccklow++;
-- aniState->cckWeakSigThreshold = high;
-- }
-- break;
-- }
-- case ATH9K_ANI_FIRSTEP_LEVEL:{
-- static const int firstep[] = { 0, 4, 8 };
-- u32 level = param;
--
-- if (level >= ARRAY_SIZE(firstep)) {
-- ath_dbg(common, ANI, "level out of range (%u > %zu)\n",
-- level, ARRAY_SIZE(firstep));
-- return false;
-- }
-- REG_RMW_FIELD(ah, AR_PHY_FIND_SIG,
-- AR_PHY_FIND_SIG_FIRSTEP,
-- firstep[level]);
-- if (level > aniState->firstepLevel)
-- ah->stats.ast_ani_stepup++;
-- else if (level < aniState->firstepLevel)
-- ah->stats.ast_ani_stepdown++;
-- aniState->firstepLevel = level;
-- break;
-- }
-- case ATH9K_ANI_SPUR_IMMUNITY_LEVEL:{
-- static const int cycpwrThr1[] = { 2, 4, 6, 8, 10, 12, 14, 16 };
-- u32 level = param;
--
-- if (level >= ARRAY_SIZE(cycpwrThr1)) {
-- ath_dbg(common, ANI, "level out of range (%u > %zu)\n",
-- level, ARRAY_SIZE(cycpwrThr1));
-- return false;
-- }
-- REG_RMW_FIELD(ah, AR_PHY_TIMING5,
-- AR_PHY_TIMING5_CYCPWR_THR1,
-- cycpwrThr1[level]);
-- if (level > aniState->spurImmunityLevel)
-- ah->stats.ast_ani_spurup++;
-- else if (level < aniState->spurImmunityLevel)
-- ah->stats.ast_ani_spurdown++;
-- aniState->spurImmunityLevel = level;
-- break;
-- }
-- case ATH9K_ANI_PRESENT:
-- break;
-- default:
-- ath_dbg(common, ANI, "invalid cmd %u\n", cmd);
-- return false;
-- }
--
-- ath_dbg(common, ANI, "ANI parameters:\n");
-- ath_dbg(common, ANI,
-- "noiseImmunityLevel=%d, spurImmunityLevel=%d, ofdmWeakSigDetectOff=%d\n",
-- aniState->noiseImmunityLevel,
-- aniState->spurImmunityLevel,
-- !aniState->ofdmWeakSigDetectOff);
-- ath_dbg(common, ANI,
-- "cckWeakSigThreshold=%d, firstepLevel=%d, listenTime=%d\n",
-- aniState->cckWeakSigThreshold,
-- aniState->firstepLevel,
-- aniState->listenTime);
-- ath_dbg(common, ANI, "ofdmPhyErrCount=%d, cckPhyErrCount=%d\n\n",
-- aniState->ofdmPhyErrCount,
-- aniState->cckPhyErrCount);
--
-- return true;
--}
--
- static bool ar5008_hw_ani_control_new(struct ath_hw *ah,
- enum ath9k_ani_cmd cmd,
- int param)
-@@ -1206,18 +1071,18 @@ static bool ar5008_hw_ani_control_new(st
- REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
- AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
-
-- if (!on != aniState->ofdmWeakSigDetectOff) {
-+ if (on != aniState->ofdmWeakSigDetect) {
- ath_dbg(common, ANI,
- "** ch %d: ofdm weak signal: %s=>%s\n",
- chan->channel,
-- !aniState->ofdmWeakSigDetectOff ?
-+ aniState->ofdmWeakSigDetect ?
- "on" : "off",
- on ? "on" : "off");
- if (on)
- ah->stats.ast_ani_ofdmon++;
- else
- ah->stats.ast_ani_ofdmoff++;
-- aniState->ofdmWeakSigDetectOff = !on;
-+ aniState->ofdmWeakSigDetect = on;
- }
- break;
- }
-@@ -1236,7 +1101,7 @@ static bool ar5008_hw_ani_control_new(st
- * from INI file & cap value
- */
- value = firstep_table[level] -
-- firstep_table[ATH9K_ANI_FIRSTEP_LVL_NEW] +
-+ firstep_table[ATH9K_ANI_FIRSTEP_LVL] +
- aniState->iniDef.firstep;
- if (value < ATH9K_SIG_FIRSTEP_SETTING_MIN)
- value = ATH9K_SIG_FIRSTEP_SETTING_MIN;
-@@ -1251,7 +1116,7 @@ static bool ar5008_hw_ani_control_new(st
- * from INI file & cap value
- */
- value2 = firstep_table[level] -
-- firstep_table[ATH9K_ANI_FIRSTEP_LVL_NEW] +
-+ firstep_table[ATH9K_ANI_FIRSTEP_LVL] +
- aniState->iniDef.firstepLow;
- if (value2 < ATH9K_SIG_FIRSTEP_SETTING_MIN)
- value2 = ATH9K_SIG_FIRSTEP_SETTING_MIN;
-@@ -1267,7 +1132,7 @@ static bool ar5008_hw_ani_control_new(st
- chan->channel,
- aniState->firstepLevel,
- level,
-- ATH9K_ANI_FIRSTEP_LVL_NEW,
-+ ATH9K_ANI_FIRSTEP_LVL,
- value,
- aniState->iniDef.firstep);
- ath_dbg(common, ANI,
-@@ -1275,7 +1140,7 @@ static bool ar5008_hw_ani_control_new(st
- chan->channel,
- aniState->firstepLevel,
- level,
-- ATH9K_ANI_FIRSTEP_LVL_NEW,
-+ ATH9K_ANI_FIRSTEP_LVL,
- value2,
- aniState->iniDef.firstepLow);
- if (level > aniState->firstepLevel)
-@@ -1300,7 +1165,7 @@ static bool ar5008_hw_ani_control_new(st
- * from INI file & cap value
- */
- value = cycpwrThr1_table[level] -
-- cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL_NEW] +
-+ cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL] +
- aniState->iniDef.cycpwrThr1;
- if (value < ATH9K_SIG_SPUR_IMM_SETTING_MIN)
- value = ATH9K_SIG_SPUR_IMM_SETTING_MIN;
-@@ -1316,7 +1181,7 @@ static bool ar5008_hw_ani_control_new(st
- * from INI file & cap value
- */
- value2 = cycpwrThr1_table[level] -
-- cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL_NEW] +
-+ cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL] +
- aniState->iniDef.cycpwrThr1Ext;
- if (value2 < ATH9K_SIG_SPUR_IMM_SETTING_MIN)
- value2 = ATH9K_SIG_SPUR_IMM_SETTING_MIN;
-@@ -1331,7 +1196,7 @@ static bool ar5008_hw_ani_control_new(st
- chan->channel,
- aniState->spurImmunityLevel,
- level,
-- ATH9K_ANI_SPUR_IMMUNE_LVL_NEW,
-+ ATH9K_ANI_SPUR_IMMUNE_LVL,
- value,
- aniState->iniDef.cycpwrThr1);
- ath_dbg(common, ANI,
-@@ -1339,7 +1204,7 @@ static bool ar5008_hw_ani_control_new(st
- chan->channel,
- aniState->spurImmunityLevel,
- level,
-- ATH9K_ANI_SPUR_IMMUNE_LVL_NEW,
-+ ATH9K_ANI_SPUR_IMMUNE_LVL,
- value2,
- aniState->iniDef.cycpwrThr1Ext);
- if (level > aniState->spurImmunityLevel)
-@@ -1367,7 +1232,7 @@ static bool ar5008_hw_ani_control_new(st
- ath_dbg(common, ANI,
- "ANI parameters: SI=%d, ofdmWS=%s FS=%d MRCcck=%s listenTime=%d ofdmErrs=%d cckErrs=%d\n",
- aniState->spurImmunityLevel,
-- !aniState->ofdmWeakSigDetectOff ? "on" : "off",
-+ aniState->ofdmWeakSigDetect ? "on" : "off",
- aniState->firstepLevel,
- !aniState->mrcCCKOff ? "on" : "off",
- aniState->listenTime,
-@@ -1454,9 +1319,9 @@ static void ar5008_hw_ani_cache_ini_regs
- AR_PHY_EXT_TIMING5_CYCPWR_THR1);
-
- /* these levels just got reset to defaults by the INI */
-- aniState->spurImmunityLevel = ATH9K_ANI_SPUR_IMMUNE_LVL_NEW;
-- aniState->firstepLevel = ATH9K_ANI_FIRSTEP_LVL_NEW;
-- aniState->ofdmWeakSigDetectOff = !ATH9K_ANI_USE_OFDM_WEAK_SIG;
-+ aniState->spurImmunityLevel = ATH9K_ANI_SPUR_IMMUNE_LVL;
-+ aniState->firstepLevel = ATH9K_ANI_FIRSTEP_LVL;
-+ aniState->ofdmWeakSigDetect = ATH9K_ANI_USE_OFDM_WEAK_SIG;
- aniState->mrcCCKOff = true; /* not available on pre AR9003 */
- }
-
-@@ -1545,11 +1410,8 @@ void ar5008_hw_attach_phy_ops(struct ath
- priv_ops->do_getnf = ar5008_hw_do_getnf;
- priv_ops->set_radar_params = ar5008_hw_set_radar_params;
-
-- if (modparam_force_new_ani) {
-- priv_ops->ani_control = ar5008_hw_ani_control_new;
-- priv_ops->ani_cache_ini_regs = ar5008_hw_ani_cache_ini_regs;
-- } else
-- priv_ops->ani_control = ar5008_hw_ani_control_old;
-+ priv_ops->ani_control = ar5008_hw_ani_control_new;
-+ priv_ops->ani_cache_ini_regs = ar5008_hw_ani_cache_ini_regs;
-
- if (AR_SREV_9100(ah) || AR_SREV_9160_10_OR_LATER(ah))
- priv_ops->compute_pll_control = ar9160_hw_compute_pll_control;
---- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
-@@ -21,10 +21,6 @@
- #include "ar9002_initvals.h"
- #include "ar9002_phy.h"
-
--int modparam_force_new_ani;
--module_param_named(force_new_ani, modparam_force_new_ani, int, 0444);
--MODULE_PARM_DESC(force_new_ani, "Force new ANI for AR5008, AR9001, AR9002");
--
- /* General hardware code for the A5008/AR9001/AR9002 hadware families */
-
- static void ar9002_hw_init_mode_regs(struct ath_hw *ah)
---- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
-@@ -825,18 +825,18 @@ static bool ar9003_hw_ani_control(struct
- REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
- AR_PHY_SFCORR_LOW_USE_SELF_CORR_LOW);
-
-- if (!on != aniState->ofdmWeakSigDetectOff) {
-+ if (on != aniState->ofdmWeakSigDetect) {
- ath_dbg(common, ANI,
- "** ch %d: ofdm weak signal: %s=>%s\n",
- chan->channel,
-- !aniState->ofdmWeakSigDetectOff ?
-+ aniState->ofdmWeakSigDetect ?
- "on" : "off",
- on ? "on" : "off");
- if (on)
- ah->stats.ast_ani_ofdmon++;
- else
- ah->stats.ast_ani_ofdmoff++;
-- aniState->ofdmWeakSigDetectOff = !on;
-+ aniState->ofdmWeakSigDetect = on;
- }
- break;
- }
-@@ -855,7 +855,7 @@ static bool ar9003_hw_ani_control(struct
- * from INI file & cap value
- */
- value = firstep_table[level] -
-- firstep_table[ATH9K_ANI_FIRSTEP_LVL_NEW] +
-+ firstep_table[ATH9K_ANI_FIRSTEP_LVL] +
- aniState->iniDef.firstep;
- if (value < ATH9K_SIG_FIRSTEP_SETTING_MIN)
- value = ATH9K_SIG_FIRSTEP_SETTING_MIN;
-@@ -870,7 +870,7 @@ static bool ar9003_hw_ani_control(struct
- * from INI file & cap value
- */
- value2 = firstep_table[level] -
-- firstep_table[ATH9K_ANI_FIRSTEP_LVL_NEW] +
-+ firstep_table[ATH9K_ANI_FIRSTEP_LVL] +
- aniState->iniDef.firstepLow;
- if (value2 < ATH9K_SIG_FIRSTEP_SETTING_MIN)
- value2 = ATH9K_SIG_FIRSTEP_SETTING_MIN;
-@@ -886,7 +886,7 @@ static bool ar9003_hw_ani_control(struct
- chan->channel,
- aniState->firstepLevel,
- level,
-- ATH9K_ANI_FIRSTEP_LVL_NEW,
-+ ATH9K_ANI_FIRSTEP_LVL,
- value,
- aniState->iniDef.firstep);
- ath_dbg(common, ANI,
-@@ -894,7 +894,7 @@ static bool ar9003_hw_ani_control(struct
- chan->channel,
- aniState->firstepLevel,
- level,
-- ATH9K_ANI_FIRSTEP_LVL_NEW,
-+ ATH9K_ANI_FIRSTEP_LVL,
- value2,
- aniState->iniDef.firstepLow);
- if (level > aniState->firstepLevel)
-@@ -919,7 +919,7 @@ static bool ar9003_hw_ani_control(struct
- * from INI file & cap value
- */
- value = cycpwrThr1_table[level] -
-- cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL_NEW] +
-+ cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL] +
- aniState->iniDef.cycpwrThr1;
- if (value < ATH9K_SIG_SPUR_IMM_SETTING_MIN)
- value = ATH9K_SIG_SPUR_IMM_SETTING_MIN;
-@@ -935,7 +935,7 @@ static bool ar9003_hw_ani_control(struct
- * from INI file & cap value
- */
- value2 = cycpwrThr1_table[level] -
-- cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL_NEW] +
-+ cycpwrThr1_table[ATH9K_ANI_SPUR_IMMUNE_LVL] +
- aniState->iniDef.cycpwrThr1Ext;
- if (value2 < ATH9K_SIG_SPUR_IMM_SETTING_MIN)
- value2 = ATH9K_SIG_SPUR_IMM_SETTING_MIN;
-@@ -950,7 +950,7 @@ static bool ar9003_hw_ani_control(struct
- chan->channel,
- aniState->spurImmunityLevel,
- level,
-- ATH9K_ANI_SPUR_IMMUNE_LVL_NEW,
-+ ATH9K_ANI_SPUR_IMMUNE_LVL,
- value,
- aniState->iniDef.cycpwrThr1);
- ath_dbg(common, ANI,
-@@ -958,7 +958,7 @@ static bool ar9003_hw_ani_control(struct
- chan->channel,
- aniState->spurImmunityLevel,
- level,
-- ATH9K_ANI_SPUR_IMMUNE_LVL_NEW,
-+ ATH9K_ANI_SPUR_IMMUNE_LVL,
- value2,
- aniState->iniDef.cycpwrThr1Ext);
- if (level > aniState->spurImmunityLevel)
-@@ -1002,7 +1002,7 @@ static bool ar9003_hw_ani_control(struct
- ath_dbg(common, ANI,
- "ANI parameters: SI=%d, ofdmWS=%s FS=%d MRCcck=%s listenTime=%d ofdmErrs=%d cckErrs=%d\n",
- aniState->spurImmunityLevel,
-- !aniState->ofdmWeakSigDetectOff ? "on" : "off",
-+ aniState->ofdmWeakSigDetect ? "on" : "off",
- aniState->firstepLevel,
- !aniState->mrcCCKOff ? "on" : "off",
- aniState->listenTime,
-@@ -1111,9 +1111,9 @@ static void ar9003_hw_ani_cache_ini_regs
- AR_PHY_EXT_CYCPWR_THR1);
-
- /* these levels just got reset to defaults by the INI */
-- aniState->spurImmunityLevel = ATH9K_ANI_SPUR_IMMUNE_LVL_NEW;
-- aniState->firstepLevel = ATH9K_ANI_FIRSTEP_LVL_NEW;
-- aniState->ofdmWeakSigDetectOff = !ATH9K_ANI_USE_OFDM_WEAK_SIG;
-+ aniState->spurImmunityLevel = ATH9K_ANI_SPUR_IMMUNE_LVL;
-+ aniState->firstepLevel = ATH9K_ANI_FIRSTEP_LVL;
-+ aniState->ofdmWeakSigDetect = ATH9K_ANI_USE_OFDM_WEAK_SIG;
- aniState->mrcCCKOff = !ATH9K_ANI_ENABLE_MRC_CCK;
- }
-
---- a/drivers/net/wireless/ath/ath9k/debug.c
-+++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -348,8 +348,6 @@ void ath_debug_stat_interrupt(struct ath
- sc->debug.stats.istats.txok++;
- if (status & ATH9K_INT_TXURN)
- sc->debug.stats.istats.txurn++;
-- if (status & ATH9K_INT_MIB)
-- sc->debug.stats.istats.mib++;
- if (status & ATH9K_INT_RXPHY)
- sc->debug.stats.istats.rxphyerr++;
- if (status & ATH9K_INT_RXKCM)
---- a/drivers/net/wireless/ath/ath9k/hw.h
-+++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -1019,16 +1019,8 @@ void ar9002_hw_attach_ops(struct ath_hw
- void ar9003_hw_attach_ops(struct ath_hw *ah);
-
- void ar9002_hw_load_ani_reg(struct ath_hw *ah, struct ath9k_channel *chan);
--/*
-- * ANI work can be shared between all families but a next
-- * generation implementation of ANI will be used only for AR9003 only
-- * for now as the other families still need to be tested with the same
-- * next generation ANI. Feel free to start testing it though for the
-- * older families (AR5008, AR9001, AR9002) by using modparam_force_new_ani.
-- */
--extern int modparam_force_new_ani;
-+
- void ath9k_ani_reset(struct ath_hw *ah, bool is_scanning);
--void ath9k_hw_proc_mib_event(struct ath_hw *ah);
- void ath9k_hw_ani_monitor(struct ath_hw *ah, struct ath9k_channel *chan);
-
- #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
---- a/drivers/net/wireless/ath/ath9k/main.c
-+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -19,7 +19,7 @@
- #include "ath9k.h"
- #include "btcoex.h"
-
--static u8 parse_mpdudensity(u8 mpdudensity)
-+u8 ath9k_parse_mpdudensity(u8 mpdudensity)
- {
- /*
- * 802.11n D2.0 defined values for "Minimum MPDU Start Spacing":
-@@ -320,6 +320,7 @@ static void ath_node_attach(struct ath_s
- struct ieee80211_vif *vif)
- {
- struct ath_node *an;
-+ u8 density;
- an = (struct ath_node *)sta->drv_priv;
-
- #ifdef CONFIG_ATH9K_DEBUGFS
-@@ -334,7 +335,8 @@ static void ath_node_attach(struct ath_s
- ath_tx_node_init(sc, an);
- an->maxampdu = 1 << (IEEE80211_HT_MAX_AMPDU_FACTOR +
- sta->ht_cap.ampdu_factor);
-- an->mpdudensity = parse_mpdudensity(sta->ht_cap.ampdu_density);
-+ density = ath9k_parse_mpdudensity(sta->ht_cap.ampdu_density);
-+ an->mpdudensity = density;
- }
- }
-
-@@ -516,24 +518,6 @@ irqreturn_t ath_isr(int irq, void *dev)
- ath9k_hw_set_interrupts(ah);
- }
-
-- if (status & ATH9K_INT_MIB) {
-- /*
-- * Disable interrupts until we service the MIB
-- * interrupt; otherwise it will continue to
-- * fire.
-- */
-- ath9k_hw_disable_interrupts(ah);
-- /*
-- * Let the hal handle the event. We assume
-- * it will clear whatever condition caused
-- * the interrupt.
-- */
-- spin_lock(&common->cc_lock);
-- ath9k_hw_proc_mib_event(ah);
-- spin_unlock(&common->cc_lock);
-- ath9k_hw_enable_interrupts(ah);
-- }
--
- if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
- if (status & ATH9K_INT_TIM_TIMER) {
- if (ATH_DBG_WARN_ON_ONCE(sc->ps_idle))
-@@ -959,14 +943,10 @@ static void ath9k_calculate_summary_stat
- /*
- * Enable MIB interrupts when there are hardware phy counters.
- */
-- if ((iter_data.nstations + iter_data.nadhocs + iter_data.nmeshes) > 0) {
-- if (ah->config.enable_ani)
-- ah->imask |= ATH9K_INT_MIB;
-+ if ((iter_data.nstations + iter_data.nadhocs + iter_data.nmeshes) > 0)
- ah->imask |= ATH9K_INT_TSFOOR;
-- } else {
-- ah->imask &= ~ATH9K_INT_MIB;
-+ else
- ah->imask &= ~ATH9K_INT_TSFOOR;
-- }
-
- ath9k_hw_set_interrupts(ah);