Browse Source

qcacld-3.0: Clean up adaptive dwell time params CFG

Clean following adapative dwell time params
CFG/INI item.
CFG_ADAPTIVE_DWELL_MODE_ENABLED
CFG_GLOBAL_ADAPTIVE_DWELL_MODE
CFG_ADAPT_DWELL_LPF_WEIGHT
CFG_ADAPT_DWELL_PASMON_INTVAL
CFG_ADAPT_DWELL_WIFI_THRESH

Change-Id: Iebc8507b0eefe52969f928d98473f99d69095480
CRs-Fixed: 2378488
Harprit Chhabada 6 years ago
parent
commit
d59ae7648e

+ 28 - 1
components/fw_offload/core/inc/wlan_fw_offload_main.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012 - 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -162,6 +162,7 @@ struct wlan_fwol_neighbor_report_cfg {
  * @enable_secondary_rate: Enable secondary retry rate config
  * @enable_dhcp_server_offload: DHCP Offload is enabled or not
  * @dhcp_max_num_clients: Max number of DHCP client supported
+ * @dwelltime_params: adaptive dwell time parameters
  */
 struct wlan_fwol_cfg {
 	/* Add CFG and INI items here */
@@ -204,6 +205,7 @@ struct wlan_fwol_cfg {
 	bool enable_dhcp_server_offload;
 	uint32_t dhcp_max_num_clients;
 #endif
+	struct adaptive_dwelltime_params dwelltime_params;
 };
 
 /**
@@ -252,4 +254,29 @@ QDF_STATUS fwol_cfg_on_psoc_disable(struct wlan_objmgr_psoc *psoc);
 QDF_STATUS fwol_init_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
 					 struct wlan_fwol_neighbor_report_cfg
 					 *fwol_neighbor_report_cfg);
+
+/**
+ * wlan_fwol_init_adapt_dwelltime_in_cfg - initialize adaptive dwell time params
+ * @psoc: Pointer to struct wlan_objmgr_psoc context
+ * @dwelltime_params: Pointer to dwell time params
+ *
+ * This function parses initialize the adaptive dwell params from ini.
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+fwol_init_adapt_dwelltime_in_cfg(
+			struct wlan_objmgr_psoc *psoc,
+			struct adaptive_dwelltime_params *dwelltime_params);
+
+/**
+ * fwol_set_adaptive_dwelltime_config - API to set adaptive dwell params config
+ *
+ * @adaptive_dwelltime_params: adaptive_dwelltime_params structure
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+fwol_set_adaptive_dwelltime_config(
+			struct adaptive_dwelltime_params *dwelltime_params);
 #endif

+ 43 - 1
components/fw_offload/core/src/wlan_fw_offload_main.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -20,6 +20,8 @@
  */
 
 #include "wlan_fw_offload_main.h"
+#include "cds_api.h"
+#include "wma.h"
 
 struct wlan_fwol_psoc_obj *fwol_get_psoc_obj(struct wlan_objmgr_psoc *psoc)
 {
@@ -116,6 +118,45 @@ QDF_STATUS fwol_init_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
 	return QDF_STATUS_SUCCESS;
 }
 
+QDF_STATUS
+fwol_init_adapt_dwelltime_in_cfg(
+			struct wlan_objmgr_psoc *psoc,
+			struct adaptive_dwelltime_params *dwelltime_params)
+{
+	if (!dwelltime_params) {
+		fwol_err("dwelltime params config pointer null");
+		return QDF_STATUS_E_FAILURE;
+	}
+	dwelltime_params->is_enabled =
+			cfg_get(psoc, CFG_ADAPTIVE_DWELL_MODE_ENABLED);
+	dwelltime_params->dwelltime_mode =
+			cfg_get(psoc, CFG_GLOBAL_ADAPTIVE_DWELL_MODE);
+	dwelltime_params->lpf_weight =
+			cfg_get(psoc, CFG_ADAPT_DWELL_LPF_WEIGHT);
+	dwelltime_params->passive_mon_intval =
+			cfg_get(psoc, CFG_ADAPT_DWELL_PASMON_INTVAL);
+	dwelltime_params->wifi_act_threshold =
+			cfg_get(psoc, CFG_ADAPT_DWELL_WIFI_THRESH);
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+fwol_set_adaptive_dwelltime_config(
+			struct adaptive_dwelltime_params *dwelltime_params)
+{
+	tp_wma_handle wma_handle;
+	QDF_STATUS status;
+
+	wma_handle = cds_get_context(QDF_MODULE_ID_WMA);
+	if (!wma_handle) {
+		fwol_err("wma handle is null");
+		return QDF_STATUS_E_FAILURE;
+	}
+	status = wma_send_adapt_dwelltime_params(wma_handle,
+						 dwelltime_params);
+	return status;
+}
 /**
  * fwol_parse_probe_req_ouis - form ouis from ini gProbeReqOUIs
  * @psoc: Pointer to struct wlan_objmgr_psoc context
@@ -380,6 +421,7 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 	fwol_cfg->enable_tx_sch_delay = cfg_get(psoc, CFG_TX_SCH_DELAY);
 	fwol_cfg->enable_secondary_rate = cfg_get(psoc,
 						  CFG_ENABLE_SECONDARY_RATE);
+	fwol_init_adapt_dwelltime_in_cfg(psoc, &fwol_cfg->dwelltime_params);
 	ucfg_fwol_fetch_ra_filter(psoc, fwol_cfg);
 	ucfg_fwol_fetch_tsf_gpio_pin(psoc, fwol_cfg);
 	ucfg_fwol_fetch_dhcp_server_settings(psoc, fwol_cfg);

+ 160 - 0
components/fw_offload/dispatcher/inc/cfg_adaptive_dwelltime.h

@@ -0,0 +1,160 @@
+/*
+ * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ * DOC: This file contains adaptive dwell components.
+ */
+
+#ifndef __CFG_ADAPTIVE_DWELLTIME_H
+#define __CFG_ADAPTIVE_DWELLTIME_H
+
+/*
+ * <ini>
+ * adaptive_dwell_mode_enabled - enable/disable the adaptive dwell config.
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ *
+ * This ini will globally disable/enable the adaptive dwell config.
+ * Following parameters will set different values of attributes for dwell
+ * time optimization thus reducing total scan time.
+ * Acceptable values for this:
+ * 0: Config is disabled
+ * 1: Config is enabled
+ *
+ * Related: None.
+ *
+ * Supported Feature: Scan
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ADAPTIVE_DWELL_MODE_ENABLED CFG_INI_BOOL(\
+				"adaptive_dwell_mode_enabled",\
+				1, \
+				"enable the adaptive dwell config")
+
+/*
+ * <ini>
+ * global_adapt_dwelltime_mode - set default adaptive mode.
+ * @Min: 0
+ * @Max: 4
+ * @Default: 0
+ *
+ * This ini will set default adaptive mode, will be used if any of the
+ * scan dwell mode is set to default.
+ * For uses : see enum scan_dwelltime_adaptive_mode
+ *
+ * Related: None.
+ *
+ * Supported Feature: Scan
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE CFG_INI_UINT(\
+				"global_adapt_dwelltime_mode",\
+				0, 4, 0,\
+				CFG_VALUE_OR_DEFAULT, \
+				"set default adaptive mode")
+
+/*
+ * <ini>
+ * adapt_dwell_lpf_weight - weight to caclulate avg low pass filter.
+ * @Min: 0
+ * @Max: 100
+ * @Default: 80
+ *
+ * This ini is used to set the weight to calculate
+ * the average low pass filter for channel congestion.
+ * Acceptable values for this: 0-100 (In %)
+ *
+ * Related: None.
+ *
+ * Supported Feature: Scan
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ADAPT_DWELL_LPF_WEIGHT CFG_INI_UINT(\
+				"adapt_dwell_lpf_weight",\
+				0, 100, 80,\
+				CFG_VALUE_OR_DEFAULT, \
+				"weight to calc avg low pass filter")
+
+/*
+ * <ini>
+ * adapt_dwell_passive_mon_intval - Interval to monitor passive scan in msec.
+ * @Min: 0
+ * @Max: 25
+ * @Default: 10
+ *
+ * This ini is used to set interval to monitor wifi
+ * activity in passive scan in milliseconds.
+ *
+ * Related: None.
+ *
+ * Supported Feature: Scan
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ADAPT_DWELL_PASMON_INTVAL CFG_INI_UINT(\
+				"adapt_dwell_passive_mon_intval",\
+				0, 25, 10,\
+				CFG_VALUE_OR_DEFAULT, \
+				"interval to monitor passive scan")
+
+/*
+ * <ini>
+ * adapt_dwell_wifi_act_threshold - % of wifi activity used in passive scan
+ * @Min: 0
+ * @Max: 100
+ * @Default: 10
+ *
+ * This ini is used to set % of wifi activity used in passive scan
+ * Acceptable values for this: 0-100 (in %)
+ *
+ * Related: None.
+ *
+ * Supported Feature: Scan
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ADAPT_DWELL_WIFI_THRESH CFG_INI_UINT(\
+				"adapt_dwell_wifi_act_threshold",\
+				0, 100, 10,\
+				CFG_VALUE_OR_DEFAULT, \
+				"percent of wifi activity in pas scan")
+
+#define CFG_ADAPTIVE_DWELLTIME_ALL \
+	CFG(CFG_ADAPTIVE_DWELL_MODE_ENABLED) \
+	CFG(CFG_GLOBAL_ADAPTIVE_DWELL_MODE) \
+	CFG(CFG_ADAPT_DWELL_LPF_WEIGHT) \
+	CFG(CFG_ADAPT_DWELL_PASMON_INTVAL) \
+	CFG(CFG_ADAPT_DWELL_WIFI_THRESH)
+
+#endif
+

+ 3 - 1
components/fw_offload/dispatcher/inc/cfg_fwol.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012 - 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -27,8 +27,10 @@
 #include "cfg_ie_whitelist.h"
 #include "cfg_fwol_generic.h"
 #include "cfg_neighbor_roam.h"
+#include "cfg_adaptive_dwelltime.h"
 
 #define CFG_FWOL_ALL \
+	CFG_ADAPTIVE_DWELLTIME_ALL \
 	CFG_11K_ALL \
 	CFG_COEX_ALL \
 	CFG_FWOL_GENERIC_ALL \

+ 109 - 1
components/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -383,4 +383,112 @@ QDF_STATUS ucfg_fwol_get_enable_tx_sch_delay(struct wlan_objmgr_psoc *psoc,
  */
 QDF_STATUS ucfg_fwol_get_enable_secondary_rate(struct wlan_objmgr_psoc *psoc,
 					       uint32_t *enable_secondary_rate);
+/**
+ * ucfg_fwol_get_all_adaptive_dwelltime_params() - Get all adaptive
+						   dwelltime_params
+ * @psoc: Pointer to psoc object
+ * @dwelltime_params: Pointer to struct adaptive_dwelltime_params
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_fwol_get_all_adaptive_dwelltime_params(
+			struct wlan_objmgr_psoc *psoc,
+			struct adaptive_dwelltime_params *dwelltime_params);
+/**
+ * ucfg_fwol_get_adaptive_dwell_mode_enabled() - API to globally disable/enable
+ *                                               the adaptive dwell config.
+ * Acceptable values for this:
+ * 0: Config is disabled
+ * 1: Config is enabled
+ *
+ * @psoc: pointer to psoc object
+ * @adaptive_dwell_mode_enabled: adaptive dwell mode enable/disable
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_fwol_get_adaptive_dwell_mode_enabled(struct wlan_objmgr_psoc *psoc,
+					  bool *adaptive_dwell_mode_enabled);
+
+/**
+ * ucfg_fwol_get_global_adapt_dwelltime_mode() - API to set default
+ *                                               adaptive mode.
+ * It will be used if any of the scan dwell mode is set to default.
+ * For uses : see enum scan_dwelltime_adaptive_mode
+ *
+ * @psoc: pointer to psoc object
+ * global_adapt_dwelltime_mode@: global adaptive dwell mode value
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_fwol_get_global_adapt_dwelltime_mode(struct wlan_objmgr_psoc *psoc,
+					  uint8_t *global_adapt_dwelltime_mode);
+/**
+ * ucfg_fwol_get_adapt_dwell_lpf_weight() - API to get weight to calculate
+ *                       the average low pass filter for channel congestion
+ * @psoc: pointer to psoc object
+ * @adapt_dwell_lpf_weight: adaptive low pass filter weight
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_fwol_get_adapt_dwell_lpf_weight(struct wlan_objmgr_psoc *psoc,
+				     uint8_t *adapt_dwell_lpf_weight);
+
+/**
+ * ucfg_fwol_get_adapt_dwell_passive_mon_intval() - API to get interval value
+ *                      for montitoring wifi activity in passive scan in msec.
+ * @psoc: pointer to psoc object
+ * @adapt_dwell_passive_mon_intval: adaptive monitor interval in passive scan
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_fwol_get_adapt_dwell_passive_mon_intval(
+				struct wlan_objmgr_psoc *psoc,
+				uint8_t *adapt_dwell_passive_mon_intval);
+
+/**
+ * ucfg_fwol_get_adapt_dwell_wifi_act_threshold - API to get % of wifi activity
+ *                                                used in passive scan
+ * @psoc: pointer to psoc object
+ * @adapt_dwell_wifi_act_threshold: percent of wifi activity in passive scan
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS ucfg_fwol_get_adapt_dwell_wifi_act_threshold(
+				struct wlan_objmgr_psoc *psoc,
+				uint8_t *adapt_dwell_wifi_act_threshold);
+
+/**
+ * ucfg_fwol_init_adapt_dwelltime_in_cfg - API to initialize adaptive
+ *                                         dwell params
+ * @psoc: pointer to psoc object
+ * @adaptive_dwelltime_params: pointer to adaptive_dwelltime_params structure
+ *
+ * Return: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_fwol_init_adapt_dwelltime_in_cfg(
+			struct wlan_objmgr_psoc *psoc,
+			struct adaptive_dwelltime_params *dwelltime_params)
+{
+	return fwol_init_adapt_dwelltime_in_cfg(psoc, dwelltime_params);
+}
+
+/**
+ * ucfg_fwol_set_adaptive_dwelltime_config - API to set adaptive
+ *                                           dwell params config
+ * @adaptive_dwelltime_params: adaptive_dwelltime_params structure
+ *
+ * Return: QDF Status
+ */
+static inline QDF_STATUS
+ucfg_fwol_set_adaptive_dwelltime_config(
+			struct adaptive_dwelltime_params *dwelltime_params)
+{
+	return fwol_set_adaptive_dwelltime_config(dwelltime_params);
+}
 #endif /* _WLAN_FWOL_UCFG_API_H_ */

+ 102 - 0
components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c

@@ -692,5 +692,107 @@ QDF_STATUS ucfg_fwol_get_dhcp_max_num_clients(struct wlan_objmgr_psoc *psoc,
 	*dhcp_max_num_clients = fwol_obj->cfg.dhcp_max_num_clients;
 	return QDF_STATUS_SUCCESS;
 }
+
 #endif
 
+QDF_STATUS
+ucfg_fwol_get_all_adaptive_dwelltime_params(
+			struct wlan_objmgr_psoc *psoc,
+			struct adaptive_dwelltime_params *dwelltime_params)
+{
+	struct wlan_fwol_psoc_obj *fwol_obj;
+
+	fwol_obj = fwol_get_psoc_obj(psoc);
+	if (!fwol_obj) {
+		fwol_err("Failed to get fwol obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*dwelltime_params = fwol_obj->cfg.dwelltime_params;
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+ucfg_fwol_get_adaptive_dwell_mode_enabled(
+				struct wlan_objmgr_psoc *psoc,
+				bool *adaptive_dwell_mode_enabled)
+{
+	struct wlan_fwol_psoc_obj *fwol_obj;
+
+	fwol_obj = fwol_get_psoc_obj(psoc);
+	if (!fwol_obj) {
+		fwol_err("Failed to get FWOL obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*adaptive_dwell_mode_enabled =
+			fwol_obj->cfg.dwelltime_params.is_enabled;
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+ucfg_fwol_get_global_adapt_dwelltime_mode(struct wlan_objmgr_psoc *psoc,
+					  uint8_t *global_adapt_dwelltime_mode)
+{
+	struct wlan_fwol_psoc_obj *fwol_obj;
+
+	fwol_obj = fwol_get_psoc_obj(psoc);
+	if (!fwol_obj) {
+		fwol_err("Failed to get FWOL obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*global_adapt_dwelltime_mode =
+			fwol_obj->cfg.dwelltime_params.dwelltime_mode;
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+ucfg_fwol_get_adapt_dwell_lpf_weight(struct wlan_objmgr_psoc *psoc,
+				     uint8_t *adapt_dwell_lpf_weight)
+{
+	struct wlan_fwol_psoc_obj *fwol_obj;
+
+	fwol_obj = fwol_get_psoc_obj(psoc);
+	if (!fwol_obj) {
+		fwol_err("Failed to get FWOL obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*adapt_dwell_lpf_weight = fwol_obj->cfg.dwelltime_params.lpf_weight;
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS ucfg_fwol_get_adapt_dwell_passive_mon_intval(
+				struct wlan_objmgr_psoc *psoc,
+				uint8_t *adapt_dwell_passive_mon_intval)
+{
+	struct wlan_fwol_psoc_obj *fwol_obj;
+
+	fwol_obj = fwol_get_psoc_obj(psoc);
+	if (!fwol_obj) {
+		fwol_err("Failed to get FWOL obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*adapt_dwell_passive_mon_intval =
+			fwol_obj->cfg.dwelltime_params.passive_mon_intval;
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS ucfg_fwol_get_adapt_dwell_wifi_act_threshold(
+				struct wlan_objmgr_psoc *psoc,
+				uint8_t *adapt_dwell_wifi_act_threshold)
+{
+	struct wlan_fwol_psoc_obj *fwol_obj;
+
+	fwol_obj = fwol_get_psoc_obj(psoc);
+	if (!fwol_obj) {
+		fwol_err("Failed to get FWOL obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*adapt_dwell_wifi_act_threshold =
+			fwol_obj->cfg.dwelltime_params.wifi_act_threshold;
+	return QDF_STATUS_SUCCESS;
+}

+ 0 - 85
core/hdd/inc/wlan_hdd_cfg.h

@@ -400,57 +400,6 @@ enum hdd_dot11_mode {
 #define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX      (4)
 #define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT  (1)
 
-/*
- * <ini>
- * adaptive_dwell_mode_enabled - Enable adaptive dwell mode
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This parameter will globally disable/enable the adaptive dwell config.
- * Following parameters will set different values of attributes for dwell
- * time optimization thus reducing total scan time.
- * Acceptable values for this:
- * 0: Config is disabled
- * 1: Config is enabled
- *
- * Related: None
- *
- * Supported Feature: Scan
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME      "adaptive_dwell_mode_enabled"
-#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN       (0)
-#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX       (1)
-#define CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT   (1)
-
-/*
- * <ini>
- * global_adapt_dwelltime_mode - Set default adaptive mode
- * @Min: 0
- * @Max: 4
- * @Default: 0
- *
- * This parameter will set default adaptive mode, will be used if any of the
- * scan dwell mode is set to default.
- * For uses : see enum scan_dwelltime_adaptive_mode
- *
- * Related: None
- *
- * Supported Feature: Scan
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME       "global_adapt_dwelltime_mode"
-#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN        (0)
-#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX        (4)
-#define CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT    (0)
-
 #ifdef FEATURE_LFR_SUBNET_DETECTION
 /*
  * <ini>
@@ -713,35 +662,6 @@ enum hdd_dot11_mode {
 
 #endif
 
-/*
- * This parameter will set the weight to calculate the average low pass
- * filter for channel congestion.
- * Acceptable values for this: 0-100 (In %)
- */
-#define CFG_ADAPT_DWELL_LPF_WEIGHT_NAME       "adapt_dwell_lpf_weight"
-#define CFG_ADAPT_DWELL_LPF_WEIGHT_MIN        (0)
-#define CFG_ADAPT_DWELL_LPF_WEIGHT_MAX        (100)
-#define CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT    (80)
-
-/*
- * This parameter will set interval to monitor wifi activity
- * in passive scan in msec.
- * Acceptable values for this: 0-25
- */
-#define CFG_ADAPT_DWELL_PASMON_INTVAL_NAME     "adapt_dwell_passive_mon_intval"
-#define CFG_ADAPT_DWELL_PASMON_INTVAL_MIN      (0)
-#define CFG_ADAPT_DWELL_PASMON_INTVAL_MAX      (25)
-#define CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT  (10)
-
-/*
- * This parameter will set % of wifi activity used in passive scan 0-100.
- * Acceptable values for this: 0-100 (in %)
- */
-#define CFG_ADAPT_DWELL_WIFI_THRESH_NAME       "adapt_dwell_wifi_act_threshold"
-#define CFG_ADAPT_DWELL_WIFI_THRESH_MIN        (0)
-#define CFG_ADAPT_DWELL_WIFI_THRESH_MAX        (100)
-#define CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT    (10)
-
 /*
  * <ini>
  * gScanBackoffMultiplier - For NLO/PNO, multiply fast scan period by this every
@@ -975,13 +895,8 @@ struct hdd_config {
 	bool enable_lfr_subnet_detection;
 #endif
 	bool apf_enabled;
-	bool adaptive_dwell_mode_enabled;
 	enum scan_dwelltime_adaptive_mode extscan_adaptive_dwell_mode;
 	enum scan_dwelltime_adaptive_mode pnoscan_adaptive_dwell_mode;
-	enum scan_dwelltime_adaptive_mode global_adapt_dwelltime_mode;
-	uint8_t adapt_dwell_lpf_weight;
-	uint8_t adapt_dwell_passive_mon_intval;
-	uint8_t adapt_dwell_wifi_act_threshold;
 	uint16_t sap_tx_leakage_threshold;
 	bool sap_internal_restart;
 	bool tx_orphan_enable;

+ 0 - 35
core/hdd/src/wlan_hdd_cfg.c

@@ -226,41 +226,6 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
 		CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
 
-	REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, adaptive_dwell_mode_enabled,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
-		CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
-		CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
-
-	REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, global_adapt_dwelltime_mode,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
-		CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
-		CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
-
-	REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, adapt_dwell_lpf_weight,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
-		CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
-		CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
-
-	REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, adapt_dwell_passive_mon_intval,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
-		CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
-		CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
-
-	REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, adapt_dwell_wifi_act_threshold,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
-		CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
-		CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
-
 	REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, scan_backoff_multiplier,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,

+ 3 - 13
core/hdd/src/wlan_hdd_main.c

@@ -10709,19 +10709,9 @@ static int hdd_adaptive_dwelltime_init(struct hdd_context *hdd_ctx)
 	QDF_STATUS status;
 	struct adaptive_dwelltime_params dwelltime_params;
 
-	dwelltime_params.is_enabled =
-			hdd_ctx->config->adaptive_dwell_mode_enabled;
-	dwelltime_params.dwelltime_mode =
-			hdd_ctx->config->global_adapt_dwelltime_mode;
-	dwelltime_params.lpf_weight =
-			hdd_ctx->config->adapt_dwell_lpf_weight;
-	dwelltime_params.passive_mon_intval =
-			hdd_ctx->config->adapt_dwell_passive_mon_intval;
-	dwelltime_params.wifi_act_threshold =
-			hdd_ctx->config->adapt_dwell_wifi_act_threshold;
-
-	status = sme_set_adaptive_dwelltime_config(hdd_ctx->mac_handle,
-						   &dwelltime_params);
+	status = ucfg_fwol_get_all_adaptive_dwelltime_params(hdd_ctx->psoc,
+							     &dwelltime_params);
+	status = ucfg_fwol_set_adaptive_dwelltime_config(&dwelltime_params);
 
 	hdd_debug("Sending Adaptive Dwelltime Configuration to fw");
 	if (!QDF_IS_STATUS_SUCCESS(status)) {

+ 0 - 2
core/sme/inc/sme_api.h

@@ -1571,8 +1571,6 @@ sme_apf_read_work_memory(mac_handle_t mac_handle,
 uint32_t sme_get_wni_dot11_mode(mac_handle_t mac_handle);
 QDF_STATUS sme_create_mon_session(mac_handle_t mac_handle, uint8_t *bssid,
 				  uint8_t vdev_id);
-QDF_STATUS sme_set_adaptive_dwelltime_config(mac_handle_t mac_handle,
-			struct adaptive_dwelltime_params *dwelltime_params);
 
 void sme_set_vdev_ies_per_band(mac_handle_t mac_handle, uint8_t vdev_id);
 void sme_set_pdev_ht_vht_ies(mac_handle_t mac_handle, bool enable2x2);

+ 0 - 39
core/sme/src/common/sme_api.c

@@ -12757,45 +12757,6 @@ void sme_set_chan_info_callback(mac_handle_t mac_handle,
 	mac->chan_info_cb = callback;
 }
 
-/**
- * sme_set_adaptive_dwelltime_config() - Update Adaptive dwelltime configuration
- * @mac_handle: The handle returned by macOpen
- * @params: adaptive_dwelltime_params config
- *
- * Return: QDF_STATUS if adaptive dwell time update
- * configuration success else failure status
- */
-QDF_STATUS sme_set_adaptive_dwelltime_config(mac_handle_t mac_handle,
-			struct adaptive_dwelltime_params *params)
-{
-	struct scheduler_msg message = {0};
-	QDF_STATUS status;
-	struct adaptive_dwelltime_params *dwelltime_params;
-
-	dwelltime_params = qdf_mem_malloc(sizeof(*dwelltime_params));
-	if (!dwelltime_params)
-		return QDF_STATUS_E_NOMEM;
-
-	dwelltime_params->is_enabled = params->is_enabled;
-	dwelltime_params->dwelltime_mode = params->dwelltime_mode;
-	dwelltime_params->lpf_weight = params->lpf_weight;
-	dwelltime_params->passive_mon_intval = params->passive_mon_intval;
-	dwelltime_params->wifi_act_threshold = params->wifi_act_threshold;
-
-	message.type = WMA_SET_ADAPT_DWELLTIME_CONF_PARAMS;
-	message.bodyptr = dwelltime_params;
-	status = scheduler_post_message(QDF_MODULE_ID_SME,
-					QDF_MODULE_ID_WMA,
-					QDF_MODULE_ID_WMA, &message);
-	if (!QDF_IS_STATUS_SUCCESS(status)) {
-		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
-			"%s: Not able to post msg to WMA!", __func__);
-
-		qdf_mem_free(dwelltime_params);
-	}
-	return status;
-}
-
 /**
  * sme_set_vdev_ies_per_band() - sends the per band IEs to vdev
  * @mac_handle: Opaque handle to the global MAC context