970
971
972
973 if (rate >= rate_ctrl->rate_max_phy && probe_allowed) {
974 rate = rate_ctrl->rate_max_phy;
975
976
977
978 if (ath_rc_get_nextvalid_txrate(rate_table,
979 rate_ctrl, rate, &next_rate) &&
980 (now_msec - rate_ctrl->probe_time >
981 rate_table->probe_interval) &&
982 (rate_ctrl->hw_maxretry_pktcnt >= 1)) {
983 rate = next_rate;
984 rate_ctrl->probe_rate = rate;
985 rate_ctrl->probe_time = now_msec;
986 rate_ctrl->hw_maxretry_pktcnt = 0;
987 *is_probing = TRUE;
988 }
989 }
990
991
992
993
994
995
996
997 if (rate > (rate_ctrl->rate_table_size - 1))
998 rate = rate_ctrl->rate_table_size - 1;
999
1000 ASSERT((rate_table->info[rate].valid && !ath_rc_priv->single_stream) ||
1001 (rate_table->info[rate].valid_single_stream &&
1002 ath_rc_priv->single_stream));
1003
1004 return rate;
1005}
1006
1007static void ath_rc_rate_set_series(const struct ath_rate_table *rate_table ,
1008 struct ath_rc_series *series,
1009 u8 tries,
1010 u8 rix,