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;