Lines Matching refs:amn
120 struct amrr_node *amn = ATH_NODE_AMRR(an); in ath_rate_findrate() local
122 *rix = amn->amn_tx_rix0; in ath_rate_findrate()
123 *try0 = amn->amn_tx_try0; in ath_rate_findrate()
125 *txrate = amn->amn_tx_rate0sp; in ath_rate_findrate()
127 *txrate = amn->amn_tx_rate0; in ath_rate_findrate()
134 struct amrr_node *amn = ATH_NODE_AMRR(an); in ath_rate_setupxtxdesc() local
137 , amn->amn_tx_rate1sp, amn->amn_tx_try1 /* series 1 */ in ath_rate_setupxtxdesc()
138 , amn->amn_tx_rate2sp, amn->amn_tx_try2 /* series 2 */ in ath_rate_setupxtxdesc()
139 , amn->amn_tx_rate3sp, amn->amn_tx_try3 /* series 3 */ in ath_rate_setupxtxdesc()
147 struct amrr_node *amn = ATH_NODE_AMRR(an); in ath_rate_tx_complete() local
152 amn->amn_tx_try0_cnt++; in ath_rate_tx_complete()
154 amn->amn_tx_try1_cnt++; in ath_rate_tx_complete()
156 amn->amn_tx_try1_cnt++; in ath_rate_tx_complete()
157 amn->amn_tx_try2_cnt++; in ath_rate_tx_complete()
159 amn->amn_tx_try1_cnt++; in ath_rate_tx_complete()
160 amn->amn_tx_try2_cnt++; in ath_rate_tx_complete()
161 amn->amn_tx_try3_cnt++; in ath_rate_tx_complete()
163 amn->amn_tx_try1_cnt++; in ath_rate_tx_complete()
164 amn->amn_tx_try2_cnt++; in ath_rate_tx_complete()
165 amn->amn_tx_try3_cnt++; in ath_rate_tx_complete()
166 amn->amn_tx_failure_cnt++; in ath_rate_tx_complete()
178 node_reset (struct amrr_node *amn) in node_reset() argument
180 amn->amn_tx_try0_cnt = 0; in node_reset()
181 amn->amn_tx_try1_cnt = 0; in node_reset()
182 amn->amn_tx_try2_cnt = 0; in node_reset()
183 amn->amn_tx_try3_cnt = 0; in node_reset()
184 amn->amn_tx_failure_cnt = 0; in node_reset()
185 amn->amn_success = 0; in node_reset()
186 amn->amn_recovery = 0; in node_reset()
187 amn->amn_success_threshold = ath_rate_min_success_threshold; in node_reset()
201 struct amrr_node *amn = ATH_NODE_AMRR(an); in ath_rate_update() local
221 amn->amn_tx_rix0 = sc->sc_rixmap[ in ath_rate_update()
223 amn->amn_tx_rate0 = rt->info[amn->amn_tx_rix0].rateCode; in ath_rate_update()
224 amn->amn_tx_rate0sp = amn->amn_tx_rate0 | in ath_rate_update()
225 rt->info[amn->amn_tx_rix0].shortPreamble; in ath_rate_update()
227 amn->amn_tx_try0 = 1; in ath_rate_update()
228 amn->amn_tx_try1 = 1; in ath_rate_update()
229 amn->amn_tx_try2 = 1; in ath_rate_update()
230 amn->amn_tx_try3 = 1; in ath_rate_update()
234 amn->amn_tx_rate1 = rt->info[rix].rateCode; in ath_rate_update()
235 amn->amn_tx_rate1sp = amn->amn_tx_rate1 | in ath_rate_update()
238 amn->amn_tx_rate1 = amn->amn_tx_rate1sp = 0; in ath_rate_update()
243 amn->amn_tx_rate2 = rt->info[rix].rateCode; in ath_rate_update()
244 amn->amn_tx_rate2sp = amn->amn_tx_rate2 | in ath_rate_update()
247 amn->amn_tx_rate2 = amn->amn_tx_rate2sp = 0; in ath_rate_update()
251 amn->amn_tx_rate3 = rt->info[0].rateCode; in ath_rate_update()
252 amn->amn_tx_rate3sp = in ath_rate_update()
255 amn->amn_tx_rate3 = amn->amn_tx_rate3sp = 0; in ath_rate_update()
258 amn->amn_tx_try0 = ATH_TXMAXTRY; in ath_rate_update()
262 amn->amn_tx_try1 = 0; in ath_rate_update()
263 amn->amn_tx_try2 = 0; in ath_rate_update()
264 amn->amn_tx_try3 = 0; in ath_rate_update()
265 amn->amn_tx_rate1 = amn->amn_tx_rate1sp = 0; in ath_rate_update()
266 amn->amn_tx_rate2 = amn->amn_tx_rate2sp = 0; in ath_rate_update()
267 amn->amn_tx_rate3 = amn->amn_tx_rate3sp = 0; in ath_rate_update()
270 node_reset (amn); in ath_rate_update()
388 struct amrr_node *amn = ATH_NODE_AMRR(ATH_NODE (ni)); in ath_rate_ctl() local
391 #define is_success(amn) \ in ath_rate_ctl() argument
392 (amn->amn_tx_try1_cnt < (amn->amn_tx_try0_cnt/10)) in ath_rate_ctl()
393 #define is_enough(amn) \ in ath_rate_ctl() argument
394 (amn->amn_tx_try0_cnt > 10) in ath_rate_ctl()
395 #define is_failure(amn) \ in ath_rate_ctl() argument
396 (amn->amn_tx_try1_cnt > (amn->amn_tx_try0_cnt/3)) in ath_rate_ctl()
405 amn->amn_tx_try0_cnt, in ath_rate_ctl()
406 amn->amn_tx_try1_cnt, in ath_rate_ctl()
407 amn->amn_tx_try2_cnt, in ath_rate_ctl()
408 amn->amn_tx_try3_cnt, in ath_rate_ctl()
409 amn->amn_success_threshold); in ath_rate_ctl()
410 if (is_success (amn) && is_enough (amn)) { in ath_rate_ctl()
411 amn->amn_success++; in ath_rate_ctl()
412 if (amn->amn_success == amn->amn_success_threshold && in ath_rate_ctl()
414 amn->amn_recovery = 1; in ath_rate_ctl()
415 amn->amn_success = 0; in ath_rate_ctl()
419 amn->amn_recovery = 0; in ath_rate_ctl()
421 } else if (is_failure (amn)) { in ath_rate_ctl()
422 amn->amn_success = 0; in ath_rate_ctl()
424 if (amn->amn_recovery) { in ath_rate_ctl()
426 amn->amn_success_threshold *= 2; in ath_rate_ctl()
427 amn->amn_success_threshold = min (amn->amn_success_threshold, in ath_rate_ctl()
429 DPRINTF (sc, "decrease rate recovery thr: %d\n", amn->amn_success_threshold); in ath_rate_ctl()
432 amn->amn_success_threshold = ath_rate_min_success_threshold; in ath_rate_ctl()
433 DPRINTF (sc, "decrease rate normal thr: %d\n", amn->amn_success_threshold); in ath_rate_ctl()
435 amn->amn_recovery = 0; in ath_rate_ctl()
438 amn->amn_recovery = 0; in ath_rate_ctl()
442 if (is_enough (amn) || old_rate != ni->ni_txrate) { in ath_rate_ctl()
444 amn->amn_tx_try0_cnt = 0; in ath_rate_ctl()
445 amn->amn_tx_try1_cnt = 0; in ath_rate_ctl()
446 amn->amn_tx_try2_cnt = 0; in ath_rate_ctl()
447 amn->amn_tx_try3_cnt = 0; in ath_rate_ctl()
448 amn->amn_tx_failure_cnt = 0; in ath_rate_ctl()