iPXE
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)
#define BEACON_RSSI(ahp)
#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)
 FILE_SECBOOT (FORBIDDEN)
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 26 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ DO_ANI

#define DO_ANI ( ah)
Value:
(((ah)->proc_phyerr & HAL_PROCESS_ANI) && ah->curchan)
#define HAL_PROCESS_ANI
Definition ani.h:26
uint8_t ah
Definition registers.h:1

Definition at line 28 of file ani.h.

Referenced by ath9k_ani_reset(), ath9k_ani_reset_old(), ath9k_ani_restart(), ath9k_hw_ani_cck_err_trigger(), ath9k_hw_ani_monitor(), and ath9k_hw_ani_ofdm_err_trigger().

◆ BEACON_RSSI

#define BEACON_RSSI ( ahp)

◆ ATH9K_ANI_OFDM_TRIG_HIGH_OLD

#define ATH9K_ANI_OFDM_TRIG_HIGH_OLD   500

Definition at line 33 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_OFDM_TRIG_HIGH_NEW

#define ATH9K_ANI_OFDM_TRIG_HIGH_NEW   1000

Definition at line 34 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_OFDM_TRIG_LOW_OLD

#define ATH9K_ANI_OFDM_TRIG_LOW_OLD   200

Definition at line 37 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_OFDM_TRIG_LOW_NEW

#define ATH9K_ANI_OFDM_TRIG_LOW_NEW   400

Definition at line 38 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_CCK_TRIG_HIGH_OLD

#define ATH9K_ANI_CCK_TRIG_HIGH_OLD   200

Definition at line 41 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_CCK_TRIG_HIGH_NEW

#define ATH9K_ANI_CCK_TRIG_HIGH_NEW   600

Definition at line 42 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_CCK_TRIG_LOW_OLD

#define ATH9K_ANI_CCK_TRIG_LOW_OLD   100

Definition at line 45 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_CCK_TRIG_LOW_NEW

#define ATH9K_ANI_CCK_TRIG_LOW_NEW   300

Definition at line 46 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_NOISE_IMMUNE_LVL

#define ATH9K_ANI_NOISE_IMMUNE_LVL   4

Definition at line 48 of file ani.h.

◆ ATH9K_ANI_USE_OFDM_WEAK_SIG

#define ATH9K_ANI_USE_OFDM_WEAK_SIG   1

◆ ATH9K_ANI_CCK_WEAK_SIG_THR

#define ATH9K_ANI_CCK_WEAK_SIG_THR   0

Definition at line 50 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_SPUR_IMMUNE_LVL_OLD

#define ATH9K_ANI_SPUR_IMMUNE_LVL_OLD   7

Definition at line 52 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_SPUR_IMMUNE_LVL_NEW

#define ATH9K_ANI_SPUR_IMMUNE_LVL_NEW   3

◆ ATH9K_ANI_FIRSTEP_LVL_OLD

#define ATH9K_ANI_FIRSTEP_LVL_OLD   0

Definition at line 55 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_FIRSTEP_LVL_NEW

#define ATH9K_ANI_FIRSTEP_LVL_NEW   2

◆ ATH9K_ANI_RSSI_THR_HIGH

#define ATH9K_ANI_RSSI_THR_HIGH   40

Definition at line 58 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_RSSI_THR_LOW

#define ATH9K_ANI_RSSI_THR_LOW   7

Definition at line 59 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_PERIOD_OLD

#define ATH9K_ANI_PERIOD_OLD   100

Definition at line 61 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_PERIOD_NEW

#define ATH9K_ANI_PERIOD_NEW   1000

Definition at line 62 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_POLLINTERVAL_OLD

#define ATH9K_ANI_POLLINTERVAL_OLD   100

Definition at line 65 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ ATH9K_ANI_POLLINTERVAL_NEW

#define ATH9K_ANI_POLLINTERVAL_NEW   1000

Definition at line 66 of file ani.h.

Referenced by ath9k_hw_ani_init().

◆ HAL_NOISE_IMMUNE_MAX

#define HAL_NOISE_IMMUNE_MAX   4

Definition at line 68 of file ani.h.

Referenced by ath9k_hw_ani_cck_err_trigger_old(), and ath9k_hw_ani_ofdm_err_trigger_old().

