Lines Matching full:rates
166 ratetbl = rcu_dereference(sta->rates); in ath_merge_ratetbl()
170 if (tx_info->control.rates[0].idx < 0 || in ath_merge_ratetbl()
171 tx_info->control.rates[0].count == 0) in ath_merge_ratetbl()
175 bf->rates[0] = tx_info->control.rates[0]; in ath_merge_ratetbl()
180 bf->rates[i].idx = ratetbl->rate[i].idx; in ath_merge_ratetbl()
181 bf->rates[i].flags = ratetbl->rate[i].flags; in ath_merge_ratetbl()
183 bf->rates[i].count = ratetbl->rate[i].count_rts; in ath_merge_ratetbl()
185 bf->rates[i].count = ratetbl->rate[i].count_cts; in ath_merge_ratetbl()
187 bf->rates[i].count = ratetbl->rate[i].count; in ath_merge_ratetbl()
201 ieee80211_get_tx_rates(vif, sta, bf->bf_mpdu, bf->rates, in ath_set_rates()
202 ARRAY_SIZE(bf->rates)); in ath_set_rates()
496 struct ieee80211_tx_rate rates[4]; in ath_tx_complete_aggr() local
506 memcpy(rates, bf->rates, sizeof(rates)); in ath_tx_complete_aggr()
510 retries += rates[i].count; in ath_tx_complete_aggr()
620 memcpy(tx_info->control.rates, rates, sizeof(rates)); in ath_tx_complete_aggr()
716 airtime += rate_dur * bf->rates[i].count; in ath_tx_count_airtime()
757 memcpy(info->control.rates, bf->rates, in ath_tx_process_buffer()
758 sizeof(info->control.rates)); in ath_tx_process_buffer()
775 struct ieee80211_tx_rate *rates; in ath_lookup_legacy() local
780 rates = tx_info->control.rates; in ath_lookup_legacy()
783 if (!rates[i].count || rates[i].idx < 0) in ath_lookup_legacy()
786 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) in ath_lookup_legacy()
798 struct ieee80211_tx_rate *rates; in ath_lookup_rate() local
806 rates = bf->rates; in ath_lookup_rate()
817 if (!rates[i].count) in ath_lookup_rate()
820 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) { in ath_lookup_rate()
825 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ath_lookup_rate()
830 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI) in ath_lookup_rate()
833 frmlen = sc->tx.max_aggr_framelen[q][modeidx][rates[i].idx]; in ath_lookup_rate()
882 * The hardware can keep up at lower rates, but not higher rates in ath_compute_num_delims()
909 rix = bf->rates[0].idx; in ath_compute_num_delims()
910 flags = bf->rates[0].flags; in ath_compute_num_delims()
1252 struct ieee80211_tx_rate *rates; in ath_buf_set_rate() local
1262 rates = bf->rates; in ath_buf_set_rate()
1269 for (i = 0; i < ARRAY_SIZE(bf->rates); i++) { in ath_buf_set_rate()
1273 if (!rates[i].count || (rates[i].idx < 0)) in ath_buf_set_rate()
1276 rix = rates[i].idx; in ath_buf_set_rate()
1277 info->rates[i].Tries = rates[i].count; in ath_buf_set_rate()
1283 (rates[i].flags & IEEE80211_TX_RC_MCS) && in ath_buf_set_rate()
1289 if (rts || rates[i].flags & IEEE80211_TX_RC_USE_RTS_CTS) { in ath_buf_set_rate()
1290 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS; in ath_buf_set_rate()
1292 } else if (rates[i].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { in ath_buf_set_rate()
1293 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS; in ath_buf_set_rate()
1297 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ath_buf_set_rate()
1298 info->rates[i].RateFlags |= ATH9K_RATESERIES_2040; in ath_buf_set_rate()
1299 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI) in ath_buf_set_rate()
1300 info->rates[i].RateFlags |= ATH9K_RATESERIES_HALFGI; in ath_buf_set_rate()
1302 is_sgi = !!(rates[i].flags & IEEE80211_TX_RC_SHORT_GI); in ath_buf_set_rate()
1303 is_40 = !!(rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH); in ath_buf_set_rate()
1304 is_sp = !!(rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE); in ath_buf_set_rate()
1306 if (rates[i].flags & IEEE80211_TX_RC_MCS) { in ath_buf_set_rate()
1307 /* MCS rates */ in ath_buf_set_rate()
1308 info->rates[i].Rate = rix | 0x80; in ath_buf_set_rate()
1309 info->rates[i].ChSel = ath_txchainmask_reduction(sc, in ath_buf_set_rate()
1310 ah->txchainmask, info->rates[i].Rate); in ath_buf_set_rate()
1311 info->rates[i].PktDuration = ath_pkt_duration(sc, rix, len, in ath_buf_set_rate()
1314 info->rates[i].RateFlags |= ATH9K_RATESERIES_STBC; in ath_buf_set_rate()
1316 info->rates[i].RateFlags |= in ath_buf_set_rate()
1326 /* legacy rates */ in ath_buf_set_rate()
1327 rate = &common->sbands[tx_info->band].bitrates[rates[i].idx]; in ath_buf_set_rate()
1334 info->rates[i].Rate = rate->hw_value; in ath_buf_set_rate()
1336 if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) in ath_buf_set_rate()
1337 info->rates[i].Rate |= rate->hw_value_short; in ath_buf_set_rate()
1343 info->rates[i].ChSel = ah->txchainmask; in ath_buf_set_rate()
1345 info->rates[i].ChSel = ath_txchainmask_reduction(sc, in ath_buf_set_rate()
1346 ah->txchainmask, info->rates[i].Rate); in ath_buf_set_rate()
1348 info->rates[i].PktDuration = ath9k_hw_computetxtime(sc->sc_ah, in ath_buf_set_rate()
1351 is_cck = IS_CCK_RATE(info->rates[i].Rate); in ath_buf_set_rate()
2412 duration += info.rates[0].PktDuration; in ath_tx_cabq()
2549 memset(ptr + sizeof(tx_info->status.rates), 0, in ath_clear_tx_status()
2551 sizeof(tx_info->status.rates) - in ath_clear_tx_status()
2582 tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1; in ath_tx_rc_status()
2585 tx_info->status.rates[i].count = 0; in ath_tx_rc_status()
2586 tx_info->status.rates[i].idx = -1; in ath_tx_rc_status()
2600 * successfully by eventually preferring slower rates. in ath_tx_rc_status()
2607 tx_info->status.rates[tx_rateindex].count = in ath_tx_rc_status()