|
@@ -730,40 +730,7 @@ static void ath9k_hw_ani_read_counters(struct ath_hw *ah)
|
|
|
|
|
|
}
|
|
|
|
|
|
-static void ath9k_hw_ani_monitor_old(struct ath_hw *ah,
|
|
|
- struct ath9k_channel *chan)
|
|
|
-{
|
|
|
- struct ar5416AniState *aniState;
|
|
|
-
|
|
|
- if (!DO_ANI(ah))
|
|
|
- return;
|
|
|
-
|
|
|
- aniState = &ah->curchan->ani;
|
|
|
- ath9k_hw_ani_read_counters(ah);
|
|
|
-
|
|
|
- if (aniState->listenTime > 5 * ah->aniperiod) {
|
|
|
- if (aniState->ofdmPhyErrCount <= aniState->listenTime *
|
|
|
- ah->config.ofdm_trig_low / 1000 &&
|
|
|
- aniState->cckPhyErrCount <= aniState->listenTime *
|
|
|
- ah->config.cck_trig_low / 1000)
|
|
|
- ath9k_hw_ani_lower_immunity(ah);
|
|
|
- ath9k_ani_restart(ah);
|
|
|
- } else if (aniState->listenTime > ah->aniperiod) {
|
|
|
- if (aniState->ofdmPhyErrCount > aniState->listenTime *
|
|
|
- ah->config.ofdm_trig_high / 1000) {
|
|
|
- ath9k_hw_ani_ofdm_err_trigger(ah);
|
|
|
- ath9k_ani_restart(ah);
|
|
|
- } else if (aniState->cckPhyErrCount >
|
|
|
- aniState->listenTime * ah->config.cck_trig_high /
|
|
|
- 1000) {
|
|
|
- ath9k_hw_ani_cck_err_trigger(ah);
|
|
|
- ath9k_ani_restart(ah);
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-static void ath9k_hw_ani_monitor_new(struct ath_hw *ah,
|
|
|
- struct ath9k_channel *chan)
|
|
|
+void ath9k_hw_ani_monitor(struct ath_hw *ah, struct ath9k_channel *chan)
|
|
|
{
|
|
|
struct ar5416AniState *aniState;
|
|
|
struct ath_common *common = ath9k_hw_common(ah);
|
|
@@ -794,54 +761,26 @@ static void ath9k_hw_ani_monitor_new(struct ath_hw *ah,
|
|
|
if (aniState->listenTime > 5 * ah->aniperiod) {
|
|
|
if (ofdmPhyErrRate <= ah->config.ofdm_trig_low &&
|
|
|
cckPhyErrRate <= ah->config.cck_trig_low) {
|
|
|
- ath_print(common, ATH_DBG_ANI,
|
|
|
- "1. listenTime=%d OFDM:%d errs=%d/s(<%d) "
|
|
|
- "CCK:%d errs=%d/s(<%d) -> "
|
|
|
- "ath9k_hw_ani_lower_immunity()\n",
|
|
|
- aniState->listenTime,
|
|
|
- aniState->ofdmNoiseImmunityLevel,
|
|
|
- ofdmPhyErrRate,
|
|
|
- ah->config.ofdm_trig_low,
|
|
|
- aniState->cckNoiseImmunityLevel,
|
|
|
- cckPhyErrRate,
|
|
|
- ah->config.cck_trig_low);
|
|
|
ath9k_hw_ani_lower_immunity(ah);
|
|
|
aniState->ofdmsTurn = !aniState->ofdmsTurn;
|
|
|
}
|
|
|
- ath_print(common, ATH_DBG_ANI,
|
|
|
- "1 listenTime=%d ofdm=%d/s cck=%d/s - "
|
|
|
- "calling ath9k_ani_restart()\n",
|
|
|
- aniState->listenTime, ofdmPhyErrRate, cckPhyErrRate);
|
|
|
ath9k_ani_restart(ah);
|
|
|
} else if (aniState->listenTime > ah->aniperiod) {
|
|
|
/* check to see if need to raise immunity */
|
|
|
if (ofdmPhyErrRate > ah->config.ofdm_trig_high &&
|
|
|
(cckPhyErrRate <= ah->config.cck_trig_high ||
|
|
|
aniState->ofdmsTurn)) {
|
|
|
- ath_print(common, ATH_DBG_ANI,
|
|
|
- "2 listenTime=%d OFDM:%d errs=%d/s(>%d) -> "
|
|
|
- "ath9k_hw_ani_ofdm_err_trigger()\n",
|
|
|
- aniState->listenTime,
|
|
|
- aniState->ofdmNoiseImmunityLevel,
|
|
|
- ofdmPhyErrRate,
|
|
|
- ah->config.ofdm_trig_high);
|
|
|
ath9k_hw_ani_ofdm_err_trigger(ah);
|
|
|
ath9k_ani_restart(ah);
|
|
|
aniState->ofdmsTurn = false;
|
|
|
} else if (cckPhyErrRate > ah->config.cck_trig_high) {
|
|
|
- ath_print(common, ATH_DBG_ANI,
|
|
|
- "3 listenTime=%d CCK:%d errs=%d/s(>%d) -> "
|
|
|
- "ath9k_hw_ani_cck_err_trigger()\n",
|
|
|
- aniState->listenTime,
|
|
|
- aniState->cckNoiseImmunityLevel,
|
|
|
- cckPhyErrRate,
|
|
|
- ah->config.cck_trig_high);
|
|
|
ath9k_hw_ani_cck_err_trigger(ah);
|
|
|
ath9k_ani_restart(ah);
|
|
|
aniState->ofdmsTurn = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+EXPORT_SYMBOL(ath9k_hw_ani_monitor);
|
|
|
|
|
|
void ath9k_enable_mib_counters(struct ath_hw *ah)
|
|
|
{
|
|
@@ -1065,21 +1004,3 @@ void ath9k_hw_ani_init(struct ath_hw *ah)
|
|
|
ath9k_ani_restart(ah);
|
|
|
ath9k_enable_mib_counters(ah);
|
|
|
}
|
|
|
-
|
|
|
-void ath9k_hw_attach_ani_ops_old(struct ath_hw *ah)
|
|
|
-{
|
|
|
- struct ath_hw_ops *ops = ath9k_hw_ops(ah);
|
|
|
-
|
|
|
- ops->ani_monitor = ath9k_hw_ani_monitor_old;
|
|
|
-
|
|
|
- ath_print(ath9k_hw_common(ah), ATH_DBG_ANY, "Using ANI v1\n");
|
|
|
-}
|
|
|
-
|
|
|
-void ath9k_hw_attach_ani_ops_new(struct ath_hw *ah)
|
|
|
-{
|
|
|
- struct ath_hw_ops *ops = ath9k_hw_ops(ah);
|
|
|
-
|
|
|
- ops->ani_monitor = ath9k_hw_ani_monitor_new;
|
|
|
-
|
|
|
- ath_print(ath9k_hw_common(ah), ATH_DBG_ANY, "Using ANI v2\n");
|
|
|
-}
|