Lines Matching full:rates

174 		 "Use only VHT rates when VHT is supported by sta.");
177 * To enable sufficiently targeted rate sampling, MCS rates are divided into
326 return &mi->groups[group].rates[idx]; in minstrel_ht_get_stats()
332 return &mi->groups[index / MCS_GROUP_RATES].rates[index % MCS_GROUP_RATES]; in minstrel_get_ratestats()
377 * Find & sort topmost throughput rates
379 * If multiple rates provide equal throughput the sorting is based on their
381 * MCS groups, CCK rates do not provide aggregation and are therefore at last.
393 cur_prob = mi->groups[cur_group].rates[cur_idx].prob_avg; in minstrel_ht_sort_best_tp_rates()
399 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_sort_best_tp_rates()
432 mrs = &mg->rates[index % MCS_GROUP_RATES]; in minstrel_ht_set_best_prob_rate()
436 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_set_best_prob_rate()
440 * MCS_GROUP as well as CCK_GROUP rates do not allow aggregation */ in minstrel_ht_set_best_prob_rate()
448 max_gpr_prob = mi->groups[max_gpr_group].rates[max_gpr_idx].prob_avg; in minstrel_ht_set_best_prob_rate()
471 * Assign new rate set per sta and use CCK rates only if the fastest
473 * rate sets where MCS and CCK rates are mixed, because CCK rates can
486 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_assign_best_tp_rates()
491 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_assign_best_tp_rates()
522 tmp_prob = mi->groups[group].rates[tmp_idx].prob_avg; in minstrel_ht_prob_rate_reduce_streams()
559 minstrel_ht_find_probe_rates(struct minstrel_ht_sta *mi, u16 *rates, int *n_rates, in minstrel_ht_find_probe_rates() argument
596 rates[(*n_rates)++] = idx; in minstrel_ht_find_probe_rates()
607 u16 rates[MINSTREL_GROUPS_NB]; in minstrel_ht_rate_sample_switch() local
628 minstrel_ht_find_probe_rates(mi, rates, &n_rates, faster_rate); in minstrel_ht_rate_sample_switch()
630 minstrel_ht_find_probe_rates(mi, rates, &n_rates, false); in minstrel_ht_rate_sample_switch()
654 probe_rate = rates[i]; in minstrel_ht_rate_sample_switch()
662 * Update rate statistics and select new primary rates
668 * higher throughput rates, even if the probablity is a bit lower
739 mrs = &mg->rates[i]; in minstrel_ht_update_stats()
775 /* try to sample all available rates during each interval */ in minstrel_ht_update_stats()
892 struct ieee80211_tx_rate *ar = info->status.rates; in minstrel_ht_tx_status()
1093 * - for fallback rates, to increase chances of getting through in minstrel_ht_set_rate()
1111 return mi->groups[group].rates[rate].prob_avg; in minstrel_ht_get_prob_avg()
1123 if (mi->groups[group].rates[rate].prob_avg < MINSTREL_FRAC(50, 100)) in minstrel_ht_get_max_amsdu_len()
1166 struct ieee80211_sta_rates *rates; in minstrel_ht_update_rates() local
1173 rates = kzalloc(sizeof(*rates), GFP_ATOMIC); in minstrel_ht_update_rates()
1174 if (!rates) in minstrel_ht_update_rates()
1178 minstrel_ht_set_rate(mp, mi, rates, i++, first_rate); in minstrel_ht_update_rates()
1181 /* At least 3 tx rates supported, use max_tp_rate[1] next */ in minstrel_ht_update_rates()
1182 minstrel_ht_set_rate(mp, mi, rates, i++, mi->max_tp_rate[1]); in minstrel_ht_update_rates()
1186 minstrel_ht_set_rate(mp, mi, rates, i++, mi->max_prob_rate); in minstrel_ht_update_rates()
1190 rates->rate[i].idx = -1; in minstrel_ht_update_rates()
1191 rate_control_set_rates(mp->hw, mi->sta, rates); in minstrel_ht_update_rates()
1224 mrs = &mg->rates[sample_idx]; in minstrel_get_sample_rate()
1266 /* Skip already sampled slow rates */ in minstrel_get_sample_rate()
1271 * Make sure that lower rates get sampled only occasionally, in minstrel_get_sample_rate()
1298 struct ieee80211_tx_rate *rate = &info->status.rates[0]; in minstrel_ht_get_rate()
1528 /* create an initial rate table with the lowest supported rates */ in minstrel_ht_update_caps()
1655 /* number of packets (in %) to use for sampling other rates in minstrel_ht_alloc()
1715 prob = mi->groups[i].rates[j].prob_avg; in minstrel_ht_get_expected_throughput()