mwifiex: improve readability in 11ac mcsmap to maxrate conversion
1) rename max_mcs to mcs; 2) initialize 'i' and 'nss' as 1 instead of 0 in nss lookup; 3) use GET_VHTNSSMCS(mcs_map, nss) macro; 4) use IEEE80211_VHT_MCS_* definitions instead of hard coding Reported-by: Paul Stewart <pstew@chromium.org> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
89467d8ca2
commit
406d702b47
|
@ -55,7 +55,7 @@ static u16
|
|||
mwifiex_convert_mcsmap_to_maxrate(struct mwifiex_private *priv,
|
||||
u8 bands, u16 mcs_map)
|
||||
{
|
||||
u8 i, nss, max_mcs;
|
||||
u8 i, nss, mcs;
|
||||
u16 max_rate = 0;
|
||||
u32 usr_vht_cap_info = 0;
|
||||
struct mwifiex_adapter *adapter = priv->adapter;
|
||||
|
@ -66,29 +66,29 @@ mwifiex_convert_mcsmap_to_maxrate(struct mwifiex_private *priv,
|
|||
usr_vht_cap_info = adapter->usr_dot_11ac_dev_cap_bg;
|
||||
|
||||
/* find the max NSS supported */
|
||||
nss = 0;
|
||||
for (i = 0; i < 8; i++) {
|
||||
max_mcs = (mcs_map >> (2 * i)) & 0x3;
|
||||
if (max_mcs < 3)
|
||||
nss = 1;
|
||||
for (i = 1; i <= 8; i++) {
|
||||
mcs = GET_VHTNSSMCS(mcs_map, i);
|
||||
if (mcs < IEEE80211_VHT_MCS_NOT_SUPPORTED)
|
||||
nss = i;
|
||||
}
|
||||
max_mcs = (mcs_map >> (2 * nss)) & 0x3;
|
||||
mcs = GET_VHTNSSMCS(mcs_map, nss);
|
||||
|
||||
/* if max_mcs is 3, nss must be 0 (SS = 1). Thus, max mcs is MCS 9 */
|
||||
if (max_mcs >= 3)
|
||||
max_mcs = 2;
|
||||
/* if mcs is 3, nss must be 1 (NSS = 1). Default mcs to MCS 0~9 */
|
||||
if (mcs == IEEE80211_VHT_MCS_NOT_SUPPORTED)
|
||||
mcs = IEEE80211_VHT_MCS_SUPPORT_0_9;
|
||||
|
||||
if (GET_VHTCAP_CHWDSET(usr_vht_cap_info)) {
|
||||
/* support 160 MHz */
|
||||
max_rate = max_rate_lgi_160MHZ[nss][max_mcs];
|
||||
max_rate = max_rate_lgi_160MHZ[nss - 1][mcs];
|
||||
if (!max_rate)
|
||||
/* MCS9 is not supported in NSS6 */
|
||||
max_rate = max_rate_lgi_160MHZ[nss][max_mcs - 1];
|
||||
max_rate = max_rate_lgi_160MHZ[nss - 1][mcs - 1];
|
||||
} else {
|
||||
max_rate = max_rate_lgi_80MHZ[nss][max_mcs];
|
||||
max_rate = max_rate_lgi_80MHZ[nss - 1][mcs];
|
||||
if (!max_rate)
|
||||
/* MCS9 is not supported in NSS3 */
|
||||
max_rate = max_rate_lgi_80MHZ[nss][max_mcs - 1];
|
||||
max_rate = max_rate_lgi_80MHZ[nss - 1][mcs - 1];
|
||||
}
|
||||
|
||||
return max_rate;
|
||||
|
|
Loading…
Reference in New Issue