Lines Matching refs:ah

63 #define ANI_ENA(ah) \  argument
64 (AH5212(ah)->ah_procPhyErr & HAL_ANI_ENA)
65 #define ANI_ENA_RSSI(ah) \ argument
66 (AH5212(ah)->ah_procPhyErr & HAL_RSSI_ANI_ENA)
71 enableAniMIBCounters(struct ath_hal *ah, const struct ar5212AniParams *params) in enableAniMIBCounters() argument
73 struct ath_hal_5212 *ahp = AH5212(ah); in enableAniMIBCounters()
75 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: Enable mib counters: " in enableAniMIBCounters()
79 OS_REG_WRITE(ah, AR_FILTOFDM, 0); in enableAniMIBCounters()
80 OS_REG_WRITE(ah, AR_FILTCCK, 0); in enableAniMIBCounters()
82 OS_REG_WRITE(ah, AR_PHYCNT1, params->ofdmPhyErrBase); in enableAniMIBCounters()
83 OS_REG_WRITE(ah, AR_PHYCNT2, params->cckPhyErrBase); in enableAniMIBCounters()
84 OS_REG_WRITE(ah, AR_PHY_ERR_MASK_1, AR_PHY_ERR_OFDM_TIMING); in enableAniMIBCounters()
85 OS_REG_WRITE(ah, AR_PHY_ERR_MASK_2, AR_PHY_ERR_CCK_TIMING); in enableAniMIBCounters()
87 ar5212UpdateMibCounters(ah, &ahp->ah_mibStats); /* save+clear counters*/ in enableAniMIBCounters()
88 ar5212EnableMibCounters(ah); /* enable everything */ in enableAniMIBCounters()
92 disableAniMIBCounters(struct ath_hal *ah) in disableAniMIBCounters() argument
94 struct ath_hal_5212 *ahp = AH5212(ah); in disableAniMIBCounters()
96 HALDEBUG(ah, HAL_DEBUG_ANI, "Disable MIB counters\n"); in disableAniMIBCounters()
98 ar5212UpdateMibCounters(ah, &ahp->ah_mibStats); /* save stats */ in disableAniMIBCounters()
99 ar5212DisableMibCounters(ah); /* disable everything */ in disableAniMIBCounters()
101 OS_REG_WRITE(ah, AR_PHY_ERR_MASK_1, 0); in disableAniMIBCounters()
102 OS_REG_WRITE(ah, AR_PHY_ERR_MASK_2, 0); in disableAniMIBCounters()
106 setPhyErrBase(struct ath_hal *ah, struct ar5212AniParams *params) in setPhyErrBase() argument
109 HALDEBUG(ah, HAL_DEBUG_ANY, in setPhyErrBase()
116 HALDEBUG(ah, HAL_DEBUG_ANY, in setPhyErrBase()
131 ar5416AniAttach(struct ath_hal *ah, const struct ar5212AniParams *params24, in ar5416AniAttach() argument
134 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniAttach()
138 setPhyErrBase(ah, &ahp->ah_aniParams24); in ar5416AniAttach()
142 setPhyErrBase(ah, &ahp->ah_aniParams5); in ar5416AniAttach()
147 enableAniMIBCounters(ah, &ahp->ah_aniParams24 /*XXX*/); in ar5416AniAttach()
163 ar5416AniDetach(struct ath_hal *ah) in ar5416AniDetach() argument
165 HALDEBUG(ah, HAL_DEBUG_ANI, "Detaching Ani\n"); in ar5416AniDetach()
166 disableAniMIBCounters(ah); in ar5416AniDetach()
173 ar5416AniControl(struct ath_hal *ah, HAL_ANI_CMD cmd, int param) in ar5416AniControl() argument
176 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniControl()
187 OS_MARK(ah, AH_MARK_ANI_CONTROL, cmd); in ar5416AniControl()
197 ar5416AniDetach(ah); in ar5416AniControl()
206 enableAniMIBCounters(ah, in ar5416AniControl()
217 if (((1 << cmd) & AH5416(ah)->ah_ani_function) == 0) { in ar5416AniControl()
218 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: command %d disabled\n", in ar5416AniControl()
220 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: cmd %d; mask %x\n", __func__, cmd, AH5416(ah)->ah_ani_function); in ar5416AniControl()
228 …HALDEBUG(ah, HAL_DEBUG_ANI, "%s: HAL_ANI_NOISE_IMMUNITY_LEVEL: set level = %d\n", __func__, level); in ar5416AniControl()
230 HALDEBUG(ah, HAL_DEBUG_ANI, in ar5416AniControl()
236 OS_REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ, in ar5416AniControl()
238 OS_REG_RMW_FIELD(ah, AR_PHY_AGC_CTL1, in ar5416AniControl()
240 OS_REG_RMW_FIELD(ah, AR_PHY_AGC_CTL1, in ar5416AniControl()
242 OS_REG_RMW_FIELD(ah, AR_PHY_FIND_SIG, in ar5416AniControl()
261 …HALDEBUG(ah, HAL_DEBUG_ANI, "%s: HAL_ANI_OFDM_WEAK_SIGNAL_DETECTION: %s\n", __func__, on ? "enable… in ar5416AniControl()
262 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW, in ar5416AniControl()
264 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW, in ar5416AniControl()
266 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR, in ar5416AniControl()
268 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR, in ar5416AniControl()
270 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR, in ar5416AniControl()
272 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW, in ar5416AniControl()
275 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT, in ar5416AniControl()
277 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT, in ar5416AniControl()
279 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT, in ar5416AniControl()
281 OS_REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT, in ar5416AniControl()
285 OS_REG_SET_BIT(ah, AR_PHY_SFCORR_LOW, in ar5416AniControl()
288 OS_REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW, in ar5416AniControl()
302 …HALDEBUG(ah, HAL_DEBUG_ANI, "%s: HAL_ANI_CCK_WEAK_SIGNAL_THR: %s\n", __func__, high ? "high" : "lo… in ar5416AniControl()
303 OS_REG_RMW_FIELD(ah, AR_PHY_CCK_DETECT, in ar5416AniControl()
315 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: HAL_ANI_FIRSTEP_LEVEL: level = %d\n", __func__, level); in ar5416AniControl()
317 HALDEBUG(ah, HAL_DEBUG_ANI, in ar5416AniControl()
322 OS_REG_RMW_FIELD(ah, AR_PHY_FIND_SIG, in ar5416AniControl()
334 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: HAL_ANI_SPUR_IMMUNITY_LEVEL: level = %d\n", __func__, level); in ar5416AniControl()
336 HALDEBUG(ah, HAL_DEBUG_ANI, in ar5416AniControl()
341 OS_REG_RMW_FIELD(ah, AR_PHY_TIMING5, in ar5416AniControl()
358 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: invalid cmd %u\n", in ar5416AniControl()
366 ar5416AniOfdmErrTrigger(struct ath_hal *ah) in ar5416AniOfdmErrTrigger() argument
368 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniOfdmErrTrigger()
369 const struct ieee80211_channel *chan = AH_PRIVATE(ah)->ah_curchan; in ar5416AniOfdmErrTrigger()
375 if (!ANI_ENA(ah)) in ar5416AniOfdmErrTrigger()
382 if (ar5416AniControl(ah, HAL_ANI_NOISE_IMMUNITY_LEVEL, in ar5416AniOfdmErrTrigger()
388 if (ar5416AniControl(ah, HAL_ANI_SPUR_IMMUNITY_LEVEL, in ar5416AniOfdmErrTrigger()
398 if (AH_PRIVATE(ah)->ah_opmode == HAL_M_HOSTAP) { in ar5416AniOfdmErrTrigger()
400 if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniOfdmErrTrigger()
405 if (ANI_ENA_RSSI(ah)) { in ar5416AniOfdmErrTrigger()
413 ar5416AniControl(ah, in ar5416AniOfdmErrTrigger()
416 ar5416AniControl(ah, in ar5416AniOfdmErrTrigger()
425 if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniOfdmErrTrigger()
435 ar5416AniControl(ah, in ar5416AniOfdmErrTrigger()
439 if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniOfdmErrTrigger()
450 ar5416AniControl(ah, in ar5416AniOfdmErrTrigger()
454 if (ar5416AniControl(ah, in ar5416AniOfdmErrTrigger()
463 ar5416AniCckErrTrigger(struct ath_hal *ah) in ar5416AniCckErrTrigger() argument
465 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniCckErrTrigger()
466 const struct ieee80211_channel *chan = AH_PRIVATE(ah)->ah_curchan; in ar5416AniCckErrTrigger()
472 if (!ANI_ENA(ah)) in ar5416AniCckErrTrigger()
478 if ((AH5416(ah)->ah_ani_function & (1 << HAL_ANI_NOISE_IMMUNITY_LEVEL) && in ar5416AniCckErrTrigger()
480 ar5416AniControl(ah, HAL_ANI_NOISE_IMMUNITY_LEVEL, in ar5416AniCckErrTrigger()
485 if (ANI_ENA_RSSI(ah)) { in ar5416AniCckErrTrigger()
493 ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniCckErrTrigger()
502 ar5416AniControl(ah, in ar5416AniCckErrTrigger()
510 ar5416AniRestart(struct ath_hal *ah, struct ar5212AniState *aniState) in ar5416AniRestart() argument
512 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniRestart()
520 HALDEBUG(ah, HAL_DEBUG_ANI, in ar5416AniRestart()
523 OS_REG_WRITE(ah, AR_PHY_ERR_1, params->ofdmPhyErrBase); in ar5416AniRestart()
524 OS_REG_WRITE(ah, AR_PHY_ERR_2, params->cckPhyErrBase); in ar5416AniRestart()
525 OS_REG_WRITE(ah, AR_PHY_ERR_MASK_1, AR_PHY_ERR_OFDM_TIMING); in ar5416AniRestart()
526 OS_REG_WRITE(ah, AR_PHY_ERR_MASK_2, AR_PHY_ERR_CCK_TIMING); in ar5416AniRestart()
529 ar5212UpdateMibCounters(ah, &ahp->ah_mibStats); in ar5416AniRestart()
542 ar5416AniReset(struct ath_hal *ah, const struct ieee80211_channel *chan, in ar5416AniReset() argument
545 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniReset()
546 HAL_CHANNEL_INTERNAL *ichan = ath_hal_checkchannel(ah, chan); in ar5416AniReset()
562 ath_hal_printf(ah,"%s: chan %u/0x%x restore %d opmode %u%s\n", in ar5416AniReset()
566 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: chan %u/0x%x restore %d opmode %u%s\n", in ar5416AniReset()
570 OS_MARK(ah, AH_MARK_ANI_RESET, opmode); in ar5416AniReset()
575 rxfilter = ah->ah_getRxFilter(ah); in ar5416AniReset()
576 ah->ah_setRxFilter(ah, rxfilter &~ HAL_RX_FILTER_PHYERR); in ar5416AniReset()
583 if (! ANI_ENA(ah)) { in ar5416AniReset()
584 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: ANI disabled\n", in ar5416AniReset()
594 AH5416(ah)->ah_ani_function = in ar5416AniReset()
597 AH5416(ah)->ah_ani_function = 0; in ar5416AniReset()
614 ar5416AniControl(ah, HAL_ANI_NOISE_IMMUNITY_LEVEL, in ar5416AniReset()
616 ar5416AniControl(ah, HAL_ANI_SPUR_IMMUNITY_LEVEL, in ar5416AniReset()
618 ar5416AniControl(ah, HAL_ANI_OFDM_WEAK_SIGNAL_DETECTION, in ar5416AniReset()
620 ar5416AniControl(ah, HAL_ANI_CCK_WEAK_SIGNAL_THR, in ar5416AniReset()
622 ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniReset()
625 ar5416AniControl(ah, HAL_ANI_NOISE_IMMUNITY_LEVEL, 0); in ar5416AniReset()
626 ar5416AniControl(ah, HAL_ANI_SPUR_IMMUNITY_LEVEL, 0); in ar5416AniReset()
627 ar5416AniControl(ah, HAL_ANI_OFDM_WEAK_SIGNAL_DETECTION, in ar5416AniReset()
629 ar5416AniControl(ah, HAL_ANI_CCK_WEAK_SIGNAL_THR, AH_FALSE); in ar5416AniReset()
630 ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, 0); in ar5416AniReset()
637 enableAniMIBCounters(ah, aniState->params); in ar5416AniReset()
638 ar5416AniRestart(ah, aniState); in ar5416AniReset()
642 ah->ah_setRxFilter(ah, rxfilter); in ar5416AniReset()
651 ar5416ProcessMibIntr(struct ath_hal *ah, const HAL_NODE_STATS *stats) in ar5416ProcessMibIntr() argument
653 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416ProcessMibIntr()
656 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: mibc 0x%x phyCnt1 0x%x phyCnt2 0x%x " in ar5416ProcessMibIntr()
658 __func__, OS_REG_READ(ah, AR_MIBC), in ar5416ProcessMibIntr()
659 OS_REG_READ(ah, AR_PHYCNT1), OS_REG_READ(ah, AR_PHYCNT2), in ar5416ProcessMibIntr()
660 OS_REG_READ(ah, AR_FILTOFDM), OS_REG_READ(ah, AR_FILTCCK)); in ar5416ProcessMibIntr()
672 phyCnt1 = OS_REG_READ(ah, AR_PHY_ERR_1); in ar5416ProcessMibIntr()
673 phyCnt2 = OS_REG_READ(ah, AR_PHY_ERR_2); in ar5416ProcessMibIntr()
675 OS_REG_WRITE(ah, AR_FILTOFDM, 0); in ar5416ProcessMibIntr()
676 OS_REG_WRITE(ah, AR_FILTCCK, 0); in ar5416ProcessMibIntr()
677 if ((OS_REG_READ(ah, AR_SLP_MIB_CTRL) & AR_SLP_MIB_PENDING) == 0) in ar5416ProcessMibIntr()
678 OS_REG_WRITE(ah, AR_SLP_MIB_CTRL, AR_SLP_MIB_CLEAR); in ar5416ProcessMibIntr()
681 ar5212UpdateMibCounters(ah, &ahp->ah_mibStats); in ar5416ProcessMibIntr()
713 ar5416AniOfdmErrTrigger(ah); in ar5416ProcessMibIntr()
715 ar5416AniCckErrTrigger(ah); in ar5416ProcessMibIntr()
717 ar5416AniRestart(ah, aniState); in ar5416ProcessMibIntr()
722 ar5416AniLowerImmunity(struct ath_hal *ah) in ar5416AniLowerImmunity() argument
724 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniLowerImmunity()
728 HALASSERT(ANI_ENA(ah)); in ar5416AniLowerImmunity()
738 if (AH_PRIVATE(ah)->ah_opmode == HAL_M_HOSTAP) { in ar5416AniLowerImmunity()
740 if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniLowerImmunity()
745 if (ANI_ENA_RSSI(ah)) { in ar5416AniLowerImmunity()
759 if (ar5416AniControl(ah, in ar5416AniLowerImmunity()
765 if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniLowerImmunity()
774 if (ar5416AniControl(ah, HAL_ANI_FIRSTEP_LEVEL, in ar5416AniLowerImmunity()
782 if (ar5416AniControl(ah, HAL_ANI_SPUR_IMMUNITY_LEVEL, in ar5416AniLowerImmunity()
791 if (ar5416AniControl(ah, HAL_ANI_NOISE_IMMUNITY_LEVEL, in ar5416AniLowerImmunity()
813 ar5416AniGetListenTime(struct ath_hal *ah) in ar5416AniGetListenTime() argument
815 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniGetListenTime()
824 if (AH_PRIVATE(ah)->ah_curchan == AH_NULL) { in ar5416AniGetListenTime()
825 ath_hal_printf(ah, "%s: ah_curchan = NULL?\n", __func__); in ar5416AniGetListenTime()
834 good = ar5416GetMibCycleCounts(ah, &hs); in ar5416AniGetListenTime()
835 ath_hal_survey_add_sample(ah, &hs); in ar5416AniGetListenTime()
837 if (ANI_ENA(ah)) in ar5416AniGetListenTime()
848 } else if (ANI_ENA(ah)) { in ar5416AniGetListenTime()
854 AH5416(ah)->ah_cycleCount - aniState->cycleCount; in ar5416AniGetListenTime()
856 AH5416(ah)->ah_rxBusy - aniState->rxFrameCount; in ar5416AniGetListenTime()
858 AH5416(ah)->ah_txBusy - aniState->txFrameCount; in ar5416AniGetListenTime()
865 if (ANI_ENA(ah)) { in ar5416AniGetListenTime()
866 aniState->cycleCount = AH5416(ah)->ah_cycleCount; in ar5416AniGetListenTime()
867 aniState->rxFrameCount = AH5416(ah)->ah_rxBusy; in ar5416AniGetListenTime()
868 aniState->txFrameCount = AH5416(ah)->ah_txBusy; in ar5416AniGetListenTime()
878 updateMIBStats(struct ath_hal *ah, struct ar5212AniState *aniState) in updateMIBStats() argument
880 struct ath_hal_5212 *ahp = AH5212(ah); in updateMIBStats()
886 ar5212UpdateMibCounters(ah, &ahp->ah_mibStats); in updateMIBStats()
889 phyCnt1 = OS_REG_READ(ah, AR_PHY_ERR_1); in updateMIBStats()
890 phyCnt2 = OS_REG_READ(ah, AR_PHY_ERR_2); in updateMIBStats()
895 HALDEBUG(ah, HAL_DEBUG_ANI, "OFDM phyErrCnt %d phyCnt1 0x%x\n", in updateMIBStats()
905 HALDEBUG(ah, HAL_DEBUG_ANI, "CCK phyErrCnt %d phyCnt2 0x%x\n", in updateMIBStats()
915 ar5416RxMonitor(struct ath_hal *ah, const HAL_NODE_STATS *stats, in ar5416RxMonitor() argument
918 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416RxMonitor()
927 ar5416AniPoll(struct ath_hal *ah, const struct ieee80211_channel *chan) in ar5416AniPoll() argument
929 struct ath_hal_5212 *ahp = AH5212(ah); in ar5416AniPoll()
935 listenTime = ar5416AniGetListenTime(ah); in ar5416AniPoll()
941 if (!ANI_ENA(ah)) in ar5416AniPoll()
947 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: invalid listenTime\n", in ar5416AniPoll()
949 ar5416AniRestart(ah, aniState); in ar5416AniPoll()
957 OS_MARK(ah, AH_MARK_ANI_POLL, aniState->listenTime); in ar5416AniPoll()
965 updateMIBStats(ah, aniState); in ar5416AniPoll()
970 ar5416AniLowerImmunity(ah); in ar5416AniPoll()
971 HALDEBUG(ah, HAL_DEBUG_ANI, "%s: lower immunity\n", in ar5416AniPoll()
973 ar5416AniRestart(ah, aniState); in ar5416AniPoll()
975 updateMIBStats(ah, aniState); in ar5416AniPoll()
979 HALDEBUG(ah, HAL_DEBUG_ANI, in ar5416AniPoll()
982 ar5416AniOfdmErrTrigger(ah); in ar5416AniPoll()
983 ar5416AniRestart(ah, aniState); in ar5416AniPoll()
986 HALDEBUG(ah, HAL_DEBUG_ANI, in ar5416AniPoll()
989 ar5416AniCckErrTrigger(ah); in ar5416AniPoll()
990 ar5416AniRestart(ah, aniState); in ar5416AniPoll()