iPXE
Data Structures | Macros | Enumerations | Functions
ani.h File Reference

Go to the source code of this file.

Data Structures

struct  ath9k_mib_stats
 
struct  ath9k_ani_default
 
struct  ar5416AniState
 
struct  ar5416Stats
 

Macros

#define HAL_PROCESS_ANI   0x00000001
 
#define DO_ANI(ah)   (((ah)->proc_phyerr & HAL_PROCESS_ANI) && ah->curchan)
 
#define BEACON_RSSI(ahp)   (ahp->stats.avgbrssi)
 
#define ATH9K_ANI_OFDM_TRIG_HIGH_OLD   500
 
#define ATH9K_ANI_OFDM_TRIG_HIGH_NEW   1000
 
#define ATH9K_ANI_OFDM_TRIG_LOW_OLD   200
 
#define ATH9K_ANI_OFDM_TRIG_LOW_NEW   400
 
#define ATH9K_ANI_CCK_TRIG_HIGH_OLD   200
 
#define ATH9K_ANI_CCK_TRIG_HIGH_NEW   600
 
#define ATH9K_ANI_CCK_TRIG_LOW_OLD   100
 
#define ATH9K_ANI_CCK_TRIG_LOW_NEW   300
 
#define ATH9K_ANI_NOISE_IMMUNE_LVL   4
 
#define ATH9K_ANI_USE_OFDM_WEAK_SIG   1
 
#define ATH9K_ANI_CCK_WEAK_SIG_THR   0
 
#define ATH9K_ANI_SPUR_IMMUNE_LVL_OLD   7
 
#define ATH9K_ANI_SPUR_IMMUNE_LVL_NEW   3
 
#define ATH9K_ANI_FIRSTEP_LVL_OLD   0
 
#define ATH9K_ANI_FIRSTEP_LVL_NEW   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   1000
 
#define ATH9K_ANI_POLLINTERVAL_OLD   100
 
#define ATH9K_ANI_POLLINTERVAL_NEW   1000
 
#define HAL_NOISE_IMMUNE_MAX   4
 
#define HAL_SPUR_IMMUNE_MAX   7
 
#define HAL_FIRST_STEP_MAX   2
 
#define ATH9K_SIG_FIRSTEP_SETTING_MIN   0
 
#define ATH9K_SIG_FIRSTEP_SETTING_MAX   20
 
#define ATH9K_SIG_SPUR_IMM_SETTING_MIN   0
 
#define ATH9K_SIG_SPUR_IMM_SETTING_MAX   22
 
#define ATH9K_ANI_ENABLE_MRC_CCK   1
 
#define ah_mibStats   stats.ast_mibstats
 

Enumerations

enum  ath9k_ani_cmd {
  ATH9K_ANI_PRESENT = 0x1, ATH9K_ANI_NOISE_IMMUNITY_LEVEL = 0x2, ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION = 0x4, ATH9K_ANI_CCK_WEAK_SIGNAL_THR = 0x8,
  ATH9K_ANI_FIRSTEP_LEVEL = 0x10, ATH9K_ANI_SPUR_IMMUNITY_LEVEL = 0x20, ATH9K_ANI_MODE = 0x40, ATH9K_ANI_PHYERR_RESET = 0x80,
  ATH9K_ANI_MRC_CCK = 0x100, ATH9K_ANI_ALL = 0xfff
}
 

Functions

 FILE_LICENCE (BSD2)
 
void ath9k_enable_mib_counters (struct ath_hw *ah)
 
void ath9k_hw_disable_mib_counters (struct ath_hw *ah)
 
void ath9k_hw_ani_setup (struct ath_hw *ah)
 
void ath9k_hw_ani_init (struct ath_hw *ah)
 
int ath9k_hw_get_ani_channel_idx (struct ath_hw *ah, struct ath9k_channel *chan)
 

Macro Definition Documentation

◆ HAL_PROCESS_ANI

#define HAL_PROCESS_ANI   0x00000001

Definition at line 25 of file ani.h.

◆ DO_ANI

#define DO_ANI (   ah)    (((ah)->proc_phyerr & HAL_PROCESS_ANI) && ah->curchan)

Definition at line 27 of file ani.h.

◆ BEACON_RSSI

#define BEACON_RSSI (   ahp)    (ahp->stats.avgbrssi)

Definition at line 29 of file ani.h.

◆ ATH9K_ANI_OFDM_TRIG_HIGH_OLD

#define ATH9K_ANI_OFDM_TRIG_HIGH_OLD   500

Definition at line 32 of file ani.h.

◆ ATH9K_ANI_OFDM_TRIG_HIGH_NEW

#define ATH9K_ANI_OFDM_TRIG_HIGH_NEW   1000

Definition at line 33 of file ani.h.

