Lines Matching full:rates

172 	ratetbl = rcu_dereference(sta->rates);  in ath_merge_ratetbl()
176 if (tx_info->control.rates[0].idx < 0 || in ath_merge_ratetbl()
177 tx_info->control.rates[0].count == 0) in ath_merge_ratetbl()
181 bf->rates[0] = tx_info->control.rates[0]; in ath_merge_ratetbl()
186 bf->rates[i].idx = ratetbl->rate[i].idx; in ath_merge_ratetbl()
187 bf->rates[i].flags = ratetbl->rate[i].flags; in ath_merge_ratetbl()
189 bf->rates[i].count = ratetbl->rate[i].count_rts; in ath_merge_ratetbl()
191 bf->rates[i].count = ratetbl->rate[i].count_cts; in ath_merge_ratetbl()
193 bf->rates[i].count = ratetbl->rate[i].count; in ath_merge_ratetbl()
207 ieee80211_get_tx_rates(vif, sta, bf->bf_mpdu, bf->rates, in ath_set_rates()
208 ARRAY_SIZE(bf->rates)); in ath_set_rates()
504 struct ieee80211_tx_rate rates[4]; in ath_tx_complete_aggr() local
514 memcpy(rates, bf->rates, sizeof(rates)); in ath_tx_complete_aggr()
518 retries += rates[i].count; in ath_tx_complete_aggr()
628 memcpy(tx_info->control.rates, rates, sizeof(rates)); in ath_tx_complete_aggr()
724 airtime += rate_dur * bf->rates[i].count; in ath_tx_count_airtime()
765 memcpy(info->control.rates, bf->rates, in ath_tx_process_buffer()
766 sizeof(info->control.rates)); in ath_tx_process_buffer()
783 struct ieee80211_tx_rate *rates; in ath_lookup_legacy() local
788 rates = tx_info->control.rates; in ath_lookup_legacy()
791 if (!rates[i].count || rates[i].idx < 0) in ath_lookup_legacy()
794 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) in ath_lookup_legacy()
806 struct ieee80211_tx_rate *rates; in ath_lookup_rate() local
814 rates = bf->rates; in ath_lookup_rate()
825 if (!rates[i].count) in ath_lookup_rate()
828 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) { in ath_lookup_rate()
833 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ath_lookup_rate()
838 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI) in ath_lookup_rate()
841 frmlen = sc->tx.max_aggr_framelen[q][modeidx][rates[i].idx]; in ath_lookup_rate()
890 * The hardware can keep up at lower rates, but not higher rates in ath_compute_num_delims()
917 rix = bf->rates[0].idx; in ath_compute_num_delims()
918 flags = bf->rates[0].flags; in ath_compute_num_delims()
1272 struct ieee80211_tx_rate *rates; in ath_buf_set_rate() local
1282 rates = bf->rates; in ath_buf_set_rate()
1289 for (i = 0; i < ARRAY_SIZE(bf->rates); i++) { in ath_buf_set_rate()
1293 if (!rates[i].count || (rates[i].idx < 0)) in ath_buf_set_rate()
1296 rix = rates[i].idx; in ath_buf_set_rate()
1297 info->rates[i].Tries = rates[i].count; in ath_buf_set_rate()
1303 (rates[i].flags & IEEE80211_TX_RC_MCS) && in ath_buf_set_rate()
1309 if (rts || rates[i].flags & IEEE80211_TX_RC_USE_RTS_CTS) { in ath_buf_set_rate()
1310 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS; in ath_buf_set_rate()
1312 } else if (rates[i].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) { in ath_buf_set_rate()
1313 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS; in ath_buf_set_rate()
1317 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH) in ath_buf_set_rate()
1318 info->rates[i].RateFlags |= ATH9K_RATESERIES_2040; in ath_buf_set_rate()
1319 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI) in ath_buf_set_rate()
1320 info->rates[i].RateFlags |= ATH9K_RATESERIES_HALFGI; in ath_buf_set_rate()
1322 is_sgi = !!(rates[i].flags & IEEE80211_TX_RC_SHORT_GI); in ath_buf_set_rate()
1323 is_40 = !!(rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH); in ath_buf_set_rate()
1324 is_sp = !!(rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE); in ath_buf_set_rate()
1326 if (rates[i].flags & IEEE80211_TX_RC_MCS) { in ath_buf_set_rate()
1327 /* MCS rates */ in ath_buf_set_rate()
1328 info->rates[i].Rate = rix | 0x80; in ath_buf_set_rate()
1329 info->rates[i].ChSel = ath_txchainmask_reduction(sc, in ath_buf_set_rate()
1330 ah->txchainmask, info->rates[i].Rate); in ath_buf_set_rate()
1331 info->rates[i].PktDuration = ath_pkt_duration(sc, rix, len, in ath_buf_set_rate()
1334 info->rates[i].RateFlags |= ATH9K_RATESERIES_STBC; in ath_buf_set_rate()
1336 info->rates[i].RateFlags |= in ath_buf_set_rate()
1346 /* legacy rates */ in ath_buf_set_rate()
1347 rate = &common->sbands[tx_info->band].bitrates[rates[i].idx]; in ath_buf_set_rate()
1354 info->rates[i].Rate = rate->hw_value; in ath_buf_set_rate()
1356 if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) in ath_buf_set_rate()
1357 info->rates[i].Rate |= rate->hw_value_short; in ath_buf_set_rate()
1363 info->rates[i].ChSel = ah->txchainmask; in ath_buf_set_rate()
1365 info->rates[i].ChSel = ath_txchainmask_reduction(sc, in ath_buf_set_rate()
1366 ah->txchainmask, info->rates[i].Rate); in ath_buf_set_rate()
1368 info->rates[i].PktDuration = ath9k_hw_computetxtime(sc->sc_ah, in ath_buf_set_rate()
1371 is_cck = IS_CCK_RATE(info->rates[i].Rate); in ath_buf_set_rate()
2430 duration += info.rates[0].PktDuration; in ath_tx_cabq()
2567 memset(ptr + sizeof(tx_info->status.rates), 0, in ath_clear_tx_status()
2569 sizeof(tx_info->status.rates) - in ath_clear_tx_status()
2600 tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1; in ath_tx_rc_status()
2603 tx_info->status.rates[i].count = 0; in ath_tx_rc_status()
2604 tx_info->status.rates[i].idx = -1; in ath_tx_rc_status()
2618 * successfully by eventually preferring slower rates. in ath_tx_rc_status()
2625 tx_info->status.rates[tx_rateindex].count = in ath_tx_rc_status()