• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/mac80211/

Lines Matching defs:mi

123 minstrel_get_ratestats(struct minstrel_ht_sta *mi, int index)
125 return &mi->groups[index / MCS_GROUP_RATES].rates[index % MCS_GROUP_RATES];
159 minstrel_ht_calc_tp(struct minstrel_priv *mp, struct minstrel_ht_sta *mi,
165 mr = &mi->groups[group].rates[rate];
172 usecs = mi->overhead / MINSTREL_TRUNC(mi->avg_ampdu_len);
187 minstrel_ht_update_stats(struct minstrel_priv *mp, struct minstrel_ht_sta *mi)
194 if (mi->ampdu_packets > 0) {
195 mi->avg_ampdu_len = minstrel_ewma(mi->avg_ampdu_len,
196 MINSTREL_FRAC(mi->ampdu_len, mi->ampdu_packets), EWMA_LEVEL);
197 mi->ampdu_len = 0;
198 mi->ampdu_packets = 0;
201 mi->sample_slow = 0;
202 mi->sample_count = 0;
203 mi->max_tp_rate = 0;
204 mi->max_tp_rate2 = 0;
205 mi->max_prob_rate = 0;
213 mg = &mi->groups[group];
220 mi->sample_count++;
230 minstrel_ht_calc_tp(mp, mi, group, i);
249 mr = minstrel_get_ratestats(mi, index);
263 mi->sample_count *= 4;
270 mg = &mi->groups[group];
274 mr = minstrel_get_ratestats(mi, mg->max_prob_rate);
277 mi->max_prob_rate = mg->max_prob_rate;
282 mr = minstrel_get_ratestats(mi, mg->max_tp_rate);
284 mi->max_tp_rate = mg->max_tp_rate;
288 mr = minstrel_get_ratestats(mi, mg->max_tp_rate2);
290 mi->max_tp_rate2 = mg->max_tp_rate2;
295 mi->stats_update = jiffies;
311 minstrel_next_sample_idx(struct minstrel_ht_sta *mi)
316 mi->sample_group++;
317 mi->sample_group %= ARRAY_SIZE(minstrel_mcs_groups);
318 mg = &mi->groups[mi->sample_group];
333 minstrel_downgrade_rate(struct minstrel_ht_sta *mi, unsigned int *idx,
342 if (!mi->groups[group].supported)
350 *idx = mi->groups[group].max_tp_rate;
352 *idx = mi->groups[group].max_tp_rate2;
383 struct minstrel_ht_sta *mi = &msp->ht;
406 mi->ampdu_packets++;
407 mi->ampdu_len += info->status.ampdu_len;
409 if (!mi->sample_wait && !mi->sample_tries && mi->sample_count > 0) {
410 mi->sample_wait = 4 + 2 * MINSTREL_TRUNC(mi->avg_ampdu_len);
411 mi->sample_tries = 3;
412 mi->sample_count--;
416 mi->sample_packets += info->status.ampdu_len;
417 minstrel_next_sample_idx(mi);
428 rate = &mi->groups[group].rates[ar[i].idx % 8];
440 rate = minstrel_get_ratestats(mi, mi->max_tp_rate);
444 minstrel_downgrade_rate(mi, &mi->max_tp_rate, true);
446 rate2 = minstrel_get_ratestats(mi, mi->max_tp_rate2);
450 minstrel_downgrade_rate(mi, &mi->max_tp_rate2, false);
452 if (time_after(jiffies, mi->stats_update + (mp->update_interval / 2 * HZ) / 1000)) {
453 minstrel_ht_update_stats(mp, mi);
459 minstrel_calc_retransmit(struct minstrel_priv *mp, struct minstrel_ht_sta *mi,
467 unsigned int ampdu_len = MINSTREL_TRUNC(mi->avg_ampdu_len);
469 mr = minstrel_get_ratestats(mi, index);
482 tx_time = 2 * (t_slot + mi->overhead + tx_time_data);
483 tx_time_rtscts = 2 * (t_slot + mi->overhead_rtscts + tx_time_data);
487 tx_time += cw + t_slot + mi->overhead;
488 tx_time_rtscts += cw + t_slot + mi->overhead_rtscts;
497 minstrel_ht_set_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi,
505 mr = minstrel_get_ratestats(mi, index);
507 minstrel_calc_retransmit(mp, mi, index);
532 minstrel_get_sample_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi)
538 if (mi->sample_wait > 0) {
539 mi->sample_wait--;
543 if (!mi->sample_tries)
546 mi->sample_tries--;
547 mg = &mi->groups[mi->sample_group];
550 sample_idx += mi->sample_group * MCS_GROUP_RATES;
564 minstrel_get_duration(mi->max_tp_rate)) {
568 if (mi->sample_slow++ > 2)
575 minstrel_next_sample_idx(mi);
586 struct minstrel_ht_sta *mi = &msp->ht;
596 info->flags |= mi->tx_flags;
597 sample_idx = minstrel_get_sample_rate(mp, mi);
599 minstrel_ht_set_rate(mp, mi, &ar[0], sample_idx,
601 minstrel_ht_set_rate(mp, mi, &ar[1], mi->max_tp_rate,
605 minstrel_ht_set_rate(mp, mi, &ar[0], mi->max_tp_rate,
607 minstrel_ht_set_rate(mp, mi, &ar[1], mi->max_tp_rate2,
610 minstrel_ht_set_rate(mp, mi, &ar[2], mi->max_prob_rate, txrc, false, true);
615 mi->total_packets++;
618 if (mi->total_packets == ~0) {
619 mi->total_packets = 0;
620 mi->sample_packets = 0;
631 struct minstrel_ht_sta *mi = &msp->ht;
652 memset(mi, 0, sizeof(*mi));
653 mi->stats_update = jiffies;
656 mi->overhead = ieee80211_frame_duration(local, 0, 60, 1, 1) + ack_dur;
657 mi->overhead_rtscts = mi->overhead + 2 * ack_dur;
659 mi->avg_ampdu_len = MINSTREL_FRAC(1, 1);
663 mi->sample_count = 16;
664 mi->sample_wait = 0;
666 mi->sample_count = 8;
667 mi->sample_wait = 8;
669 mi->sample_tries = 4;
673 mi->tx_flags |= stbc << IEEE80211_TX_CTL_STBC_SHIFT;
676 mi->tx_flags |= IEEE80211_TX_CTL_LDPC;
682 for (i = 0; i < ARRAY_SIZE(mi->groups); i++) {
685 mi->groups[i].supported = 0;
699 mi->groups[i].supported =