Lines Matching refs:rates
160 ieee80211_get_tx_rates(vif, sta, bf->bf_mpdu, bf->rates,
161 ARRAY_SIZE(bf->rates));
455 struct ieee80211_tx_rate rates[4];
465 memcpy(rates, bf->rates, sizeof(rates));
469 retries += rates[i].count;
579 memcpy(tx_info->control.rates, rates, sizeof(rates));
675 airtime += rate_dur * bf->rates[i].count;
716 memcpy(info->control.rates, bf->rates,
717 sizeof(info->control.rates));
734 struct ieee80211_tx_rate *rates;
739 rates = tx_info->control.rates;
742 if (!rates[i].count || rates[i].idx < 0)
745 if (!(rates[i].flags & IEEE80211_TX_RC_MCS))
757 struct ieee80211_tx_rate *rates;
765 rates = bf->rates;
776 if (!rates[i].count)
779 if (!(rates[i].flags & IEEE80211_TX_RC_MCS)) {
784 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH)
789 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI)
792 frmlen = sc->tx.max_aggr_framelen[q][modeidx][rates[i].idx];
841 * The hardware can keep up at lower rates, but not higher rates
868 rix = bf->rates[0].idx;
869 flags = bf->rates[0].flags;
1211 struct ieee80211_tx_rate *rates;
1221 rates = bf->rates;
1228 for (i = 0; i < ARRAY_SIZE(bf->rates); i++) {
1232 if (!rates[i].count || (rates[i].idx < 0))
1235 rix = rates[i].idx;
1236 info->rates[i].Tries = rates[i].count;
1242 (rates[i].flags & IEEE80211_TX_RC_MCS) &&
1248 if (rts || rates[i].flags & IEEE80211_TX_RC_USE_RTS_CTS) {
1249 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS;
1251 } else if (rates[i].flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
1252 info->rates[i].RateFlags |= ATH9K_RATESERIES_RTS_CTS;
1256 if (rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH)
1257 info->rates[i].RateFlags |= ATH9K_RATESERIES_2040;
1258 if (rates[i].flags & IEEE80211_TX_RC_SHORT_GI)
1259 info->rates[i].RateFlags |= ATH9K_RATESERIES_HALFGI;
1261 is_sgi = !!(rates[i].flags & IEEE80211_TX_RC_SHORT_GI);
1262 is_40 = !!(rates[i].flags & IEEE80211_TX_RC_40_MHZ_WIDTH);
1263 is_sp = !!(rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE);
1265 if (rates[i].flags & IEEE80211_TX_RC_MCS) {
1266 /* MCS rates */
1267 info->rates[i].Rate = rix | 0x80;
1268 info->rates[i].ChSel = ath_txchainmask_reduction(sc,
1269 ah->txchainmask, info->rates[i].Rate);
1270 info->rates[i].PktDuration = ath_pkt_duration(sc, rix, len,
1273 info->rates[i].RateFlags |= ATH9K_RATESERIES_STBC;
1275 info->rates[i].RateFlags |=
1285 /* legacy rates */
1286 rate = &common->sbands[tx_info->band].bitrates[rates[i].idx];
1293 info->rates[i].Rate = rate->hw_value;
1295 if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE)
1296 info->rates[i].Rate |= rate->hw_value_short;
1302 info->rates[i].ChSel = ah->txchainmask;
1304 info->rates[i].ChSel = ath_txchainmask_reduction(sc,
1305 ah->txchainmask, info->rates[i].Rate);
1307 info->rates[i].PktDuration = ath9k_hw_computetxtime(sc->sc_ah,
1310 is_cck = IS_CCK_RATE(info->rates[i].Rate);
2371 duration += info.rates[0].PktDuration;
2508 memset(ptr + sizeof(tx_info->status.rates), 0,
2510 sizeof(tx_info->status.rates) -
2541 tx_info->status.rates[tx_rateindex].count = ts->ts_longretry + 1;
2544 tx_info->status.rates[i].count = 0;
2545 tx_info->status.rates[i].idx = -1;
2559 * successfully by eventually preferring slower rates.
2566 tx_info->status.rates[tx_rateindex].count =