Configurig WLAN/BT interval of BTC as tunable parameters from host
This gerrit provides the option to configure WLAN/BT interval of BTC
in both STA/SAP mode.
Change-Id: Ia8ffbc350a937b34a6aa951552431aad44895e2b
CRs-Fixed: 516956
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index fd15ea9..a2aa8ba 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1416,6 +1416,26 @@
#define CFG_ENABLE_SSR_MAX ( 1 )
#define CFG_ENABLE_SSR_DEFAULT ( 1 )
+#define CFG_BTC_ACTIVE_WLAN_LEN_NAME "btcActiveWlanLen"
+#define CFG_BTC_ACTIVE_WLAN_LEN_MIN ( 0 )
+#define CFG_BTC_ACTIVE_WLAN_LEN_MAX ( 250000 )
+#define CFG_BTC_ACTIVE_WLAN_LEN_DEFAULT ( 60000 )
+
+#define CFG_BTC_ACTIVE_BT_LEN_NAME "btcActiveBtLen"
+#define CFG_BTC_ACTIVE_BT_LEN_MIN ( 0 )
+#define CFG_BTC_ACTIVE_BT_LEN_MAX ( 250000 )
+#define CFG_BTC_ACTIVE_BT_LEN_DEFAULT ( 90000 )
+
+#define CFG_BTC_SAP_ACTIVE_WLAN_LEN_NAME "btcSapActiveWlanLen"
+#define CFG_BTC_SAP_ACTIVE_WLAN_LEN_MIN ( 0 )
+#define CFG_BTC_SAP_ACTIVE_WLAN_LEN_MAX ( 250000 )
+#define CFG_BTC_SAP_ACTIVE_WLAN_LEN_DEFAULT ( 60000 )
+
+#define CFG_BTC_SAP_ACTIVE_BT_LEN_NAME "btcSapActiveBtLen"
+#define CFG_BTC_SAP_ACTIVE_BT_LEN_MIN ( 0 )
+#define CFG_BTC_SAP_ACTIVE_BT_LEN_MAX ( 250000 )
+#define CFG_BTC_SAP_ACTIVE_BT_LEN_DEFAULT ( 90000 )
+
/*
* VOS Trace Enable Control
* Notes:
@@ -2353,6 +2373,10 @@
v_U8_t nSelect5GHzMargin;
v_U8_t isCoalesingInIBSSAllowed;
v_BOOL_t cfgAthDisable;
+ v_U32_t cfgBtcActiveWlanLen;
+ v_U32_t cfgBtcActiveBtLen;
+ v_U32_t cfgBtcSapActiveWlanLen;
+ v_U32_t cfgBtcSapActiveBtLen;
} hdd_config_t;
/*---------------------------------------------------------------------------
Function declarations and documenation
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index a46e9cd..b02bccf 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2819,6 +2819,33 @@
CFG_DISABLE_ATH_DEFAULT,
CFG_DISABLE_ATH_MIN,
CFG_DISABLE_ATH_MAX ),
+ REG_VARIABLE(CFG_BTC_ACTIVE_WLAN_LEN_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, cfgBtcActiveWlanLen,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_BTC_ACTIVE_WLAN_LEN_DEFAULT,
+ CFG_BTC_ACTIVE_WLAN_LEN_MIN,
+ CFG_BTC_ACTIVE_WLAN_LEN_MAX ),
+
+ REG_VARIABLE(CFG_BTC_ACTIVE_BT_LEN_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, cfgBtcActiveBtLen,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_BTC_ACTIVE_BT_LEN_DEFAULT,
+ CFG_BTC_ACTIVE_BT_LEN_MIN,
+ CFG_BTC_ACTIVE_BT_LEN_MAX ),
+
+ REG_VARIABLE(CFG_BTC_SAP_ACTIVE_WLAN_LEN_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, cfgBtcSapActiveWlanLen,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_BTC_SAP_ACTIVE_WLAN_LEN_DEFAULT,
+ CFG_BTC_SAP_ACTIVE_WLAN_LEN_MIN,
+ CFG_BTC_SAP_ACTIVE_WLAN_LEN_MAX ),
+
+ REG_VARIABLE(CFG_BTC_SAP_ACTIVE_BT_LEN_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, cfgBtcSapActiveBtLen,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_BTC_SAP_ACTIVE_BT_LEN_DEFAULT,
+ CFG_BTC_SAP_ACTIVE_BT_LEN_MIN,
+ CFG_BTC_SAP_ACTIVE_BT_LEN_MAX ),
};
/*
@@ -4379,6 +4406,42 @@
fStatus = FALSE;
hddLog(LOGE, "Could not pass on WNI_CFG_ATH_DISABLE to CCM");
}
+
+ if (ccmCfgSetInt(pHddCtx->hHal,
+ WNI_CFG_BTC_ACTIVE_WLAN_LEN,
+ pConfig->cfgBtcActiveWlanLen,
+ NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_BTC_ACTIVE_WLAN_LEN to CCM");
+ }
+
+ if (ccmCfgSetInt(pHddCtx->hHal,
+ WNI_CFG_BTC_ACTIVE_BT_LEN,
+ pConfig->cfgBtcActiveBtLen,
+ NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_BTC_ACTIVE_BT_LEN to CCM");
+ }
+
+ if (ccmCfgSetInt(pHddCtx->hHal,
+ WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN,
+ pConfig->cfgBtcSapActiveWlanLen,
+ NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_BTC_ACTIVE_WLAN_LEN to CCM");
+ }
+
+ if (ccmCfgSetInt(pHddCtx->hHal,
+ WNI_CFG_BTC_SAP_ACTIVE_BT_LEN,
+ pConfig->cfgBtcSapActiveBtLen,
+ NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_BTC_ACTIVE_BT_LEN to CCM");
+ }
return fStatus;
}
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index cb481b9..84d45b0 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -364,6 +364,10 @@
#define WNI_CFG_ANTENNA_DIVESITY 304
#define WNI_CFG_GO_LINK_MONITOR_TIMEOUT 305
#define WNI_CFG_ATH_DISABLE 306
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN 307
+#define WNI_CFG_BTC_ACTIVE_BT_LEN 308
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN 309
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN 310
/*
* String parameter lengths
@@ -2571,10 +2575,42 @@
#define WNI_CFG_ATH_DISABLE_APMAX 1
#define WNI_CFG_ATH_DISABLE_APDEF 0
-#define CFG_PARAM_MAX_NUM 307
-#define CFG_AP_IBUF_MAX_SIZE 246
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_STAMIN 0
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_STAMAX 250000
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_STADEF 60000
+
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_APMIN 0
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_APMAX 250000
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_APDEF 60000
+
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_STAMIN 0
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_STAMAX 250000
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_STADEF 90000
+
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_APMIN 0
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_APMAX 250000
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_APDEF 90000
+
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_STAMIN 0
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_STAMAX 250000
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_STADEF 60000
+
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_APMIN 0
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_APMAX 250000
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_APDEF 60000
+
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_STAMIN 0
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_STAMAX 250000
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_STADEF 90000
+
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_APMIN 0
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_APMAX 250000
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_APDEF 90000
+
+#define CFG_PARAM_MAX_NUM 311
+#define CFG_AP_IBUF_MAX_SIZE 250
#define CFG_AP_SBUF_MAX_SIZE 3422
-#define CFG_STA_IBUF_MAX_SIZE 241
+#define CFG_STA_IBUF_MAX_SIZE 245
#define CFG_STA_SBUF_MAX_SIZE 3388
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index 84218bd..bb5898c 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -358,6 +358,10 @@
#define WNI_CFG_ANTENNA_DIVESITY 304
#define WNI_CFG_GO_LINK_MONITOR_TIMEOUT 305
#define WNI_CFG_ATH_DISABLE 306
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN 307
+#define WNI_CFG_BTC_ACTIVE_BT_LEN 308
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN 309
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN 310
/*
* String parameter lengths
@@ -1668,8 +1672,24 @@
#define WNI_CFG_ATH_DISABLE_STAMAX 1
#define WNI_CFG_ATH_DISABLE_STADEF 0
-#define CFG_PARAM_MAX_NUM 307
-#define CFG_STA_IBUF_MAX_SIZE 241
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_STAMIN 0
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_STAMAX 250000
+#define WNI_CFG_BTC_ACTIVE_WLAN_LEN_STADEF 60000
+
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_STAMIN 0
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_STAMAX 250000
+#define WNI_CFG_BTC_ACTIVE_BT_LEN_STADEF 90000
+
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_STAMIN 0
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_STAMAX 250000
+#define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN_STADEF 60000
+
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_STAMIN 0
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_STAMAX 250000
+#define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN_STADEF 90000
+
+#define CFG_PARAM_MAX_NUM 311
+#define CFG_STA_IBUF_MAX_SIZE 245
#define CFG_STA_SBUF_MAX_SIZE 3388
#define CFG_SEM_MAX_NUM 19
diff --git a/CORE/MAC/src/cfg/cfgParamName.c b/CORE/MAC/src/cfg/cfgParamName.c
index 0aba866..487269c 100644
--- a/CORE/MAC/src/cfg/cfgParamName.c
+++ b/CORE/MAC/src/cfg/cfgParamName.c
@@ -336,6 +336,10 @@
(unsigned char *)"ANTENNA_DIVESITY",
(unsigned char *)"GO_LINK_MONITOR_TIMEOUT",
(unsigned char *)"ATH_DISABLE",
+ (unsigned char *)"BTC_ACTIVE_WLAN_LEN",
+ (unsigned char *)"BTC_ACTIVE_BT_LEN",
+ (unsigned char *)"BTC_SAP_ACTIVE_WLAN_LEN",
+ (unsigned char *)"BTC_SAP_ACTIVE_BT_LEN",
};
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index f7836e5..60d12b0 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -4602,3 +4602,50 @@
V RW NP
NONE
0 1 0
+* BTC Active WLAN Len
+*
+WNI_CFG_BTC_ACTIVE_WLAN_LEN I 4 7
+V RW NP
+HAL
+0 250000 60000
+V RW NP
+HAL
+0 250000 60000
+*
+*
+
+* BTC Active BT Len
+*
+WNI_CFG_BTC_ACTIVE_BT_LEN I 4 7
+V RW NP
+HAL
+0 250000 90000
+V RW NP
+HAL
+0 250000 90000
+*
+*
+
+* BTC SAP Active WLAN Len
+*
+WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN I 4 7
+V RW NP
+HAL
+0 250000 60000
+V RW NP
+HAL
+0 250000 60000
+*
+*
+
+* BTC SAP Active BT Len
+*
+WNI_CFG_BTC_SAP_ACTIVE_BT_LEN I 4 7
+V RW NP
+HAL
+0 250000 90000
+V RW NP
+HAL
+0 250000 90000
+*
+*
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 367bf17..cc97bad 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -1679,6 +1679,62 @@
tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ sizeof(tHalCfg) + tlvStruct->length) ;
+ /* QWLAN_HAL_CFG_BTC_STATIC_OPP_BTC_ACTIVE_WLAN_LEN */
+ tlvStruct->type = QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN ;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ if (wlan_cfgGetInt(pMac, WNI_CFG_BTC_ACTIVE_WLAN_LEN,
+ configDataValue ) != eSIR_SUCCESS)
+ {
+ VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+ "Failed to get value for WNI_CFG_BTC_ACTIVE_WLAN_LEN");
+ goto handle_failure;
+ }
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
+ /* QWLAN_HAL_CFG_BTC_STATIC_OPP_BTC_ACTIVE_BT_LEN */
+ tlvStruct->type = QWLAN_HAL_CFG_BTC_STATIC_OPP_WLAN_ACTIVE_BT_LEN ;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ if (wlan_cfgGetInt(pMac, WNI_CFG_BTC_ACTIVE_BT_LEN,
+ configDataValue ) != eSIR_SUCCESS)
+ {
+ VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+ "Failed to get value for WNI_CFG_BTC_ACTIVE_BT_LEN");
+ goto handle_failure;
+ }
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
+ /* QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN */
+ tlvStruct->type = QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_WLAN_LEN ;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ if (wlan_cfgGetInt(pMac, WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN,
+ configDataValue ) != eSIR_SUCCESS)
+ {
+ VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+ "Failed to get value for WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN");
+ goto handle_failure;
+ }
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
+ /* QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_BTC_ACTIVE_BT_LEN */
+ tlvStruct->type = QWLAN_HAL_CFG_BTC_SAP_STATIC_OPP_WLAN_ACTIVE_BT_LEN ;
+ tlvStruct->length = sizeof(tANI_U32);
+ configDataValue = (tANI_U32 *)(tlvStruct + 1);
+ if (wlan_cfgGetInt(pMac, WNI_CFG_BTC_SAP_ACTIVE_BT_LEN,
+ configDataValue ) != eSIR_SUCCESS)
+ {
+ VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+ "Failed to get value for WNI_CFG_BTC_SAP_ACTIVE_BT_LEN");
+ goto handle_failure;
+ }
+ tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ + sizeof(tHalCfg) + tlvStruct->length) ;
+
wdiStartParams->usConfigBufferLen = (tANI_U8 *)tlvStruct - tlvStructStart ;
#ifdef WLAN_DEBUG
{
diff --git a/firmware_bin/WCNSS_cfg.dat b/firmware_bin/WCNSS_cfg.dat
index 14c7780..3e5fac3 100644
--- a/firmware_bin/WCNSS_cfg.dat
+++ b/firmware_bin/WCNSS_cfg.dat
Binary files differ