From 7d9eb96d82563bc7585cc7517fd398522c292be4 Mon Sep 17 00:00:00 2001 From: adrian Date: Mon, 6 Apr 2015 01:12:53 +0000 Subject: Return the correct HAL data type for HAL_DIAG_ANI_STATS. I .. stupidly added code to return HAL_ANI_STATS to HAL_DIAG_ANI_STATS. I discovered this in a noisy environment when the returned values were enough to .. well, make everything terrible. So - restore functionality. Tested: * AR5416 (uses the AR5212 HAL), in a /very/ noisy 2GHz environment. Enough to trigger ANI to get upset and generate useful data. --- sys/dev/ath/ath_hal/ar5212/ar5212.h | 4 +++- sys/dev/ath/ath_hal/ar5212/ar5212_misc.c | 26 +++++++------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/sys/dev/ath/ath_hal/ar5212/ar5212.h b/sys/dev/ath/ath_hal/ar5212/ar5212.h index 2622efd..938a68c 100644 --- a/sys/dev/ath/ath_hal/ar5212/ar5212.h +++ b/sys/dev/ath/ath_hal/ar5212/ar5212.h @@ -345,7 +345,9 @@ struct ath_hal_5212 { uint32_t ah_txBusy; uint32_t ah_rx_chainmask; uint32_t ah_tx_chainmask; - HAL_ANI_STATE ext_ani_state; + + /* Used to return ANI statistics to the diagnostic API */ + HAL_ANI_STATS ext_ani_stats; }; #define AH5212(_ah) ((struct ath_hal_5212 *)(_ah)) diff --git a/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c b/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c index 098a14c..e2f1eb7 100644 --- a/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c +++ b/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c @@ -1052,7 +1052,7 @@ ar5212GetDiagState(struct ath_hal *ah, int request, void **result, uint32_t *resultsize) { struct ath_hal_5212 *ahp = AH5212(ah); - struct ar5212AniState *astate; + HAL_ANI_STATS *astats; (void) ahp; if (ath_hal_getdiagstate(ah, request, args, argsize, result, resultsize)) @@ -1084,27 +1084,15 @@ ar5212GetDiagState(struct ath_hal *ah, int request, 0 : sizeof(struct ar5212AniState); return AH_TRUE; case HAL_DIAG_ANI_STATS: - OS_MEMZERO(&ahp->ext_ani_state, sizeof(ahp->ext_ani_state)); - astate = ar5212AniGetCurrentState(ah); - if (astate == NULL) { + OS_MEMZERO(&ahp->ext_ani_stats, sizeof(ahp->ext_ani_stats)); + astats = ar5212AniGetCurrentStats(ah); + if (astats == NULL) { *result = NULL; *resultsize = 0; } else { - ahp->ext_ani_state.noiseImmunityLevel = - astate->noiseImmunityLevel; - ahp->ext_ani_state.spurImmunityLevel = - astate->spurImmunityLevel; - ahp->ext_ani_state.firstepLevel = - astate->firstepLevel; - ahp->ext_ani_state.ofdmWeakSigDetectOff = - astate->ofdmWeakSigDetectOff; - ahp->ext_ani_state.cckWeakSigThreshold = - astate->cckWeakSigThreshold; - ahp->ext_ani_state.listenTime = - astate->listenTime; - - *result = &ahp->ext_ani_state; - *resultsize = sizeof(ahp->ext_ani_state); + OS_MEMCPY(&ahp->ext_ani_stats, astats, sizeof(HAL_ANI_STATS)); + *result = &ahp->ext_ani_stats; + *resultsize = sizeof(ahp->ext_ani_stats); } return AH_TRUE; case HAL_DIAG_ANI_CMD: -- cgit v1.1