Start the process of migrating the ANI statistics out of the HALs and into
the top-level HAL. The athstats program is blindly using a copy of the ar5212 ANI stats structure to pull out ANI statistics/state and this is problematic for the AR9300 HAL. So: * Define HAL_ANI_STATS and HAL_ANI_STATE * Use HAL_ANI_STATS inside the AR5212 HAL This commit doesn't (yet) convert the ar5212AniState -> HAL_ANI_STATE when exporting it to userland; that'll come in the next commit.
This commit is contained in:
parent
8a416b59fb
commit
a9e86008ae
@ -850,6 +850,48 @@ typedef struct {
|
||||
|
||||
#define HAL_RSSI_EP_MULTIPLIER (1<<7) /* pow2 to optimize out * and / */
|
||||
|
||||
/*
|
||||
* This is the ANI state and MIB stats.
|
||||
*
|
||||
* It's used by the HAL modules to keep state /and/ by the debug ioctl
|
||||
* to fetch ANI information.
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t ast_ani_niup; /* ANI increased noise immunity */
|
||||
uint32_t ast_ani_nidown; /* ANI decreased noise immunity */
|
||||
uint32_t ast_ani_spurup; /* ANI increased spur immunity */
|
||||
uint32_t ast_ani_spurdown;/* ANI descreased spur immunity */
|
||||
uint32_t ast_ani_ofdmon; /* ANI OFDM weak signal detect on */
|
||||
uint32_t ast_ani_ofdmoff;/* ANI OFDM weak signal detect off */
|
||||
uint32_t ast_ani_cckhigh;/* ANI CCK weak signal threshold high */
|
||||
uint32_t ast_ani_ccklow; /* ANI CCK weak signal threshold low */
|
||||
uint32_t ast_ani_stepup; /* ANI increased first step level */
|
||||
uint32_t ast_ani_stepdown;/* ANI decreased first step level */
|
||||
uint32_t ast_ani_ofdmerrs;/* ANI cumulative ofdm phy err count */
|
||||
uint32_t ast_ani_cckerrs;/* ANI cumulative cck phy err count */
|
||||
uint32_t ast_ani_reset; /* ANI parameters zero'd for non-STA */
|
||||
uint32_t ast_ani_lzero; /* ANI listen time forced to zero */
|
||||
uint32_t ast_ani_lneg; /* ANI listen time calculated < 0 */
|
||||
HAL_MIB_STATS ast_mibstats; /* MIB counter stats */
|
||||
HAL_NODE_STATS ast_nodestats; /* Latest rssi stats from driver */
|
||||
} HAL_ANI_STATS;
|
||||
|
||||
typedef struct {
|
||||
uint8_t noiseImmunityLevel;
|
||||
uint8_t spurImmunityLevel;
|
||||
uint8_t firstepLevel;
|
||||
uint8_t ofdmWeakSigDetectOff;
|
||||
uint8_t cckWeakSigThreshold;
|
||||
uint32_t listenTime;
|
||||
|
||||
/* NB: intentionally ordered so data exported to user space is first */
|
||||
uint32_t txFrameCount; /* Last txFrameCount */
|
||||
uint32_t rxFrameCount; /* Last rx Frame count */
|
||||
uint32_t cycleCount; /* Last cycleCount
|
||||
(to detect wrap-around) */
|
||||
uint32_t ofdmPhyErrCount;/* OFDM err count since last reset */
|
||||
uint32_t cckPhyErrCount; /* CCK err count since last reset */
|
||||
} HAL_ANI_STATE;
|
||||
|
||||
struct ath_desc;
|
||||
struct ath_tx_status;
|
||||
|
@ -200,6 +200,7 @@ struct ar5212AniState {
|
||||
#define HAL_ANI_ENA 0x00000001 /* ANI operation enabled */
|
||||
#define HAL_RSSI_ANI_ENA 0x00000002 /* rssi-based processing ena'd*/
|
||||
|
||||
#if 0
|
||||
struct ar5212Stats {
|
||||
uint32_t ast_ani_niup; /* ANI increased noise immunity */
|
||||
uint32_t ast_ani_nidown; /* ANI decreased noise immunity */
|
||||
@ -219,6 +220,7 @@ struct ar5212Stats {
|
||||
HAL_MIB_STATS ast_mibstats; /* MIB counter stats */
|
||||
HAL_NODE_STATS ast_nodestats; /* Latest rssi stats from driver */
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* NF Cal history buffer
|
||||
@ -258,7 +260,7 @@ struct ath_hal_5212 {
|
||||
* Runtime state.
|
||||
*/
|
||||
uint32_t ah_maskReg; /* copy of AR_IMR */
|
||||
struct ar5212Stats ah_stats; /* various statistics */
|
||||
HAL_ANI_STATS ah_stats; /* various statistics */
|
||||
RF_HAL_FUNCS *ah_rfHal;
|
||||
uint32_t ah_txDescMask; /* mask for TXDESC */
|
||||
uint32_t ah_txOkInterruptMask;
|
||||
@ -625,7 +627,7 @@ extern void ar5212AniAttach(struct ath_hal *, const struct ar5212AniParams *,
|
||||
const struct ar5212AniParams *, HAL_BOOL ena);
|
||||
extern void ar5212AniDetach(struct ath_hal *);
|
||||
extern struct ar5212AniState *ar5212AniGetCurrentState(struct ath_hal *);
|
||||
extern struct ar5212Stats *ar5212AniGetCurrentStats(struct ath_hal *);
|
||||
extern HAL_ANI_STATS *ar5212AniGetCurrentStats(struct ath_hal *);
|
||||
extern HAL_BOOL ar5212AniControl(struct ath_hal *, HAL_ANI_CMD cmd, int param);
|
||||
extern HAL_BOOL ar5212AniSetParams(struct ath_hal *,
|
||||
const struct ar5212AniParams *, const struct ar5212AniParams *);
|
||||
|
@ -110,7 +110,7 @@ ar5212AniGetCurrentState(struct ath_hal *ah)
|
||||
/*
|
||||
* Return the current statistics.
|
||||
*/
|
||||
struct ar5212Stats *
|
||||
HAL_ANI_STATS *
|
||||
ar5212AniGetCurrentStats(struct ath_hal *ah)
|
||||
{
|
||||
struct ath_hal_5212 *ahp = AH5212(ah);
|
||||
|
@ -1085,7 +1085,7 @@ ar5212GetDiagState(struct ath_hal *ah, int request,
|
||||
case HAL_DIAG_ANI_STATS:
|
||||
*result = ar5212AniGetCurrentStats(ah);
|
||||
*resultsize = (*result == AH_NULL) ?
|
||||
0 : sizeof(struct ar5212Stats);
|
||||
0 : sizeof(HAL_ANI_STATS);
|
||||
return AH_TRUE;
|
||||
case HAL_DIAG_ANI_CMD:
|
||||
if (argsize != 2*sizeof(uint32_t))
|
||||
|
Loading…
Reference in New Issue
Block a user