Lines Matching full:rates

200 		 "Use only VHT rates when VHT is supported by sta.");
203 * To enable sufficiently targeted rate sampling, MCS rates are divided into
409 return &mi->groups[group].rates[idx]; in minstrel_ht_get_stats()
453 return &mi->groups[group].rates[idx]; in minstrel_ht_ri_get_stats()
459 return &mi->groups[MI_RATE_GROUP(index)].rates[MI_RATE_IDX(index)]; in minstrel_get_ratestats()
531 * Find & sort topmost throughput rates
533 * If multiple rates provide equal throughput the sorting is based on their
535 * MCS groups, CCK rates do not provide aggregation and are therefore at last.
547 cur_prob = mi->groups[cur_group].rates[cur_idx].prob_avg; in minstrel_ht_sort_best_tp_rates()
553 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_sort_best_tp_rates()
587 mrs = &mg->rates[cur_idx]; in minstrel_ht_set_best_prob_rate()
591 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_set_best_prob_rate()
595 * MCS_GROUP as well as CCK_GROUP rates do not allow aggregation */ in minstrel_ht_set_best_prob_rate()
598 max_tp_prob = mi->groups[max_tp_group].rates[max_tp_idx].prob_avg; in minstrel_ht_set_best_prob_rate()
604 /* skip rates faster than max tp rate with lower prob */ in minstrel_ht_set_best_prob_rate()
611 max_gpr_prob = mi->groups[max_gpr_group].rates[max_gpr_idx].prob_avg; in minstrel_ht_set_best_prob_rate()
634 * Assign new rate set per sta and use CCK rates only if the fastest
636 * rate sets where MCS and CCK rates are mixed, because CCK rates can
649 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_assign_best_tp_rates()
654 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_assign_best_tp_rates()
688 tmp_prob = mi->groups[group].rates[tmp_idx].prob_avg; in minstrel_ht_prob_rate_reduce_streams()
704 u16 *rates = mi->sample[type].sample_rates; in __minstrel_ht_get_sample_rate() local
709 if (!rates[i]) in __minstrel_ht_get_sample_rate()
712 cur = rates[i]; in __minstrel_ht_get_sample_rate()
713 rates[i] = 0; in __minstrel_ht_get_sample_rate()
807 u16 *rates = mi->sample[type].sample_rates; in minstrel_ht_move_sample_rates() local
815 cur = rates[i]; in minstrel_ht_move_sample_rates()
835 rates[i] = 0; in minstrel_ht_move_sample_rates()
842 rates[j++] = cur; in minstrel_ht_move_sample_rates()
843 rates[i] = 0; in minstrel_ht_move_sample_rates()
870 * Incremental update rates:
931 * Jump rates:
932 * Sample random rates, use those that are faster than the highest
933 * currently selected rate. Rates between the fastest and the slowest
990 /* skip slow rates with high success probability */ in minstrel_ht_next_jump_rate()
1015 u16 *rates; in minstrel_ht_refill_sample_rates() local
1018 rates = mi->sample[MINSTREL_SAMPLE_TYPE_INC].sample_rates; in minstrel_ht_refill_sample_rates()
1022 rates[i] = minstrel_ht_next_inc_rate(mi, tp_dur); in minstrel_ht_refill_sample_rates()
1023 if (!rates[i]) in minstrel_ht_refill_sample_rates()
1029 rates = mi->sample[MINSTREL_SAMPLE_TYPE_JUMP].sample_rates; in minstrel_ht_refill_sample_rates()
1035 rates[i] = minstrel_ht_next_jump_rate(mi, fast_rate_dur, in minstrel_ht_refill_sample_rates()
1037 if (!rates[i]) in minstrel_ht_refill_sample_rates()
1050 * Update rate statistics and select new primary rates
1056 * higher throughput rates, even if the probablity is a bit lower
1127 mrs = &mg->rates[i]; in minstrel_ht_update_stats()
1287 struct ieee80211_tx_rate *ar = info->status.rates; in minstrel_ht_tx_status()
1322 if (st->rates && st->n_rates) { in minstrel_ht_tx_status()
1323 last = !minstrel_ht_ri_txstat_valid(mp, mi, &(st->rates[0])); in minstrel_ht_tx_status()
1327 &(st->rates[i + 1])); in minstrel_ht_tx_status()
1330 &(st->rates[i])); in minstrel_ht_tx_status()
1335 rate->attempts += st->rates[i].try_count * in minstrel_ht_tx_status()
1479 * - for fallback rates, to increase chances of getting through in minstrel_ht_set_rate()
1497 return mi->groups[group].rates[rate].prob_avg; in minstrel_ht_get_prob_avg()
1509 if (mi->groups[group].rates[rate].prob_avg < MINSTREL_FRAC(50, 100)) in minstrel_ht_get_max_amsdu_len()
1552 struct ieee80211_sta_rates *rates; in minstrel_ht_update_rates() local
1556 rates = kzalloc(sizeof(*rates), GFP_ATOMIC); in minstrel_ht_update_rates()
1557 if (!rates) in minstrel_ht_update_rates()
1561 minstrel_ht_set_rate(mp, mi, rates, i++, mi->max_tp_rate[0]); in minstrel_ht_update_rates()
1565 minstrel_ht_set_rate(mp, mi, rates, i, mi->max_tp_rate[i]); in minstrel_ht_update_rates()
1568 minstrel_ht_set_rate(mp, mi, rates, i++, mi->max_prob_rate); in minstrel_ht_update_rates()
1571 rates->rate[i].idx = -1; in minstrel_ht_update_rates()
1575 rate_control_set_rates(mp->hw, mi->sta, rates); in minstrel_ht_update_rates()
1600 struct ieee80211_tx_rate *rate = &info->status.rates[0]; in minstrel_ht_get_rate()
1681 const u8 *rates; in minstrel_ht_update_ofdm() local
1687 rates = mp->ofdm_rates[sband->band]; in minstrel_ht_update_ofdm()
1689 if (rates[i] == 0xff || in minstrel_ht_update_ofdm()
1690 !rate_supported(sta, sband->band, rates[i])) in minstrel_ht_update_ofdm()
1834 /* create an initial rate table with the lowest supported rates */ in minstrel_ht_update_caps()
2004 prob = mi->groups[i].rates[j].prob_avg; in minstrel_ht_get_expected_throughput()