summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Qian <zhangq@codeaurora.org>2017-11-29 14:46:04 +0800
committersnandini <snandini@codeaurora.org>2017-12-07 21:53:25 -0800
commit5d6dd2514f9ce999cf413ef1445db8781eea395f (patch)
tree7cd56108ee2d7c098c147249ca60af30e83b4347
parentf068fdf2400636ed6a59c5c1c64170411b1b04dd (diff)
qcacld-2.0: Add CCA threshold in INI for ESTI adaptivity
Three paramaters gCCAThresholdEnable, gCCAThreshold2G and gCCAThreshold5G are added to the INI file. Once threshold is enabled in INI file, host will set WMI_PDEV_PARAM_CCA_THRESHOLD(0~7 bit for 2G band, 8~15 bit for 5G band). Change-Id: Ifc525baa7261ea9bf04cc9ff7e7c3189b07c7a39 CRs-Fixed: 2150640
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h63
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c21
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c23
3 files changed, 107 insertions, 0 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 429de488e53a..6bd23d496d31 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -4796,6 +4796,66 @@ FG_BTC_BT_INTERVAL_PAGE_P2P_STA_DEFAULT
#define CFG_OCB_TX_PER_PKT_STATS_ENABLE_DEFAULT ( 0 )
#endif /* WLAN_FEATURE_DSRC */
+/*
+ * <ini>
+ * gCCAThresholdEnable - enable/disable CCA threshold setting
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to overide CCA threshold for ESTI Adaptivity.
+ *
+ * Related: NOne
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_CCA_THRESHOLD_ENABLE_NAME "gCCAThresholdEnable"
+#define CFG_CCA_THRESHOLD_ENABLE_MIN (0)
+#define CFG_CCA_THRESHOLD_ENABLE_MAX (1)
+#define CFG_CCA_THRESHOLD_ENABLE_DEFAULT (0)
+
+/*
+ * <ini>
+ * gCCAThreshold2G - CCA threshold for 2G band
+ * @Min: 10
+ * @Max: 127
+ * @Default: 28
+ *
+ * Once CCA threshold is enabled, this is threshold for 2G band.
+ *
+ * Related: None
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_CCA_THRESHOLD_2G_NAME "gCCAThreshold2G"
+#define CFG_CCA_THRESHOLD_2G_MIN (10)
+#define CFG_CCA_THRESHOLD_2G_MAX (127)
+#define CFG_CCA_THRESHOLD_2G_DEFAULT (28)
+
+/*
+ * <ini>
+ * gCCAThreshold5G - CCA threshold for 5G band
+ * @Min: 10
+ * @Max: 127
+ * @Default: 28
+ *
+ * Once CCA threshold is enabled, this is threshold for 5G band.
+ *
+ * Related: None
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_CCA_THRESHOLD_5G_NAME "gCCAThreshold5G"
+#define CFG_CCA_THRESHOLD_5G_MIN (10)
+#define CFG_CCA_THRESHOLD_5G_MAX (127)
+#define CFG_CCA_THRESHOLD_5G_DEFAULT (28)
+
/*---------------------------------------------------------------------------
Type declarations
-------------------------------------------------------------------------*/
@@ -5674,6 +5734,9 @@ struct hdd_config {
#ifdef WLAN_FEATURE_DSRC
bool ocb_tx_per_pkt_stats_enabled;
#endif
+ bool cca_threshold_enable;
+ uint32_t cca_threshold_2g;
+ uint32_t cca_threshold_5g;
};
typedef struct hdd_config hdd_config_t;
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 33b1107079ac..0844dfe6a235 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -5154,6 +5154,27 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_OCB_TX_PER_PKT_STATS_ENABLE_MIN,
CFG_OCB_TX_PER_PKT_STATS_ENABLE_MAX),
#endif
+
+ REG_VARIABLE(CFG_CCA_THRESHOLD_ENABLE_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, cca_threshold_enable,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_CCA_THRESHOLD_ENABLE_DEFAULT,
+ CFG_CCA_THRESHOLD_ENABLE_MIN,
+ CFG_CCA_THRESHOLD_ENABLE_MAX),
+
+ REG_VARIABLE(CFG_CCA_THRESHOLD_2G_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, cca_threshold_2g,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_CCA_THRESHOLD_2G_DEFAULT,
+ CFG_CCA_THRESHOLD_2G_MIN,
+ CFG_CCA_THRESHOLD_2G_MAX),
+
+ REG_VARIABLE(CFG_CCA_THRESHOLD_5G_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, cca_threshold_5g,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_CCA_THRESHOLD_5G_DEFAULT,
+ CFG_CCA_THRESHOLD_5G_MIN,
+ CFG_CCA_THRESHOLD_5G_MAX),
};
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 3d657acabad3..8419ee1ac1c4 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -11655,6 +11655,29 @@ hdd_adapter_t *hdd_open_adapter(hdd_context_t *hdd_ctx,
}
if (VOS_FTM_MODE != vos_get_conparam()) {
+ uint32_t cca_threshold;
+
+ cca_threshold = hdd_ctx->cfg_ini->cca_threshold_2g |
+ hdd_ctx->cfg_ini->cca_threshold_5g << 8;
+
+ if (hdd_ctx->cfg_ini->cca_threshold_enable) {
+ hddLog(VOS_TRACE_LEVEL_DEBUG,
+ "%s: CCA Threshold is enabled.", __func__);
+ ret = process_wma_set_command((int)adapter->sessionId,
+ WMI_PDEV_PARAM_CCA_THRESHOLD,
+ cca_threshold,
+ PDEV_CMD);
+ } else {
+ ret = 0;
+ }
+
+ if (ret != 0) {
+ hddLog(VOS_TRACE_LEVEL_ERROR,
+ "%s: WMI_PDEV_PARAM_CCA_THRESHOLD set failed %d",
+ __func__, ret);
+ goto err_post_add_adapter;
+ }
+
ret = process_wma_set_command((int)adapter->sessionId,
(int)WMI_PDEV_PARAM_HYST_EN,
(int)hdd_ctx->cfg_ini->enableMemDeepSleep,