|
@@ -1864,8 +1864,15 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
|
|
|
maxMCSIdx = 8;
|
|
|
else if (DATA_RATE_11AC_MAX_MCS_9 ==
|
|
|
vhtMaxMcs) {
|
|
|
- /* VHT20 is supporting 0~8 */
|
|
|
- if (rate_flags & eHAL_TX_RATE_VHT20)
|
|
|
+ /*
|
|
|
+ * IEEE_P802.11ac_2013.pdf page 325, 326
|
|
|
+ * - MCS9 is valid for VHT20 when
|
|
|
+ * Nss = 3 or Nss = 6
|
|
|
+ * - MCS9 is not valid for VHT20 when
|
|
|
+ * Nss = 1,2,4,5,7,8
|
|
|
+ */
|
|
|
+ if ((rate_flags & eHAL_TX_RATE_VHT20) &&
|
|
|
+ (nss != 3 && nss != 6))
|
|
|
maxMCSIdx = 8;
|
|
|
else
|
|
|
maxMCSIdx = 9;
|
|
@@ -1973,6 +1980,18 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
|
|
|
maxSpeedMCS = 1;
|
|
|
maxMCSIdx =
|
|
|
pAdapter->hdd_stats.ClassA_stat.mcs_index;
|
|
|
+ /*
|
|
|
+ * IEEE_P802.11ac_2013.pdf page 325, 326
|
|
|
+ * - MCS9 is valid for VHT20 when
|
|
|
+ * Nss = 3 or Nss = 6
|
|
|
+ * - MCS9 is not valid for VHT20 when
|
|
|
+ * Nss = 1,2,4,5,7,8
|
|
|
+ */
|
|
|
+ if ((rate_flags & eHAL_TX_RATE_VHT20) &&
|
|
|
+ (maxMCSIdx > 8) &&
|
|
|
+ (nss != 3 && nss != 6)) {
|
|
|
+ maxMCSIdx = 8;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|