◆ HAL_SPUR_IMMUNE_MAX

#define HAL_SPUR_IMMUNE_MAX   7

Definition at line 69 of file ani.h.

Referenced by ath9k_hw_ani_ofdm_err_trigger_old().

◆ HAL_FIRST_STEP_MAX

#define HAL_FIRST_STEP_MAX   2

Definition at line 70 of file ani.h.

Referenced by ath9k_hw_ani_cck_err_trigger_old(), and ath9k_hw_ani_ofdm_err_trigger_old().

◆ ATH9K_SIG_FIRSTEP_SETTING_MIN

#define ATH9K_SIG_FIRSTEP_SETTING_MIN   0

Definition at line 72 of file ani.h.

Referenced by ar5008_hw_ani_control_new(), and ar9003_hw_ani_control().

◆ ATH9K_SIG_FIRSTEP_SETTING_MAX

#define ATH9K_SIG_FIRSTEP_SETTING_MAX   20

Definition at line 73 of file ani.h.

Referenced by ar5008_hw_ani_control_new(), and ar9003_hw_ani_control().

◆ ATH9K_SIG_SPUR_IMM_SETTING_MIN

#define ATH9K_SIG_SPUR_IMM_SETTING_MIN   0

Definition at line 74 of file ani.h.

Referenced by ar5008_hw_ani_control_new(), and ar9003_hw_ani_control().

◆ ATH9K_SIG_SPUR_IMM_SETTING_MAX

#define ATH9K_SIG_SPUR_IMM_SETTING_MAX   22

Definition at line 75 of file ani.h.

Referenced by ar5008_hw_ani_control_new(), and ar9003_hw_ani_control().

◆ ATH9K_ANI_ENABLE_MRC_CCK

#define ATH9K_ANI_ENABLE_MRC_CCK   1

Definition at line 77 of file ani.h.

Referenced by ar9003_hw_ani_cache_ini_regs(), and ath9k_hw_ani_init().

◆ ah_mibStats

#define ah_mibStats   stats.ast_mibstats

Definition at line 162 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 81 of file ani.h.

81 {
88 ATH9K_ANI_MODE = 0x40,
90 ATH9K_ANI_MRC_CCK = 0x100,
91 ATH9K_ANI_ALL = 0xfff
92};
@ ATH9K_ANI_NOISE_IMMUNITY_LEVEL
Definition ani.h:83
@ ATH9K_ANI_FIRSTEP_LEVEL
Definition ani.h:86
@ ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION
Definition ani.h:84
@ ATH9K_ANI_PRESENT
Definition ani.h:82
@ ATH9K_ANI_PHYERR_RESET
Definition ani.h:89
@ ATH9K_ANI_ALL
Definition ani.h:91
@ ATH9K_ANI_CCK_WEAK_SIGNAL_THR
Definition ani.h:85
@ ATH9K_ANI_MODE
Definition ani.h:88
@ ATH9K_ANI_SPUR_IMMUNITY_LEVEL
Definition ani.h:87
@ ATH9K_ANI_MRC_CCK
Definition ani.h:90

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2 )

◆ FILE_SECBOOT()

FILE_SECBOOT ( FORBIDDEN )

◆ ath9k_enable_mib_counters()

void ath9k_enable_mib_counters ( struct ath_hw * ah)

References ah.

◆ ath9k_hw_disable_mib_counters()

void ath9k_hw_disable_mib_counters ( struct ath_hw * ah)

References ah.

◆ ath9k_hw_ani_setup()

void ath9k_hw_ani_setup ( struct ath_hw * ah)

Definition at line 649 of file ath9k_ani.c.

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

References ah.

Referenced by ath9k_hw_post_init().

◆ ath9k_hw_ani_init()

void ath9k_hw_ani_init ( struct ath_hw * ah)

Definition at line 666 of file ath9k_ani.c.

