wlan:WDA: Multiuser Transmit Beamforming Host changes
Adds the MU Bformee host related changes, INI param EnableMuBformee
is added to enable the feature. A new Feature bit(MU_MIMO-41) is also
added in interface file.
This change take care of the WDA/WDI files changes.
CRs-Fixed: 694121
Change-Id: I45b4d21b7089dffda9b7ff99d2491e36b80d8003
diff --git a/CORE/WDA/inc/legacy/halMsgApi.h b/CORE/WDA/inc/legacy/halMsgApi.h
index 60535d3..ba0b003 100644
--- a/CORE/WDA/inc/legacy/halMsgApi.h
+++ b/CORE/WDA/inc/legacy/halMsgApi.h
@@ -283,6 +283,7 @@
tANI_U8 vhtCapable;
tANI_U8 vhtTxChannelWidthSet;
tANI_U8 vhtTxBFCapable;
+ tANI_U8 vhtTxMUBformeeCapable;
#endif
tANI_U8 htLdpcCapable;
diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h
index ff5410e..454a634 100644
--- a/CORE/WDA/inc/wlan_qct_wda.h
+++ b/CORE/WDA/inc/wlan_qct_wda.h
@@ -132,6 +132,7 @@
}WDA_AuthType;
#define IS_FW_IN_TX_PATH_FEATURE_ENABLE ((WDI_getHostWlanFeatCaps(FW_IN_TX_PATH)) & (WDA_getFwWlanFeatCaps(FW_IN_TX_PATH)))
+#define IS_MUMIMO_BFORMEE_CAPABLE ((WDI_getHostWlanFeatCaps(MU_MIMO)) & (WDA_getFwWlanFeatCaps(MU_MIMO)))
/*--------------------------------------------------------------------------
Utilities
--------------------------------------------------------------------------*/
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 29885aa..08a1047 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -4346,6 +4346,11 @@
wdiStaParams->ucVhtCapableSta = wdaStaParams->vhtCapable;
wdiStaParams->ucVhtTxChannelWidthSet = wdaStaParams->vhtTxChannelWidthSet;
wdiStaParams->ucVhtTxBFEnabled = wdaStaParams->vhtTxBFCapable;
+ wdiStaParams->vhtTxMUBformeeCapable = wdaStaParams->vhtTxMUBformeeCapable;
+ /* When MU vhtTxMUBformeeCapable is set, SU ucVhtTxBFEnabled
+ * must be set by default */
+ if ( wdiStaParams->vhtTxMUBformeeCapable )
+ wdiStaParams->ucVhtTxBFEnabled = wdaStaParams->vhtTxMUBformeeCapable;
#endif
wdiStaParams->ucHtLdpcEnabled= wdaStaParams->htLdpcCapable;
wdiStaParams->ucVhtLdpcEnabled = wdaStaParams->vhtLdpcCapable;
diff --git a/CORE/WDI/CP/inc/wlan_qct_wdi.h b/CORE/WDI/CP/inc/wlan_qct_wdi.h
index f354107..16b59df 100644
--- a/CORE/WDI/CP/inc/wlan_qct_wdi.h
+++ b/CORE/WDI/CP/inc/wlan_qct_wdi.h
@@ -1691,6 +1691,7 @@
wpt_uint8 ucVhtCapableSta;
wpt_uint8 ucVhtTxChannelWidthSet;
wpt_uint8 ucVhtTxBFEnabled;
+ wpt_uint8 vhtTxMUBformeeCapable;
#endif
wpt_uint8 ucHtLdpcEnabled;
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index 6d99130..4e96ba5 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -180,7 +180,7 @@
#else
,FEATURE_NOT_SUPPORTED //40
#endif
- ,FEATURE_NOT_SUPPORTED //41
+ ,MU_MIMO //41
#ifdef WLAN_FEATURE_EXTSCAN
,EXTENDED_SCAN //42
#else
@@ -1363,6 +1363,9 @@
pCapStr += strlen("EXTENDED_SCAN");
break;
#endif
+ case MU_MIMO: snprintf(pCapStr, sizeof("MU_MIMO"), "%s", "MU_MIMO");
+ pCapStr += strlen("MU_MIMO");
+ break;
}
*pCapStr++ = ',';
@@ -8315,6 +8318,7 @@
return WDI_STATUS_E_FAILURE;
}
+ wpalMemoryZero(&halConfigBssReqMsg, sizeof(tConfigBssReqMsg));
pwdiConfigBSSParams = (WDI_ConfigBSSReqParamsType*)pEventData->pEventData;
wdiConfigBSSRspCb = (WDI_ConfigBSSRspCb)pEventData->pCBfnc;
/*-------------------------------------------------------------------------
@@ -11784,6 +11788,7 @@
return WDI_STATUS_E_FAILURE;
}
+ wpalMemoryZero(&halConfigStaReqMsg, sizeof(tConfigStaReqMsg));
pwdiConfigSTAParams = (WDI_ConfigSTAReqParamsType*)pEventData->pEventData;
wdiConfigSTARspCb = (WDI_ConfigSTARspCb)pEventData->pCBfnc;
/*-------------------------------------------------------------------------
@@ -24398,6 +24403,7 @@
phalConfigSta_V1->vhtCapable = pwdiConfigSta->ucVhtCapableSta;
phalConfigSta_V1->vhtTxChannelWidthSet = pwdiConfigSta->ucVhtTxChannelWidthSet;
phalConfigSta_V1->vhtTxBFEnabled = pwdiConfigSta->ucVhtTxBFEnabled;
+ phalConfigSta_V1->vhtTxMUBformeeCapable = pwdiConfigSta->vhtTxMUBformeeCapable;
phalConfigSta_V1->htLdpcEnabled = pwdiConfigSta->ucHtLdpcEnabled;
phalConfigSta_V1->vhtLdpcEnabled = pwdiConfigSta->ucVhtLdpcEnabled;