◆ ATH9K_ANI_OFDM_TRIG_LOW_OLD

#define ATH9K_ANI_OFDM_TRIG_LOW_OLD   200

Definition at line 36 of file ani.h.

◆ ATH9K_ANI_OFDM_TRIG_LOW_NEW

#define ATH9K_ANI_OFDM_TRIG_LOW_NEW   400

Definition at line 37 of file ani.h.

◆ ATH9K_ANI_CCK_TRIG_HIGH_OLD

#define ATH9K_ANI_CCK_TRIG_HIGH_OLD   200

Definition at line 40 of file ani.h.

◆ ATH9K_ANI_CCK_TRIG_HIGH_NEW

#define ATH9K_ANI_CCK_TRIG_HIGH_NEW   600

Definition at line 41 of file ani.h.

◆ ATH9K_ANI_CCK_TRIG_LOW_OLD

#define ATH9K_ANI_CCK_TRIG_LOW_OLD   100

Definition at line 44 of file ani.h.

◆ ATH9K_ANI_CCK_TRIG_LOW_NEW

#define ATH9K_ANI_CCK_TRIG_LOW_NEW   300

Definition at line 45 of file ani.h.

◆ ATH9K_ANI_NOISE_IMMUNE_LVL

#define ATH9K_ANI_NOISE_IMMUNE_LVL   4

Definition at line 47 of file ani.h.

◆ ATH9K_ANI_USE_OFDM_WEAK_SIG

#define ATH9K_ANI_USE_OFDM_WEAK_SIG   1

Definition at line 48 of file ani.h.

◆ ATH9K_ANI_CCK_WEAK_SIG_THR

#define ATH9K_ANI_CCK_WEAK_SIG_THR   0

Definition at line 49 of file ani.h.

◆ ATH9K_ANI_SPUR_IMMUNE_LVL_OLD

#define ATH9K_ANI_SPUR_IMMUNE_LVL_OLD   7

Definition at line 51 of file ani.h.

◆ ATH9K_ANI_SPUR_IMMUNE_LVL_NEW

#define ATH9K_ANI_SPUR_IMMUNE_LVL_NEW   3

Definition at line 52 of file ani.h.

◆ ATH9K_ANI_FIRSTEP_LVL_OLD

#define ATH9K_ANI_FIRSTEP_LVL_OLD   0

Definition at line 54 of file ani.h.

◆ ATH9K_ANI_FIRSTEP_LVL_NEW

#define ATH9K_ANI_FIRSTEP_LVL_NEW   2

Definition at line 55 of file ani.h.

◆ ATH9K_ANI_RSSI_THR_HIGH

#define ATH9K_ANI_RSSI_THR_HIGH   40

Definition at line 57 of file ani.h.

◆ ATH9K_ANI_RSSI_THR_LOW

#define ATH9K_ANI_RSSI_THR_LOW   7

Definition at line 58 of file ani.h.

◆ ATH9K_ANI_PERIOD_OLD

#define ATH9K_ANI_PERIOD_OLD   100

Definition at line 60 of file ani.h.

◆ ATH9K_ANI_PERIOD_NEW

#define ATH9K_ANI_PERIOD_NEW   1000

Definition at line 61 of file ani.h.

◆ ATH9K_ANI_POLLINTERVAL_OLD

#define ATH9K_ANI_POLLINTERVAL_OLD   100

Definition at line 64 of file ani.h.

◆ ATH9K_ANI_POLLINTERVAL_NEW

#define ATH9K_ANI_POLLINTERVAL_NEW   1000

Definition at line 65 of file ani.h.

◆ HAL_NOISE_IMMUNE_MAX

#define HAL_NOISE_IMMUNE_MAX   4

Definition at line 67 of file ani.h.

◆ HAL_SPUR_IMMUNE_MAX

#define HAL_SPUR_IMMUNE_MAX   7

Definition at line 68 of file ani.h.

◆ HAL_FIRST_STEP_MAX

#define HAL_FIRST_STEP_MAX   2

Definition at line 69 of file ani.h.

◆ ATH9K_SIG_FIRSTEP_SETTING_MIN

#define ATH9K_SIG_FIRSTEP_SETTING_MIN   0

Definition at line 71 of file ani.h.

◆ ATH9K_SIG_FIRSTEP_SETTING_MAX

#define ATH9K_SIG_FIRSTEP_SETTING_MAX   20

Definition at line 72 of file ani.h.

◆ ATH9K_SIG_SPUR_IMM_SETTING_MIN

#define ATH9K_SIG_SPUR_IMM_SETTING_MIN   0

Definition at line 73 of file ani.h.

◆ ATH9K_SIG_SPUR_IMM_SETTING_MAX

#define ATH9K_SIG_SPUR_IMM_SETTING_MAX   22

Definition at line 74 of file ani.h.

