qcacld-3.0: Report max MCS index 8 for VHT20

qcacld-2.0 to qcacld-3.0 propagation

Currently driver reports max MCS index 9 for VHT20, but cfg802.11
doesn't support such case, which leads to link speed null returned
to upper-layer.
Update the driver to report max MCS index 8 for VHT20.

Change-Id: I06c97db85d88decf418be602cb5f64135f61a686
CRs-Fixed: 1005141
This commit is contained in:
Hu Wang 2016-08-25 15:15:54 +08:00 • committed by qcabuildsw
commit 1f2b8a899b

View file

@ -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;
}
}
}