After much toying around with this AMRR initial rate stuff,

I've decided that for 11n rates it's best to start (very) low and work
our way up.

So, from now on, the initial rate for AMRR 11n is MCS4.
It doesn't try MCS12 or MCS20 - at low signal strengths those don't
work very well at all.

AMRR will step the rate control up over time if things work out better.

Tested:

* Intel 5100
* Intel 5300 (using local diffs to test out 3x3 stream support)
This commit is contained in:
Adrian Chadd 2014-08-20 09:10:03 +00:00
parent 29d03af1e4
commit ebb1240823

View File

@ -195,12 +195,13 @@ amrr_node_init(struct ieee80211_node *ni)
rate &= IEEE80211_RATE_VAL;
/* pick initial rate from the rateset - HT or otherwise */
/* Pick something low that's likely to succeed */
for (amn->amn_rix = rs->rs_nrates - 1; amn->amn_rix > 0;
amn->amn_rix--) {
/* legacy - anything < 36mbit, stop searching */
/* 11n - stop at MCS4 / MCS12 / MCS28 */
/* 11n - stop at MCS4 */
if (amrr_node_is_11n(ni)) {
if ((rs->rs_rates[amn->amn_rix] & 0x7) < 4)
if ((rs->rs_rates[amn->amn_rix] & 0x1f) < 4)
break;
} else if ((rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL) <= 72)
break;