◆ ATH9K_ANI_ENABLE_MRC_CCK

#define ATH9K_ANI_ENABLE_MRC_CCK   1

Definition at line 76 of file ani.h.

◆ ah_mibStats

#define ah_mibStats   stats.ast_mibstats

Definition at line 161 of file ani.h.

Enumeration Type Documentation

◆ ath9k_ani_cmd

Enumerator
ATH9K_ANI_PRESENT 
ATH9K_ANI_NOISE_IMMUNITY_LEVEL 
ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION 
ATH9K_ANI_CCK_WEAK_SIGNAL_THR 
ATH9K_ANI_FIRSTEP_LEVEL 
ATH9K_ANI_SPUR_IMMUNITY_LEVEL 
ATH9K_ANI_MODE 
ATH9K_ANI_PHYERR_RESET 
ATH9K_ANI_MRC_CCK 
ATH9K_ANI_ALL 

Definition at line 80 of file ani.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2  )

◆ ath9k_enable_mib_counters()

void ath9k_enable_mib_counters ( struct ath_hw ah)

◆ ath9k_hw_disable_mib_counters()

void ath9k_hw_disable_mib_counters ( struct ath_hw ah)

◆ ath9k_hw_ani_setup()

void ath9k_hw_ani_setup ( struct ath_hw ah)

Definition at line 647 of file ath9k_ani.c.

648 {
649  int i;
650 
651  static const int totalSizeDesired[] = { -55, -55, -55, -55, -62 };
652  static const int coarseHigh[] = { -14, -14, -14, -14, -12 };
653  static const int coarseLow[] = { -64, -64, -64, -64, -70 };
654  static const int firpwr[] = { -78, -78, -78, -78, -80 };
655 
656  for (i = 0; i < 5; i++) {
657  ah->totalSizeDesired[i] = totalSizeDesired[i];
658  ah->coarse_high[i] = coarseHigh[i];
659  ah->coarse_low[i] = coarseLow[i];
660  ah->firpwr[i] = firpwr[i];
661  }
662 }
uint8_t ah
Definition: registers.h:85

References ah.

Referenced by ath9k_hw_post_init().

◆ ath9k_hw_ani_init()

void ath9k_hw_ani_init ( struct ath_hw ah)

Definition at line 664 of file ath9k_ani.c.

