Lines Matching refs:mi

278 minstrel_ht_update_rates(struct minstrel_priv *mp, struct minstrel_ht_sta *mi);
370 minstrel_ht_get_stats(struct minstrel_priv *mp, struct minstrel_ht_sta *mi, in minstrel_ht_get_stats() argument
389 if (!(mi->supported[group] & BIT(idx))) in minstrel_ht_get_stats()
396 if ((mi->supported[group] & BIT(idx + 4)) && in minstrel_ht_get_stats()
404 if (rate->idx == mp->ofdm_rates[mi->band][idx]) in minstrel_ht_get_stats()
409 return &mi->groups[group].rates[idx]; in minstrel_ht_get_stats()
416 minstrel_ht_ri_get_stats(struct minstrel_priv *mp, struct minstrel_ht_sta *mi, in minstrel_ht_ri_get_stats() argument
440 if ((mi->supported[group] & BIT(idx + 4)) && in minstrel_ht_ri_get_stats()
441 mi->use_short_preamble) in minstrel_ht_ri_get_stats()
448 if (rate->legacy == minstrel_ofdm_bitrates[ mp->ofdm_rates[mi->band][idx] ]) in minstrel_ht_ri_get_stats()
453 return &mi->groups[group].rates[idx]; in minstrel_ht_ri_get_stats()
457 minstrel_get_ratestats(struct minstrel_ht_sta *mi, int index) in minstrel_get_ratestats() argument
459 return &mi->groups[MI_RATE_GROUP(index)].rates[MI_RATE_IDX(index)]; in minstrel_get_ratestats()
471 minstrel_ht_avg_ampdu_len(struct minstrel_ht_sta *mi) in minstrel_ht_avg_ampdu_len() argument
475 if (mi->avg_ampdu_len) in minstrel_ht_avg_ampdu_len()
476 return MINSTREL_TRUNC(mi->avg_ampdu_len); in minstrel_ht_avg_ampdu_len()
478 if (minstrel_ht_is_legacy_group(MI_RATE_GROUP(mi->max_tp_rate[0]))) in minstrel_ht_avg_ampdu_len()
481 duration = minstrel_get_duration(mi->max_tp_rate[0]); in minstrel_ht_avg_ampdu_len()
500 minstrel_ht_get_tp_avg(struct minstrel_ht_sta *mi, int group, int rate, in minstrel_ht_get_tp_avg() argument
503 unsigned int nsecs = 0, overhead = mi->overhead; in minstrel_ht_get_tp_avg()
511 overhead = mi->overhead_legacy; in minstrel_ht_get_tp_avg()
513 ampdu_len = minstrel_ht_avg_ampdu_len(mi); in minstrel_ht_get_tp_avg()
538 minstrel_ht_sort_best_tp_rates(struct minstrel_ht_sta *mi, u16 index, in minstrel_ht_sort_best_tp_rates() argument
547 cur_prob = mi->groups[cur_group].rates[cur_idx].prob_avg; in minstrel_ht_sort_best_tp_rates()
548 cur_tp_avg = minstrel_ht_get_tp_avg(mi, cur_group, cur_idx, cur_prob); 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()
554 tmp_tp_avg = minstrel_ht_get_tp_avg(mi, tmp_group, tmp_idx, in minstrel_ht_sort_best_tp_rates()
574 minstrel_ht_set_best_prob_rate(struct minstrel_ht_sta *mi, u16 *dest, u16 index) in minstrel_ht_set_best_prob_rate() argument
586 mg = &mi->groups[cur_group]; 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()
592 tmp_tp_avg = minstrel_ht_get_tp_avg(mi, tmp_group, tmp_idx, tmp_prob); in minstrel_ht_set_best_prob_rate()
596 max_tp_group = MI_RATE_GROUP(mi->max_tp_rate[0]); in minstrel_ht_set_best_prob_rate()
597 max_tp_idx = MI_RATE_IDX(mi->max_tp_rate[0]); 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()
605 if (minstrel_get_duration(mi->max_tp_rate[0]) > minstrel_get_duration(index) && 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()
614 cur_tp_avg = minstrel_ht_get_tp_avg(mi, cur_group, cur_idx, in minstrel_ht_set_best_prob_rate()
619 max_gpr_tp_avg = minstrel_ht_get_tp_avg(mi, max_gpr_group, in minstrel_ht_set_best_prob_rate()
640 minstrel_ht_assign_best_tp_rates(struct minstrel_ht_sta *mi, in minstrel_ht_assign_best_tp_rates() argument
649 tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_avg; in minstrel_ht_assign_best_tp_rates()
650 tmp_cck_tp = minstrel_ht_get_tp_avg(mi, tmp_group, tmp_idx, tmp_prob); 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()
655 tmp_mcs_tp = minstrel_ht_get_tp_avg(mi, tmp_group, tmp_idx, tmp_prob); in minstrel_ht_assign_best_tp_rates()
659 minstrel_ht_sort_best_tp_rates(mi, tmp_legacy_tp_rate[i], in minstrel_ht_assign_best_tp_rates()
671 minstrel_ht_prob_rate_reduce_streams(struct minstrel_ht_sta *mi) in minstrel_ht_prob_rate_reduce_streams() argument
677 if (!mi->sta->deflink.ht_cap.ht_supported) in minstrel_ht_prob_rate_reduce_streams()
680 group = MI_RATE_GROUP(mi->max_tp_rate[0]); in minstrel_ht_prob_rate_reduce_streams()
683 mg = &mi->groups[group]; in minstrel_ht_prob_rate_reduce_streams()
684 if (!mi->supported[group] || group == MINSTREL_CCK_GROUP) in minstrel_ht_prob_rate_reduce_streams()
688 tmp_prob = mi->groups[group].rates[tmp_idx].prob_avg; in minstrel_ht_prob_rate_reduce_streams()
690 if (tmp_tp < minstrel_ht_get_tp_avg(mi, group, tmp_idx, tmp_prob) && in minstrel_ht_prob_rate_reduce_streams()
692 mi->max_prob_rate = mg->max_group_prob_rate; in minstrel_ht_prob_rate_reduce_streams()
693 tmp_tp = minstrel_ht_get_tp_avg(mi, group, in minstrel_ht_prob_rate_reduce_streams()
701 __minstrel_ht_get_sample_rate(struct minstrel_ht_sta *mi, in __minstrel_ht_get_sample_rate() argument
704 u16 *rates = mi->sample[type].sample_rates; in __minstrel_ht_get_sample_rate()
786 minstrel_ht_find_sample_rate(struct minstrel_ht_sta *mi, int type, int idx) in minstrel_ht_find_sample_rate() argument
791 u16 cur = mi->sample[type].sample_rates[i]; in minstrel_ht_find_sample_rate()
804 minstrel_ht_move_sample_rates(struct minstrel_ht_sta *mi, int type, in minstrel_ht_move_sample_rates() argument
807 u16 *rates = mi->sample[type].sample_rates; in minstrel_ht_move_sample_rates()
850 minstrel_ht_group_min_rate_offset(struct minstrel_ht_sta *mi, int group, in minstrel_ht_group_min_rate_offset() argument
853 u16 supported = mi->supported[group]; in minstrel_ht_group_min_rate_offset()
875 minstrel_ht_next_inc_rate(struct minstrel_ht_sta *mi, u32 fast_rate_dur) in minstrel_ht_next_inc_rate() argument
881 group = mi->sample[type].sample_group; in minstrel_ht_next_inc_rate()
885 index = minstrel_ht_group_min_rate_offset(mi, group, in minstrel_ht_next_inc_rate()
891 if (!minstrel_ht_find_sample_rate(mi, type, index)) in minstrel_ht_next_inc_rate()
897 mi->sample[type].sample_group = group; in minstrel_ht_next_inc_rate()
903 minstrel_ht_next_group_sample_rate(struct minstrel_ht_sta *mi, int group, in minstrel_ht_next_group_sample_rate() argument
906 struct minstrel_mcs_group_data *mg = &mi->groups[group]; in minstrel_ht_next_group_sample_rate()
937 minstrel_ht_next_jump_rate(struct minstrel_ht_sta *mi, u32 fast_rate_dur, in minstrel_ht_next_jump_rate() argument
951 slow_rates = mi->sample[MINSTREL_SAMPLE_TYPE_SLOW].sample_rates; in minstrel_ht_next_jump_rate()
952 group = mi->sample[MINSTREL_SAMPLE_TYPE_JUMP].sample_group; in minstrel_ht_next_jump_rate()
958 supported = mi->supported[group]; in minstrel_ht_next_jump_rate()
962 offset = minstrel_ht_group_min_rate_offset(mi, group, in minstrel_ht_next_jump_rate()
967 index = minstrel_ht_next_group_sample_rate(mi, group, supported, in minstrel_ht_next_jump_rate()
978 if (minstrel_ht_find_sample_rate(mi, type, index)) in minstrel_ht_next_jump_rate()
991 mrs = minstrel_get_ratestats(mi, index); in minstrel_ht_next_jump_rate()
1002 mi->sample[MINSTREL_SAMPLE_TYPE_JUMP].sample_group = group; in minstrel_ht_next_jump_rate()
1008 minstrel_ht_refill_sample_rates(struct minstrel_ht_sta *mi) in minstrel_ht_refill_sample_rates() argument
1010 u32 prob_dur = minstrel_get_duration(mi->max_prob_rate); in minstrel_ht_refill_sample_rates()
1011 u32 tp_dur = minstrel_get_duration(mi->max_tp_rate[0]); in minstrel_ht_refill_sample_rates()
1012 u32 tp2_dur = minstrel_get_duration(mi->max_tp_rate[1]); in minstrel_ht_refill_sample_rates()
1018 rates = mi->sample[MINSTREL_SAMPLE_TYPE_INC].sample_rates; in minstrel_ht_refill_sample_rates()
1019 i = minstrel_ht_move_sample_rates(mi, MINSTREL_SAMPLE_TYPE_INC, in minstrel_ht_refill_sample_rates()
1022 rates[i] = minstrel_ht_next_inc_rate(mi, tp_dur); in minstrel_ht_refill_sample_rates()
1029 rates = mi->sample[MINSTREL_SAMPLE_TYPE_JUMP].sample_rates; in minstrel_ht_refill_sample_rates()
1030 i = minstrel_ht_move_sample_rates(mi, MINSTREL_SAMPLE_TYPE_JUMP, in minstrel_ht_refill_sample_rates()
1032 j = minstrel_ht_move_sample_rates(mi, MINSTREL_SAMPLE_TYPE_SLOW, in minstrel_ht_refill_sample_rates()
1035 rates[i] = minstrel_ht_next_jump_rate(mi, fast_rate_dur, in minstrel_ht_refill_sample_rates()
1043 for (i = 0; i < ARRAY_SIZE(mi->sample); i++) in minstrel_ht_refill_sample_rates()
1044 memcpy(mi->sample[i].cur_sample_rates, mi->sample[i].sample_rates, in minstrel_ht_refill_sample_rates()
1045 sizeof(mi->sample[i].cur_sample_rates)); in minstrel_ht_refill_sample_rates()
1059 minstrel_ht_update_stats(struct minstrel_priv *mp, struct minstrel_ht_sta *mi) in minstrel_ht_update_stats() argument
1067 bool ht_supported = mi->sta->deflink.ht_cap.ht_supported; in minstrel_ht_update_stats()
1069 if (mi->ampdu_packets > 0) { in minstrel_ht_update_stats()
1071 mi->avg_ampdu_len = minstrel_ewma(mi->avg_ampdu_len, in minstrel_ht_update_stats()
1072 MINSTREL_FRAC(mi->ampdu_len, mi->ampdu_packets), in minstrel_ht_update_stats()
1075 mi->avg_ampdu_len = 0; in minstrel_ht_update_stats()
1076 mi->ampdu_len = 0; in minstrel_ht_update_stats()
1077 mi->ampdu_packets = 0; in minstrel_ht_update_stats()
1080 if (mi->supported[MINSTREL_CCK_GROUP]) in minstrel_ht_update_stats()
1082 else if (mi->supported[MINSTREL_OFDM_GROUP]) in minstrel_ht_update_stats()
1091 if (mi->supported[MINSTREL_VHT_GROUP_0]) in minstrel_ht_update_stats()
1095 else if (mi->supported[MINSTREL_CCK_GROUP]) in minstrel_ht_update_stats()
1110 mg = &mi->groups[group]; in minstrel_ht_update_stats()
1111 if (!mi->supported[group]) in minstrel_ht_update_stats()
1122 if (!(mi->supported[group] & BIT(i))) in minstrel_ht_update_stats()
1137 if (minstrel_ht_get_tp_avg(mi, group, i, cur_prob) == 0) in minstrel_ht_update_stats()
1141 minstrel_ht_sort_best_tp_rates(mi, index, tp_rate); in minstrel_ht_update_stats()
1144 minstrel_ht_sort_best_tp_rates(mi, index, in minstrel_ht_update_stats()
1153 minstrel_ht_assign_best_tp_rates(mi, tmp_mcs_tp_rate, in minstrel_ht_update_stats()
1155 memcpy(mi->max_tp_rate, tmp_mcs_tp_rate, sizeof(mi->max_tp_rate)); in minstrel_ht_update_stats()
1158 if (!mi->supported[group]) in minstrel_ht_update_stats()
1161 mg = &mi->groups[group]; in minstrel_ht_update_stats()
1165 if (!(mi->supported[group] & BIT(i))) in minstrel_ht_update_stats()
1171 minstrel_ht_set_best_prob_rate(mi, &tmp_max_prob_rate, in minstrel_ht_update_stats()
1176 mi->max_prob_rate = tmp_max_prob_rate; in minstrel_ht_update_stats()
1179 minstrel_ht_prob_rate_reduce_streams(mi); in minstrel_ht_update_stats()
1180 minstrel_ht_refill_sample_rates(mi); in minstrel_ht_update_stats()
1186 mi->max_tp_rate[i] = mp->fixed_rate_idx; in minstrel_ht_update_stats()
1187 mi->max_prob_rate = mp->fixed_rate_idx; in minstrel_ht_update_stats()
1192 mi->last_stats_update = jiffies; in minstrel_ht_update_stats()
1193 mi->sample_time = jiffies; in minstrel_ht_update_stats()
1197 minstrel_ht_txstat_valid(struct minstrel_priv *mp, struct minstrel_ht_sta *mi, in minstrel_ht_txstat_valid() argument
1217 if (rate->idx == mp->ofdm_rates[mi->band][i]) in minstrel_ht_txstat_valid()
1228 struct minstrel_ht_sta *mi, in minstrel_ht_ri_txstat_valid() argument
1250 minstrel_ofdm_bitrates[ mp->ofdm_rates[mi->band][i] ]) in minstrel_ht_ri_txstat_valid()
1258 minstrel_downgrade_rate(struct minstrel_ht_sta *mi, u16 *idx, bool primary) in minstrel_downgrade_rate() argument
1266 if (!mi->supported[group]) in minstrel_downgrade_rate()
1274 *idx = mi->groups[group].max_group_tp_rate[0]; in minstrel_downgrade_rate()
1276 *idx = mi->groups[group].max_group_tp_rate[1]; in minstrel_downgrade_rate()
1286 struct minstrel_ht_sta *mi = priv_sta; in minstrel_ht_tx_status() local
1310 if (mi->total_packets >= ~0 - info->status.ampdu_len) { in minstrel_ht_tx_status()
1311 mi->total_packets = 0; in minstrel_ht_tx_status()
1312 mi->sample_packets = 0; in minstrel_ht_tx_status()
1315 mi->total_packets += info->status.ampdu_len; in minstrel_ht_tx_status()
1317 mi->sample_packets += info->status.ampdu_len; in minstrel_ht_tx_status()
1319 mi->ampdu_packets++; in minstrel_ht_tx_status()
1320 mi->ampdu_len += info->status.ampdu_len; in minstrel_ht_tx_status()
1323 last = !minstrel_ht_ri_txstat_valid(mp, mi, &(st->rates[0])); in minstrel_ht_tx_status()
1326 !minstrel_ht_ri_txstat_valid(mp, mi, in minstrel_ht_tx_status()
1329 rate = minstrel_ht_ri_get_stats(mp, mi, in minstrel_ht_tx_status()
1339 last = !minstrel_ht_txstat_valid(mp, mi, &ar[0]); in minstrel_ht_tx_status()
1342 !minstrel_ht_txstat_valid(mp, mi, &ar[i + 1]); in minstrel_ht_tx_status()
1344 rate = minstrel_ht_get_stats(mp, mi, &ar[i]); in minstrel_ht_tx_status()
1357 rate = minstrel_get_ratestats(mi, mi->max_tp_rate[0]); in minstrel_ht_tx_status()
1360 minstrel_downgrade_rate(mi, &mi->max_tp_rate[0], true); in minstrel_ht_tx_status()
1364 rate2 = minstrel_get_ratestats(mi, mi->max_tp_rate[1]); in minstrel_ht_tx_status()
1367 minstrel_downgrade_rate(mi, &mi->max_tp_rate[1], false); in minstrel_ht_tx_status()
1372 if (time_after(jiffies, mi->last_stats_update + update_interval)) { in minstrel_ht_tx_status()
1374 minstrel_ht_update_stats(mp, mi); in minstrel_ht_tx_status()
1378 minstrel_ht_update_rates(mp, mi); in minstrel_ht_tx_status()
1382 minstrel_calc_retransmit(struct minstrel_priv *mp, struct minstrel_ht_sta *mi, in minstrel_calc_retransmit() argument
1390 unsigned int ampdu_len = minstrel_ht_avg_ampdu_len(mi); in minstrel_calc_retransmit()
1393 mrs = minstrel_get_ratestats(mi, index); in minstrel_calc_retransmit()
1413 overhead = mi->overhead_legacy; in minstrel_calc_retransmit()
1414 overhead_rtscts = mi->overhead_legacy_rtscts; in minstrel_calc_retransmit()
1416 overhead = mi->overhead; in minstrel_calc_retransmit()
1417 overhead_rtscts = mi->overhead_rtscts; in minstrel_calc_retransmit()
1442 minstrel_ht_set_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi, in minstrel_ht_set_rate() argument
1451 mrs = minstrel_get_ratestats(mi, index); in minstrel_ht_set_rate()
1453 minstrel_calc_retransmit(mp, mi, index); in minstrel_ht_set_rate()
1469 idx = mp->ofdm_rates[mi->band][index % in minstrel_ht_set_rate()
1482 (mi->sta->deflink.smps_mode == IEEE80211_SMPS_DYNAMIC && in minstrel_ht_set_rate()
1493 minstrel_ht_get_prob_avg(struct minstrel_ht_sta *mi, int rate) in minstrel_ht_get_prob_avg() argument
1497 return mi->groups[group].rates[rate].prob_avg; in minstrel_ht_get_prob_avg()
1501 minstrel_ht_get_max_amsdu_len(struct minstrel_ht_sta *mi) in minstrel_ht_get_max_amsdu_len() argument
1503 int group = MI_RATE_GROUP(mi->max_prob_rate); in minstrel_ht_get_max_amsdu_len()
1505 int rate = MI_RATE_IDX(mi->max_prob_rate); in minstrel_ht_get_max_amsdu_len()
1509 if (mi->groups[group].rates[rate].prob_avg < MINSTREL_FRAC(50, 100)) in minstrel_ht_get_max_amsdu_len()
1532 (minstrel_ht_get_prob_avg(mi, mi->max_tp_rate[0]) < in minstrel_ht_get_max_amsdu_len()
1542 if (!mi->sta->deflink.vht_cap.vht_supported) in minstrel_ht_get_max_amsdu_len()
1550 minstrel_ht_update_rates(struct minstrel_priv *mp, struct minstrel_ht_sta *mi) in minstrel_ht_update_rates() argument
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()
1573 mi->sta->deflink.agg.max_rc_amsdu_len = minstrel_ht_get_max_amsdu_len(mi); in minstrel_ht_update_rates()
1574 ieee80211_sta_recalc_aggregates(mi->sta); in minstrel_ht_update_rates()
1575 rate_control_set_rates(mp->hw, mi->sta, rates); in minstrel_ht_update_rates()
1579 minstrel_ht_get_sample_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi) in minstrel_ht_get_sample_rate() argument
1584 seq = mi->sample_seq; in minstrel_ht_get_sample_rate()
1585 mi->sample_seq = (seq + 1) % ARRAY_SIZE(minstrel_sample_seq); in minstrel_ht_get_sample_rate()
1591 return __minstrel_ht_get_sample_rate(mi, seq); in minstrel_ht_get_sample_rate()
1601 struct minstrel_ht_sta *mi = priv_sta; in minstrel_ht_get_rate() local
1605 info->flags |= mi->tx_flags; in minstrel_ht_get_rate()
1617 if (time_is_after_jiffies(mi->sample_time)) in minstrel_ht_get_rate()
1620 mi->sample_time = jiffies + MINSTREL_SAMPLE_INTERVAL; in minstrel_ht_get_rate()
1621 sample_idx = minstrel_ht_get_sample_rate(mp, mi); in minstrel_ht_get_rate()
1640 rate->idx = mp->ofdm_rates[mi->band][idx]; in minstrel_ht_get_rate()
1652 minstrel_ht_update_cck(struct minstrel_priv *mp, struct minstrel_ht_sta *mi, in minstrel_ht_update_cck() argument
1670 mi->supported[MINSTREL_CCK_GROUP] |= BIT(i); in minstrel_ht_update_cck()
1672 mi->supported[MINSTREL_CCK_GROUP] |= BIT(i + 4); in minstrel_ht_update_cck()
1677 minstrel_ht_update_ofdm(struct minstrel_priv *mp, struct minstrel_ht_sta *mi, in minstrel_ht_update_ofdm() argument
1693 mi->supported[MINSTREL_OFDM_GROUP] |= BIT(i); in minstrel_ht_update_ofdm()
1703 struct minstrel_ht_sta *mi = priv_sta; in minstrel_ht_update_caps() local
1722 memset(mi, 0, sizeof(*mi)); in minstrel_ht_update_caps()
1724 mi->sta = sta; in minstrel_ht_update_caps()
1725 mi->band = sband->band; in minstrel_ht_update_caps()
1726 mi->last_stats_update = jiffies; in minstrel_ht_update_caps()
1729 mi->overhead = ieee80211_frame_duration(sband->band, 0, 60, 1, 1, 0); in minstrel_ht_update_caps()
1730 mi->overhead += ack_dur; in minstrel_ht_update_caps()
1731 mi->overhead_rtscts = mi->overhead + 2 * ack_dur; in minstrel_ht_update_caps()
1738 mi->overhead_legacy = ack_dur; in minstrel_ht_update_caps()
1739 mi->overhead_legacy_rtscts = mi->overhead_legacy + 2 * ack_dur; in minstrel_ht_update_caps()
1741 mi->avg_ampdu_len = MINSTREL_FRAC(1, 1); in minstrel_ht_update_caps()
1755 mi->tx_flags |= stbc << IEEE80211_TX_CTL_STBC_SHIFT; in minstrel_ht_update_caps()
1757 mi->tx_flags |= IEEE80211_TX_CTL_LDPC; in minstrel_ht_update_caps()
1759 for (i = 0; i < ARRAY_SIZE(mi->groups); i++) { in minstrel_ht_update_caps()
1763 mi->supported[i] = 0; in minstrel_ht_update_caps()
1792 mi->supported[i] = mcs->rx_mask[nss - 1]; in minstrel_ht_update_caps()
1817 mi->supported[i] = minstrel_get_valid_vht_rates(bw, nss, in minstrel_ht_update_caps()
1822 mi->use_short_preamble = test_sta_flag(sta_info, WLAN_STA_SHORT_PREAMBLE) && in minstrel_ht_update_caps()
1825 minstrel_ht_update_cck(mp, mi, sband, sta); in minstrel_ht_update_caps()
1826 minstrel_ht_update_ofdm(mp, mi, sband, sta); in minstrel_ht_update_caps()
1829 minstrel_ht_update_stats(mp, mi); in minstrel_ht_update_caps()
1830 minstrel_ht_update_rates(mp, mi); in minstrel_ht_update_caps()
1854 struct minstrel_ht_sta *mi; in minstrel_ht_alloc_sta() local
1866 return kzalloc(sizeof(*mi), gfp); in minstrel_ht_alloc_sta()
1990 struct minstrel_ht_sta *mi = priv_sta; in minstrel_ht_get_expected_throughput() local
1993 i = MI_RATE_GROUP(mi->max_tp_rate[0]); in minstrel_ht_get_expected_throughput()
1994 j = MI_RATE_IDX(mi->max_tp_rate[0]); in minstrel_ht_get_expected_throughput()
1995 prob = mi->groups[i].rates[j].prob_avg; in minstrel_ht_get_expected_throughput()
1998 tp_avg = minstrel_ht_get_tp_avg(mi, i, j, prob) * 10; in minstrel_ht_get_expected_throughput()