diff options
| author | Naveen Rawat <naveenrawat@codeaurora.org> | 2016-10-10 15:25:50 -0700 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-10-17 21:58:41 -0700 |
| commit | 1620ecb8eee3571508cf3079a18ed6bad6ea4946 (patch) | |
| tree | ed14429604313907e6ce8f286d1937a00c69edcb | |
| parent | e15c208e1787b4a0c3426e84262fb5d8aa911278 (diff) | |
qcacld-3.0: Fix HT/VHT channel width for 2.4/5Ghz band
In function lim_send_ies_per_band, use ini configuration to
fix HT channel width for 2.4/5 GHz band. For 2.4GHz set VHT
channel width to 0.
Change-Id: Ided8628cc78ffbea7c9c9f5a16815daffffca37c
CRs-Fixed: 1076244
| -rw-r--r-- | core/mac/src/pe/lim/lim_utils.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index f347e201eec3..4a818586ca21 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -6543,9 +6543,9 @@ QDF_STATUS lim_send_ies_per_band(tpAniSirGlobal mac_ctx, { uint8_t ht_caps[DOT11F_IE_HTCAPS_MIN_LEN + 2] = {0}; uint8_t vht_caps[DOT11F_IE_VHTCAPS_MAX_LEN + 2] = {0}; - tHtCaps *p_ht_cap = (tHtCaps *)ht_caps; + tHtCaps *p_ht_cap = (tHtCaps *)(&ht_caps[2]); tSirMacVHTCapabilityInfo *p_vht_cap = - (tSirMacVHTCapabilityInfo *)vht_caps; + (tSirMacVHTCapabilityInfo *)(&vht_caps[2]); /* * Note: Do not use Dot11f VHT structure, since 1 byte present flag in @@ -6558,6 +6558,14 @@ QDF_STATUS lim_send_ies_per_band(tpAniSirGlobal mac_ctx, DOT11F_IE_HTCAPS_MIN_LEN + 2); /* Get LDPC and over write for 2G */ p_ht_cap->advCodingCap = lim_get_rx_ldpc(mac_ctx, CHAN_ENUM_6); + /* Get self cap for HT40 support in 2G */ + if (mac_ctx->roam.configParam.channelBondingMode24GHz) { + p_ht_cap->supportedChannelWidthSet = 1; + p_ht_cap->shortGI40MHz = 1; + } else { + p_ht_cap->supportedChannelWidthSet = 0; + p_ht_cap->shortGI40MHz = 0; + } lim_send_ie(mac_ctx, vdev_id, DOT11F_EID_HTCAPS, CDS_BAND_2GHZ, &ht_caps[2], DOT11F_IE_HTCAPS_MIN_LEN); /* @@ -6565,6 +6573,14 @@ QDF_STATUS lim_send_ies_per_band(tpAniSirGlobal mac_ctx, * is available in all reg domains. */ p_ht_cap->advCodingCap = lim_get_rx_ldpc(mac_ctx, CHAN_ENUM_64); + /* Get self cap for HT40 support in 5G */ + if (mac_ctx->roam.configParam.channelBondingMode5GHz) { + p_ht_cap->supportedChannelWidthSet = 1; + p_ht_cap->shortGI40MHz = 1; + } else { + p_ht_cap->supportedChannelWidthSet = 0; + p_ht_cap->shortGI40MHz = 0; + } lim_send_ie(mac_ctx, vdev_id, DOT11F_EID_HTCAPS, CDS_BAND_5GHZ, &ht_caps[2], DOT11F_IE_HTCAPS_MIN_LEN); @@ -6574,6 +6590,10 @@ QDF_STATUS lim_send_ies_per_band(tpAniSirGlobal mac_ctx, lim_set_vht_caps(mac_ctx, session, vht_caps, DOT11F_IE_VHTCAPS_MIN_LEN + 2); p_vht_cap->ldpcCodingCap = lim_get_rx_ldpc(mac_ctx, CHAN_ENUM_6); + /* Self VHT 80/160/80+80 channel width for 2G is 0 */ + p_vht_cap->supportedChannelWidthSet = 0; + p_vht_cap->shortGI80MHz = 0; + p_vht_cap->shortGI160and80plus80MHz = 0; lim_send_ie(mac_ctx, vdev_id, DOT11F_EID_VHTCAPS, CDS_BAND_2GHZ, &vht_caps[2], DOT11F_IE_VHTCAPS_MIN_LEN); @@ -6582,6 +6602,7 @@ QDF_STATUS lim_send_ies_per_band(tpAniSirGlobal mac_ctx, * is available in all reg domains. */ p_vht_cap->ldpcCodingCap = lim_get_rx_ldpc(mac_ctx, CHAN_ENUM_64); + /* Self VHT channel width for 5G is already negotiated with FW */ lim_send_ie(mac_ctx, vdev_id, DOT11F_EID_VHTCAPS, CDS_BAND_5GHZ, &vht_caps[2], DOT11F_IE_VHTCAPS_MIN_LEN); |