665 {
666  unsigned int i;
667 
668  DBG2("ath9k: Initialize ANI\n");
669 
670  if (use_new_ani(ah)) {
671  ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_NEW;
672  ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_NEW;
673 
674  ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH_NEW;
675  ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW_NEW;
676  } else {
677  ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_OLD;
678  ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_OLD;
679 
680  ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH_OLD;
681  ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW_OLD;
682  }
683 
684  for (i = 0; i < ARRAY_SIZE(ah->channels); i++) {
685  struct ath9k_channel *chan = &ah->channels[i];
686  struct ar5416AniState *ani = &chan->ani;
687 
688  if (use_new_ani(ah)) {
689  ani->spurImmunityLevel =
691 
693 
695  ani->mrcCCKOff =
697  else
698  ani->mrcCCKOff = 1;
699 
700  ani->ofdmsTurn = 1;
701  } else {
702  ani->spurImmunityLevel =
705 
706  ani->cckWeakSigThreshold =
708  }
709 
712  ani->ofdmWeakSigDetect =
715  }
716 
717  /*
718  * since we expect some ongoing maintenance on the tables, let's sanity
719  * check here default level should not modify INI setting.
720  */
721  if (use_new_ani(ah)) {
722  ah->aniperiod = ATH9K_ANI_PERIOD_NEW;
723  ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL_NEW;
724  } else {
725  ah->aniperiod = ATH9K_ANI_PERIOD_OLD;
726  ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL_OLD;
727  }
728 
729  if (ah->config.enable_ani)
730  ah->proc_phyerr |= HAL_PROCESS_ANI;
731 
733 }
u8 spurImmunityLevel
Definition: ani.h:126
u8 mrcCCKOff
Definition: ani.h:125
int32_t rssiThrHigh
Definition: ani.h:132
#define ATH9K_ANI_CCK_TRIG_HIGH_NEW
Definition: ani.h:41
#define ATH9K_ANI_CCK_TRIG_HIGH_OLD
Definition: ani.h:40
int32_t rssiThrLow
Definition: ani.h:131
#define ATH9K_ANI_OFDM_TRIG_LOW_OLD
Definition: ani.h:36
u8 cckNoiseImmunityLevel
Definition: ani.h:123
#define ATH9K_ANI_CCK_DEF_LEVEL
Definition: ath9k_ani.c:105
struct net80211_channel * chan
Definition: hw.h:347
#define AR_SREV_9300_20_OR_LATER(_ah)
Definition: reg.h:864
#define ATH9K_ANI_RSSI_THR_HIGH
Definition: ani.h:57
#define ATH9K_ANI_CCK_TRIG_LOW_NEW
Definition: ani.h:45
#define ATH9K_ANI_POLLINTERVAL_NEW
Definition: ani.h:65
#define ATH9K_ANI_OFDM_TRIG_LOW_NEW
Definition: ani.h:37
u8 ofdmWeakSigDetect
Definition: ani.h:128
#define HAL_PROCESS_ANI
Definition: ani.h:25
u8 firstepLevel
Definition: ani.h:127
#define ATH9K_ANI_FIRSTEP_LVL_NEW
Definition: ani.h:55
#define ATH9K_ANI_FIRSTEP_LVL_OLD
Definition: ani.h:54
#define ARRAY_SIZE(x)
Definition: efx_common.h:43
#define ATH9K_ANI_CCK_TRIG_LOW_OLD
Definition: ani.h:44
#define ATH9K_ANI_SPUR_IMMUNE_LVL_NEW
Definition: ani.h:52
#define ATH9K_ANI_OFDM_TRIG_HIGH_NEW
Definition: ani.h:33
u8 cckWeakSigThreshold
Definition: ani.h:129
static void ath9k_ani_restart(struct ath_hw *ah)
Definition: ath9k_ani.c:123
static int use_new_ani(struct ath_hw *ah)
Definition: ath9k_ani.c:108
#define ATH9K_ANI_OFDM_TRIG_HIGH_OLD
Definition: ani.h:32
struct ar5416AniState ani
Definition: hw.h:348
int ofdmsTurn
Definition: ani.h:124
#define ATH9K_ANI_PERIOD_OLD
Definition: ani.h:60
#define ATH9K_ANI_USE_OFDM_WEAK_SIG
Definition: ani.h:48
uint8_t ah
Definition: registers.h:85
#define ATH9K_ANI_ENABLE_MRC_CCK
Definition: ani.h:76
#define ATH9K_ANI_PERIOD_NEW
Definition: ani.h:61
#define ATH9K_ANI_POLLINTERVAL_OLD
Definition: ani.h:64
#define ATH9K_ANI_CCK_WEAK_SIG_THR
Definition: ani.h:49
#define ATH9K_ANI_SPUR_IMMUNE_LVL_OLD
Definition: ani.h:51
#define ATH9K_ANI_RSSI_THR_LOW
Definition: ani.h:58
#define DBG2(...)
Definition: compiler.h:515

References ah, ath9k_channel::ani, AR_SREV_9300_20_OR_LATER, ARRAY_SIZE, ATH9K_ANI_CCK_DEF_LEVEL, ATH9K_ANI_CCK_TRIG_HIGH_NEW, ATH9K_ANI_CCK_TRIG_HIGH_OLD, ATH9K_ANI_CCK_TRIG_LOW_NEW, ATH9K_ANI_CCK_TRIG_LOW_OLD, ATH9K_ANI_CCK_WEAK_SIG_THR, ATH9K_ANI_ENABLE_MRC_CCK, ATH9K_ANI_FIRSTEP_LVL_NEW, ATH9K_ANI_FIRSTEP_LVL_OLD, ATH9K_ANI_OFDM_TRIG_HIGH_NEW, ATH9K_ANI_OFDM_TRIG_HIGH_OLD, ATH9K_ANI_OFDM_TRIG_LOW_NEW, ATH9K_ANI_OFDM_TRIG_LOW_OLD, ATH9K_ANI_PERIOD_NEW, ATH9K_ANI_PERIOD_OLD, ATH9K_ANI_POLLINTERVAL_NEW, ATH9K_ANI_POLLINTERVAL_OLD, ath9k_ani_restart(), ATH9K_ANI_RSSI_THR_HIGH, ATH9K_ANI_RSSI_THR_LOW, ATH9K_ANI_SPUR_IMMUNE_LVL_NEW, ATH9K_ANI_SPUR_IMMUNE_LVL_OLD, ATH9K_ANI_USE_OFDM_WEAK_SIG, ar5416AniState::cckNoiseImmunityLevel, ar5416AniState::cckWeakSigThreshold, ath9k_channel::chan, DBG2, ar5416AniState::firstepLevel, HAL_PROCESS_ANI, ar5416AniState::mrcCCKOff, ar5416AniState::ofdmsTurn, ar5416AniState::ofdmWeakSigDetect, ar5416AniState::rssiThrHigh, ar5416AniState::rssiThrLow, ar5416AniState::spurImmunityLevel, and use_new_ani().

Referenced by ath9k_hw_post_init().

◆ ath9k_hw_get_ani_channel_idx()

int ath9k_hw_get_ani_channel_idx ( struct ath_hw ah,
struct ath9k_channel chan 
)