summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@qti.qualcomm.com>2016-06-23 16:33:08 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-06-28 18:02:27 +0530
commit7c28857a94505d9bfb396c4e3df83865a8923f48 (patch)
tree8454eb08557aa923abcb51011f2851f7c7f14073
parent5cf266dfe9570c05e6521ef6fb81f22e7a3f972a (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.c39
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"),