Lines Matching full:rates

171 	ratetbl = rcu_dereference(sta->rates);  in ath_merge_ratetbl()
175 if (tx_info->control.rates[0].idx < 0 || in ath_merge_ratetbl()
176 tx_info->control.rates[0].count == 0) in ath_merge_ratetbl()
180 bf->rates[0] = tx_info->control.rates[0]; in ath_merge_ratetbl()
185 bf->rates[i].idx = ratetbl->rate[i].idx; in ath_merge_ratetbl()
186 bf->rates[i].flags = ratetbl->rate[i].flags; in ath_merge_ratetbl()
188 bf->rates[i].count = ratetbl->rate[i].count_rts; in ath_merge_ratetbl()
190 bf->rates[i].count = ratetbl->rate[i].count_cts; in ath_merge_ratetbl()
192 bf->rates[i].count = ratetbl->rate[i].count; in ath_merge_ratetbl()
206 ieee80211_get_tx_rates(vif, sta, bf->bf_mpdu, bf->rates, in ath_set_rates()
207 ARRAY_SIZE(bf->rates)); in ath_set_rates()
499 struct ieee80211_tx_rate rates[4]; in ath_tx_complete_aggr() local
509 memcpy(rates, bf->rates, sizeof(rates)); in ath_tx_complete_aggr()
513 retries += rates[i].count; in ath_tx_complete_aggr()
623 memcpy(tx_info->control.rates, rates, sizeof(rates)); in ath_tx_complete_aggr()
719 airtime += rate_dur * bf->rates[i].count; in ath_tx_count_airtime()
760 memcpy(info->control.rates, bf->rates, in ath_tx_process_buffer()
761 sizeof(info->control.rates)); in ath_tx_process_buffer()
778 struct ieee80211_tx_rate *rates; in ath_lookup_legacy() local
783 rates = tx_info->control.rates; in ath_lookup_legacy()
786 if (!rates[i].count || rates[i].idx < 0) in ath_lookup_legacy()
789 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) in ath_lookup_legacy()
801 struct ieee80211_tx_rate *rates; in ath_lookup_rate() local
809 rates = bf->rates; in ath_lookup_rate()
820 if (!rates[i].count) in ath_lookup_rate()
823 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) { in ath_lookup_rate()
828 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ath_lookup_rate()
833 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI) in ath_lookup_rate()
836 frmlen = sc->tx.max_aggr_framelen[q][modeidx][rates[i].idx]; in ath_lookup_rate()
885 * The hardware can keep up at lower rates, but not higher rates in ath_compute_num_delims()
912 rix = bf->rates[0].idx; in ath_compute_num_delims()
913 flags = bf->rates[0].flags; in ath_compute_num_delims()
1267 struct ieee80211_tx_rate *rates; in ath_buf_set_rate() local
1277 rates = bf->rates; in ath_buf_set_rate()
1284 for (i = 0; i < ARRAY_SIZE(bf->rates); i++) { in ath_buf_set_rate()
1288 if (!rates[i].count || (rates[i].idx < 0)) in ath_buf_set_rate()
1291 rix = rates[i].idx; in ath_buf_set_rate()
1292 info->rates[i].Tries = rates[i].count; in ath_buf_set_rate()
1298 (rates[i].flags & IEEE80211_TX_RC_MCS) && in ath_buf_set_rate()
1304 if (rts || rates[i].flags & IEEE80211_TX_RC_USE_RTS_CTS) { in ath_buf_set_rate()
1305 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS; in ath_buf_set_rate()
1307 } else if (rates[i].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { in ath_buf_set_rate()
1308 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS; in ath_buf_set_rate()
1312 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ath_buf_set_rate()
1313 info->rates[i].RateFlags |= ATH9K_RATESERIES_2040; in ath_buf_set_rate()
1314 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI) in ath_buf_set_rate()
1315 info->rates[i].RateFlags |= ATH9K_RATESERIES_HALFGI; in ath_buf_set_rate()
1317 is_sgi = !!(rates[i].flags & IEEE80211_TX_RC_SHORT_GI); in ath_buf_set_rate()
1318 is_40 = !!(rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH); in ath_buf_set_rate()
1319 is_sp = !!(rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE); in ath_buf_set_rate()
1321 if (rates[i].flags & IEEE80211_TX_RC_MCS) { in ath_buf_set_rate()
1322 /* MCS rates */ in ath_buf_set_rate()
1323 info->rates[i].Rate = rix | 0x80; in ath_buf_set_rate()
1324 info->rates[i].ChSel = ath_txchainmask_reduction(sc, in ath_buf_set_rate()
1325 ah->txchainmask, info->rates[i].Rate); in ath_buf_set_rate()
1326 info->rates[i].PktDuration = ath_pkt_duration(rix, len, in ath_buf_set_rate()
1329 info->rates[i].RateFlags |= ATH9K_RATESERIES_STBC; in ath_buf_set_rate()
1331 info->rates[i].RateFlags |= in ath_buf_set_rate()
1341 /* legacy rates */ in ath_buf_set_rate()
1342 rate = &common->sbands[tx_info->band].bitrates[rates[i].idx]; in ath_buf_set_rate()
1349 info->rates[i].Rate = rate->hw_value; in ath_buf_set_rate()
1351 if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) in ath_buf_set_rate()
1352 info->rates[i].Rate |= rate->hw_value_short; in ath_buf_set_rate()
1358 info->rates[i].ChSel = ah->txchainmask; in ath_buf_set_rate()
1360 info->rates[i].ChSel = ath_txchainmask_reduction(sc, in ath_buf_set_rate()
1361 ah->txchainmask, info->rates[i].Rate); in ath_buf_set_rate()
1363 info->rates[i].PktDuration = ath9k_hw_computetxtime(sc->sc_ah, in ath_buf_set_rate()
1366 is_cck = IS_CCK_RATE(info->rates[i].Rate); in ath_buf_set_rate()
2431 duration += info.rates[0].PktDuration; in ath_tx_cabq()
2568 memset(ptr + sizeof(tx_info->status.rates), 0, in ath_clear_tx_status()
2570 sizeof(tx_info->status.rates) - in ath_clear_tx_status()
2601 tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1; in ath_tx_rc_status()
2604 tx_info->status.rates[i].count = 0; in ath_tx_rc_status()
2605 tx_info->status.rates[i].idx = -1; in ath_tx_rc_status()
2619 * successfully by eventually preferring slower rates. in ath_tx_rc_status()
2626 tx_info->status.rates[tx_rateindex].count = in ath_tx_rc_status()