667{
668 unsigned int i;
669
670 DBG2("ath9k: Initialize ANI\n");
671
672 if (use_new_ani(ah)) {
673 ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_NEW;
674 ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_NEW;
675
676 ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH_NEW;
677 ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW_NEW;
678 } else {
679 ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_OLD;
680 ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_OLD;
681
682 ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH_OLD;
683 ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW_OLD;
684 }
685
686 for (i = 0; i < ARRAY_SIZE(ah->channels); i++) {
687 struct ath9k_channel *chan = &ah->channels[i];
688 struct ar5416AniState *ani = &chan->ani;
689
690 if (use_new_ani(ah)) {
691 ani->spurImmunityLevel =
693
695
697 ani->mrcCCKOff =
699 else
700 ani->mrcCCKOff = 1;
701
702 ani->ofdmsTurn = 1;
703 } else {
704 ani->spurImmunityLevel =
707
710 }
711
714 ani->ofdmWeakSigDetect =
717 }
718
719 /*
720 * since we expect some ongoing maintenance on the tables, let's sanity
721 * check here default level should not modify INI setting.
722 */
723 if (use_new_ani(ah)) {
724 ah->aniperiod = ATH9K_ANI_PERIOD_NEW;
725 ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL_NEW;
726 } else {
727 ah->aniperiod = ATH9K_ANI_PERIOD_OLD;
728 ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL_OLD;
729 }
730
731 if (ah->config.enable_ani)
732 ah->proc_phyerr |= HAL_PROCESS_ANI;
733
735}
#define ATH9K_ANI_CCK_TRIG_LOW_OLD
Definition ani.h:45
#define ATH9K_ANI_OFDM_TRIG_LOW_NEW
Definition ani.h:38
#define ATH9K_ANI_SPUR_IMMUNE_LVL_OLD
Definition ani.h:52
#define ATH9K_ANI_RSSI_THR_LOW
Definition ani.h:59
#define ATH9K_ANI_OFDM_TRIG_HIGH_OLD
Definition ani.h:33
#define ATH9K_ANI_ENABLE_MRC_CCK
Definition ani.h:77
#define ATH9K_ANI_CCK_TRIG_HIGH_OLD
Definition ani.h:41
#define ATH9K_ANI_RSSI_THR_HIGH
Definition ani.h:58
#define ATH9K_ANI_POLLINTERVAL_NEW
Definition ani.h:66
#define ATH9K_ANI_POLLINTERVAL_OLD
Definition ani.h:65
#define ATH9K_ANI_SPUR_IMMUNE_LVL_NEW
Definition ani.h:53
#define ATH9K_ANI_CCK_TRIG_LOW_NEW
Definition ani.h:46
#define ATH9K_ANI_USE_OFDM_WEAK_SIG
Definition ani.h:49
#define ATH9K_ANI_OFDM_TRIG_HIGH_NEW
Definition ani.h:34
#define ATH9K_ANI_FIRSTEP_LVL_NEW
Definition ani.h:56
#define ATH9K_ANI_OFDM_TRIG_LOW_OLD
Definition ani.h:37
#define ATH9K_ANI_PERIOD_OLD
Definition ani.h:61
#define ATH9K_ANI_PERIOD_NEW
Definition ani.h:62
#define ATH9K_ANI_FIRSTEP_LVL_OLD
Definition ani.h:55
#define ATH9K_ANI_CCK_TRIG_HIGH_NEW
Definition ani.h:42
#define ATH9K_ANI_CCK_WEAK_SIG_THR
Definition ani.h:50
#define AR_SREV_9300_20_OR_LATER(_ah)
Definition reg.h:865
#define ATH9K_ANI_CCK_DEF_LEVEL
Definition ath9k_ani.c:107
static int use_new_ani(struct ath_hw *ah)
Definition ath9k_ani.c:110
static void ath9k_ani_restart(struct ath_hw *ah)
Definition ath9k_ani.c:125
#define ARRAY_SIZE(x)
Definition efx_common.h:43
#define DBG2(...)
Definition compiler.h:515
u8 cckWeakSigThreshold
Definition ani.h:130
int32_t rssiThrHigh
Definition ani.h:133
u8 firstepLevel
Definition ani.h:128
u8 cckNoiseImmunityLevel
Definition ani.h:124
int32_t rssiThrLow
Definition ani.h:132
int ofdmsTurn
Definition ani.h:125
u8 spurImmunityLevel
Definition ani.h:127
u8 ofdmWeakSigDetect
Definition ani.h:129
u8 mrcCCKOff
Definition ani.h:126
struct ar5416AniState ani
Definition hw.h:349
struct net80211_channel * chan
Definition hw.h:348

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 )

References ah.