wlan: Add configuration parameters for LTE Coex
Add configuration parameters for LTE Coex. These include a victim
table and configuration knobs to modify LTE Coex behavior.
CRs-Fixed: 533230
Change-Id: If1f2a410ddf80a968f0cda07681e5e01f8943bd2
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 6831140..144cc8d 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -526,6 +526,8 @@
tANI_U32 configParamSize;
tANI_U32 *configDataValue;
WDI_WlanVersionType wcnssCompiledApiVersion;
+ tANI_U8 i;
+
if ((NULL == pMac)||(NULL == wdaContext))
{
VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
@@ -1371,6 +1373,68 @@
tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ sizeof(tHalCfg) + tlvStruct->length) ;
+ for (i = 0; i < QWLAN_HAL_CFG_MWS_COEX_MAX_VICTIM; i++)
+ {
+ /* [COEX] QWLAN_HAL_CFG_MWS_COEX_VX_WAN_FREQ */
+ tlvStruct->type = QWLAN_HAL_CFG_MWS_COEX_V1_WAN_FREQ + i*4;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ *configDataValue = pMac->btc.btcConfig.mwsCoexVictimWANFreq[i];
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
+ /* [COEX] QWLAN_HAL_CFG_MWS_COEX_VX_WLAN_FREQ */
+ tlvStruct->type = QWLAN_HAL_CFG_MWS_COEX_V1_WLAN_FREQ + i*4;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ *configDataValue = pMac->btc.btcConfig.mwsCoexVictimWLANFreq[i];
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
+ /* [COEX] QWLAN_HAL_CFG_MWS_COEX_VX_CONFIG */
+ tlvStruct->type = QWLAN_HAL_CFG_MWS_COEX_V1_CONFIG + i*4;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ *configDataValue = pMac->btc.btcConfig.mwsCoexVictimConfig[i];
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
+ /* [COEX] QWLAN_HAL_CFG_MWS_COEX_VX_CONFIG2 */
+ tlvStruct->type = QWLAN_HAL_CFG_MWS_COEX_V1_CONFIG2 + i*4;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ *configDataValue = pMac->btc.btcConfig.mwsCoexVictimConfig2[i];
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+ }
+
+ /* [COEX] QWLAN_HAL_CFG_MWS_COEX_MODEM_BACKOFF */
+ tlvStruct->type = QWLAN_HAL_CFG_MWS_COEX_MODEM_BACKOFF ;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ *configDataValue = pMac->btc.btcConfig.mwsCoexModemBackoff;
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
+ for (i = 0; i < QWLAN_HAL_CFG_MWS_COEX_MAX_CONFIG; i++)
+ {
+ /* [COEX] QWLAN_HAL_CFG_MWS_COEX_CONFIGX */
+ tlvStruct->type = QWLAN_HAL_CFG_MWS_COEX_CONFIG1 + i;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ *configDataValue = pMac->btc.btcConfig.mwsCoexConfig[i];
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+ }
+
+ /* [COEX] QWLAN_HAL_CFG_SAR_POWER_BACKOFF */
+ tlvStruct->type = QWLAN_HAL_CFG_SAR_POWER_BACKOFF ;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ *configDataValue = pMac->btc.btcConfig.SARPowerBackoff;
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
/* QWLAN_HAL_CFG_WCNSS_API_VERSION */
tlvStruct->type = QWLAN_HAL_CFG_WCNSS_API_VERSION ;
tlvStruct->length = sizeof(tANI_U32);