diff options
| author | Padma, Santhosh Kumar <skpadma@qti.qualcomm.com> | 2016-06-23 16:33:08 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-06-28 18:02:27 +0530 |
| commit | 7c28857a94505d9bfb396c4e3df83865a8923f48 (patch) | |
| tree | 8454eb08557aa923abcb51011f2851f7c7f14073 | |
| parent | 5cf266dfe9570c05e6521ef6fb81f22e7a3f972a (diff) | |
qcacld-2.0: Fix Beamforming during roaming
Currently, capabilities suBeamformeeCap and muBeamformeeCap are set
during association request but not in re-association request. This
can lead to failure in beamforming after roaming. Fix this by updating
them during roaming as well.
Change-Id: I28e86b93a5114f3b76733effe4428a92cf94b441
CRs-Fixed: 1033328
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c index d441a8e29531..c03a833856ae 100644 --- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c @@ -2477,6 +2477,45 @@ __limProcessSmeReassocReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf) psessionEntry->dot11mode = pReassocReq->dot11mode; psessionEntry->vhtCapability = IS_DOT11_MODE_VHT(pReassocReq->dot11mode); +#ifdef WLAN_FEATURE_11AC + if (psessionEntry->vhtCapability) { + if (psessionEntry->pePersona == VOS_STA_MODE) + psessionEntry->txBFIniFeatureEnabled = + pReassocReq->txBFIniFeatureEnabled; + else + psessionEntry->txBFIniFeatureEnabled = 0; + + psessionEntry->txMuBformee = pReassocReq->txMuBformee; + psessionEntry->enableVhtpAid = pReassocReq->enableVhtpAid; + psessionEntry->enableVhtGid = pReassocReq->enableVhtGid; + if (psessionEntry->txBFIniFeatureEnabled) { + if (cfgSetInt(pMac, WNI_CFG_VHT_SU_BEAMFORMEE_CAP, + psessionEntry->txBFIniFeatureEnabled) + != eSIR_SUCCESS) { + limLog(pMac, LOGE, FL("could not set " + "WNI_CFG_VHT_SU_BEAMFORMEE_CAP at CFG")); + retCode = eSIR_LOGP_EXCEPTION; + goto end; + } + if (cfgSetInt(pMac, WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, + pReassocReq->txBFCsnValue) + != eSIR_SUCCESS) { + limLog(pMac, LOGE, FL("could not set " + "WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED at CFG")); + retCode = eSIR_LOGP_EXCEPTION; + goto end; + } + } + } + limLog(pMac, LOG1, + FL("vhtCapability: %d txBFIniFeatureEnabled: %d" + "txBFCsnValue: %d txMuBformee: %d"), + psessionEntry->vhtCapability, + psessionEntry->txBFIniFeatureEnabled, + pReassocReq->txBFCsnValue, + psessionEntry->txMuBformee); +#endif + psessionEntry->enableHtSmps = pReassocReq->enableHtSmps; psessionEntry->htSmpsvalue = pReassocReq->htSmps; limLog(pMac, LOG1, FL("enableHtSmps: %d htSmps: %d supported nss 1x1: %d"), |
