diff options
author | Felix Fietkau <nbd@nbd.name> | 2019-06-14 21:32:15 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2019-08-21 14:59:18 +0200 |
commit | a0637718d5a09b22e505ed6bef0ff42be254d94d (patch) | |
tree | d1a971965631846c2217294e69e89f7ebb8ca9cf /package/kernel/mac80211/patches/subsys/312-mac80211-minstrel_ht-fix-default-max-throughput-rate.patch | |
parent | a886a0ecc882fd207694780cff91a4ada11bbe30 (diff) | |
download | upstream-a0637718d5a09b22e505ed6bef0ff42be254d94d.tar.gz upstream-a0637718d5a09b22e505ed6bef0ff42be254d94d.tar.bz2 upstream-a0637718d5a09b22e505ed6bef0ff42be254d94d.zip |
mac80211: add new minstrel_ht patches to improve probing on mt76x2
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/kernel/mac80211/patches/subsys/312-mac80211-minstrel_ht-fix-default-max-throughput-rate.patch')
-rw-r--r-- | package/kernel/mac80211/patches/subsys/312-mac80211-minstrel_ht-fix-default-max-throughput-rate.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/subsys/312-mac80211-minstrel_ht-fix-default-max-throughput-rate.patch b/package/kernel/mac80211/patches/subsys/312-mac80211-minstrel_ht-fix-default-max-throughput-rate.patch new file mode 100644 index 0000000000..9855c35a5d --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/312-mac80211-minstrel_ht-fix-default-max-throughput-rate.patch @@ -0,0 +1,46 @@ +From: Felix Fietkau <nbd@nbd.name> +Date: Fri, 14 Jun 2019 21:14:22 +0200 +Subject: [PATCH] mac80211: minstrel_ht: fix default max throughput rate + indexes + +Use the first supported rate instead of 0 (which can be invalid) + +Signed-off-by: Felix Fietkau <nbd@nbd.name> +--- + +--- a/net/mac80211/rc80211_minstrel_ht.c ++++ b/net/mac80211/rc80211_minstrel_ht.c +@@ -486,7 +486,7 @@ minstrel_ht_assign_best_tp_rates(struct + tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_ewma; + tmp_mcs_tp = minstrel_ht_get_tp_avg(mi, tmp_group, tmp_idx, tmp_prob); + +- if (tmp_cck_tp > tmp_mcs_tp) { ++ if (tmp_cck_tp_rate && tmp_cck_tp > tmp_mcs_tp) { + for(i = 0; i < MAX_THR_RATES; i++) { + minstrel_ht_sort_best_tp_rates(mi, tmp_cck_tp_rate[i], + tmp_mcs_tp_rate); +@@ -558,11 +558,19 @@ minstrel_ht_update_stats(struct minstrel + mi->sample_slow = 0; + mi->sample_count = 0; + +- /* Initialize global rate indexes */ +- for(j = 0; j < MAX_THR_RATES; j++){ +- tmp_mcs_tp_rate[j] = 0; +- tmp_cck_tp_rate[j] = 0; +- } ++ memset(tmp_mcs_tp_rate, 0, sizeof(tmp_mcs_tp_rate)); ++ memset(tmp_cck_tp_rate, 0, sizeof(tmp_cck_tp_rate)); ++ if (mi->supported[MINSTREL_CCK_GROUP]) ++ for (j = 0; j < ARRAY_SIZE(tmp_cck_tp_rate); j++) ++ tmp_cck_tp_rate[j] = MINSTREL_CCK_GROUP * MCS_GROUP_RATES; ++ ++ if (mi->supported[MINSTREL_VHT_GROUP_0]) ++ index = MINSTREL_VHT_GROUP_0 * MCS_GROUP_RATES; ++ else ++ index = MINSTREL_HT_GROUP_0 * MCS_GROUP_RATES; ++ ++ for (j = 0; j < ARRAY_SIZE(tmp_mcs_tp_rate); j++) ++ tmp_mcs_tp_rate[j] = index; + + /* Find best rate sets within all MCS groups*/ + for (group = 0; group < ARRAY_SIZE(minstrel_mcs_groups); group++) { |