iPXE
ani.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008-2011 Atheros Communications Inc.
3  *
4  * Modified for iPXE by Scott K Logan <logans@cottsay.net> July 2011
5  * Original from Linux kernel 3.0.1
6  *
7  * Permission to use, copy, modify, and/or distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #ifndef ANI_H
21 #define ANI_H
22 
23 FILE_LICENCE ( BSD2 );
24 
25 #define HAL_PROCESS_ANI 0x00000001
26 
27 #define DO_ANI(ah) (((ah)->proc_phyerr & HAL_PROCESS_ANI) && ah->curchan)
28 
29 #define BEACON_RSSI(ahp) (ahp->stats.avgbrssi)
30 
31 /* units are errors per second */
32 #define ATH9K_ANI_OFDM_TRIG_HIGH_OLD 500
33 #define ATH9K_ANI_OFDM_TRIG_HIGH_NEW 1000
34 
35 /* units are errors per second */
36 #define ATH9K_ANI_OFDM_TRIG_LOW_OLD 200
37 #define ATH9K_ANI_OFDM_TRIG_LOW_NEW 400
38 
39 /* units are errors per second */
40 #define ATH9K_ANI_CCK_TRIG_HIGH_OLD 200
41 #define ATH9K_ANI_CCK_TRIG_HIGH_NEW 600
42 
43 /* units are errors per second */
44 #define ATH9K_ANI_CCK_TRIG_LOW_OLD 100
45 #define ATH9K_ANI_CCK_TRIG_LOW_NEW 300
46 
47 #define ATH9K_ANI_NOISE_IMMUNE_LVL 4
48 #define ATH9K_ANI_USE_OFDM_WEAK_SIG 1
49 #define ATH9K_ANI_CCK_WEAK_SIG_THR 0
50 
51 #define ATH9K_ANI_SPUR_IMMUNE_LVL_OLD 7
52 #define ATH9K_ANI_SPUR_IMMUNE_LVL_NEW 3
53 
54 #define ATH9K_ANI_FIRSTEP_LVL_OLD 0
55 #define ATH9K_ANI_FIRSTEP_LVL_NEW 2
56 
57 #define ATH9K_ANI_RSSI_THR_HIGH 40
58 #define ATH9K_ANI_RSSI_THR_LOW 7
59 
60 #define ATH9K_ANI_PERIOD_OLD 100
61 #define ATH9K_ANI_PERIOD_NEW 1000
62 
63 /* in ms */
64 #define ATH9K_ANI_POLLINTERVAL_OLD 100
65 #define ATH9K_ANI_POLLINTERVAL_NEW 1000
66 
67 #define HAL_NOISE_IMMUNE_MAX 4
68 #define HAL_SPUR_IMMUNE_MAX 7
69 #define HAL_FIRST_STEP_MAX 2
70 
71 #define ATH9K_SIG_FIRSTEP_SETTING_MIN 0
72 #define ATH9K_SIG_FIRSTEP_SETTING_MAX 20
73 #define ATH9K_SIG_SPUR_IMM_SETTING_MIN 0
74 #define ATH9K_SIG_SPUR_IMM_SETTING_MAX 22
75 
76 #define ATH9K_ANI_ENABLE_MRC_CCK 1
77 
78 /* values here are relative to the INI */
79 
90  ATH9K_ANI_ALL = 0xfff
91 };
92 
99 };
100 
101 /* INI default values for ANI registers */
117 };
118 
120  struct ath9k_channel *c;
140 };
141 
142 struct ar5416Stats {
160 };
161 #define ah_mibStats stats.ast_mibstats
162 
163 void ath9k_enable_mib_counters(struct ath_hw *ah);
165 void ath9k_hw_ani_setup(struct ath_hw *ah);
166 void ath9k_hw_ani_init(struct ath_hw *ah);
168  struct ath9k_channel *chan);
169 
170 #endif /* ANI_H */
uint16_t u16
Definition: stdint.h:21
u32 listenTime
Definition: ani.h:130
Definition: hw.h:656
u16 m1ThreshLow
Definition: ani.h:103
u32 ast_ani_ofdmerrs
Definition: ani.h:153
u8 spurImmunityLevel
Definition: ani.h:126
u32 noiseFloor
Definition: ani.h:133
u8 mrcCCKOff
Definition: ani.h:125
int ath9k_hw_get_ani_channel_idx(struct ath_hw *ah, struct ath9k_channel *chan)
int32_t rssiThrHigh
Definition: ani.h:132
u16 m2CountThrLow
Definition: ani.h:108
u16 m2CountThr
Definition: ani.h:107
u32 avgbrssi
Definition: ani.h:158
int32_t rssiThrLow
Definition: ani.h:131
u32 ast_ani_ccklow
Definition: ani.h:150
u32 ast_ani_ofdmon
Definition: ani.h:147
u32 ast_ani_stepup
Definition: ani.h:151
u16 m1ThreshExt
Definition: ani.h:111
u16 cycpwrThr1Ext
Definition: ani.h:116
u32 ast_ani_nidown
Definition: ani.h:144
u32 beacons
Definition: ani.h:98
u8 cckNoiseImmunityLevel
Definition: ani.h:123
u16 m2Thresh
Definition: ani.h:106
u32 rts_good
Definition: ani.h:96
u16 firstepLow
Definition: ani.h:114
u32 ast_ani_cckhigh
Definition: ani.h:149
FILE_LICENCE(BSD2)
u16 m1Thresh
Definition: ani.h:105
u32 rts_bad
Definition: ani.h:95
u8 ofdmWeakSigDetect
Definition: ani.h:128
u8 firstepLevel
Definition: ani.h:127
u32 ast_ani_stepdown
Definition: ani.h:152
void ath9k_hw_disable_mib_counters(struct ath_hw *ah)
u16 cycpwrThr1
Definition: ani.h:115
u32 ast_ani_cckerrs
Definition: ani.h:154
void ath9k_enable_mib_counters(struct ath_hw *ah)
u32 ast_ani_spurup
Definition: ani.h:145
u8 cckWeakSigThreshold
Definition: ani.h:129
u16 m2ThreshLowExt
Definition: ani.h:110
ath9k_ani_cmd
Definition: ani.h:80
signed int int32_t
Definition: stdint.h:17
u32 ackrcv_bad
Definition: ani.h:94
int16_t pktRssi[2]
Definition: ani.h:136
int ofdmsTurn
Definition: ani.h:124
int16_t cckErrRssi[2]
Definition: ani.h:138
u16 m1ThreshLowExt
Definition: ani.h:109
u32 ofdmPhyErrCount
Definition: ani.h:134
u32 fcs_bad
Definition: ani.h:97
u16 m2ThreshLow
Definition: ani.h:104
u32 ast_ani_ofdmoff
Definition: ani.h:148
u32 ast_ani_lneg
Definition: ani.h:157
void ath9k_hw_ani_init(struct ath_hw *ah)
Definition: ath9k_ani.c:664
uint8_t ah
Definition: registers.h:85
u32 ast_ani_lzero
Definition: ani.h:156
signed short int16_t
Definition: stdint.h:16
struct ath9k_mib_stats ast_mibstats
Definition: ani.h:159
u32 ast_ani_spurdown
Definition: ani.h:146
void ath9k_hw_ani_setup(struct ath_hw *ah)
Definition: ath9k_ani.c:647
u32 cckPhyErrCount
Definition: ani.h:135
struct ath9k_ani_default iniDef
Definition: ani.h:139
int16_t ofdmErrRssi[2]
Definition: ani.h:137
u16 m2ThreshExt
Definition: ani.h:112
u32 ast_ani_reset
Definition: ani.h:155
uint8_t u8
Definition: stdint.h:19
u8 noiseImmunityLevel
Definition: ani.h:121
u8 ofdmNoiseImmunityLevel
Definition: ani.h:122
u32 ast_ani_niup
Definition: ani.h:143
uint32_t u32
Definition: stdint.h:23
struct ath9k_channel * c
Definition: ani.h:120