qcacmn: Add CFG items to scan component
Add following CFG/INI items to scan component(part-2)
CFG_SCAN_NUM_PROBES
CFG_SCAN_PROBE_REPEAT_TIME
CFG_ADAPTIVE_SCAN_DWELL_MODE
CFG_IS_BSSID_HINT_PRIORITY
Change-Id: Ib355d898260c660cd07103390adbfef921599c3d
CRs-Fixed: 2277184
diff --git a/umac/scan/core/src/wlan_scan_main.h b/umac/scan/core/src/wlan_scan_main.h
index b53799b..d138799 100644
--- a/umac/scan/core/src/wlan_scan_main.h
+++ b/umac/scan/core/src/wlan_scan_main.h
@@ -101,11 +101,9 @@
#define SCAN_CONC_IDLE_TIME 25
#define SCAN_CONC_MAX_REST_TIME 20
#define SCAN_CONC_MIN_REST_TIME 10
-#define SCAN_REPEAT_PROBE_TIME 20
#define SCAN_PROBE_SPACING_TIME 0
#define SCAN_PROBE_DELAY 0
#define SCAN_MAX_SCAN_TIME 30000
-#define SCAN_NUM_PROBES 2
#define SCAN_NETWORK_IDLE_TIMEOUT 0
#define HIDDEN_SSID_TIME (1*60*1000)
#define SCAN_CHAN_STATS_EVENT_ENAB (false)
@@ -121,11 +119,9 @@
#define SCAN_CONC_IDLE_TIME 0
#define SCAN_CONC_MAX_REST_TIME 0
#define SCAN_CONC_MIN_REST_TIME 0
-#define SCAN_REPEAT_PROBE_TIME 50
#define SCAN_PROBE_SPACING_TIME 0
#define SCAN_PROBE_DELAY 0
#define SCAN_MAX_SCAN_TIME 50000
-#define SCAN_NUM_PROBES 0
#define SCAN_NETWORK_IDLE_TIMEOUT 200
#define HIDDEN_SSID_TIME (0xFFFFFFFF)
#define SCAN_CHAN_STATS_EVENT_ENAB (true)
diff --git a/umac/scan/dispatcher/inc/wlan_scan_cfg.h b/umac/scan/dispatcher/inc/wlan_scan_cfg.h
index b81845b..0ae2f5c 100644
--- a/umac/scan/dispatcher/inc/wlan_scan_cfg.h
+++ b/umac/scan/dispatcher/inc/wlan_scan_cfg.h
@@ -24,18 +24,150 @@
#include "cfg_define.h"
+/*
+ * <ini>
+ * gActiveMaxChannelTime - Set max channel time for active scan
+ * @Min: 0
+ * @Max: 10000
+ * @Default: 40
+ *
+ * This ini is used to set maximum channel time in secs spent in
+ * active scan
+ *
+ * Related: None
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
#define CFG_ACTIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
"gActiveMaxChannelTime",\
- 0, 10000, 40,\
+ 0, 10000, MCL_OR_WIN_VALUE(40, 105),\
CFG_VALUE_OR_DEFAULT, "active dwell time")
+/*
+ * <ini>
+ * gPassiveMaxChannelTime - Set max channel time for passive scan
+ * @Min: 0
+ * @Max: 10000
+ * @Default: 110
+ *
+ * This ini is used to set maximum channel time in secs spent in
+ * passive scan
+ *
+ * Related: None
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
#define CFG_PASSIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
"gPassiveMaxChannelTime",\
- 0, 10000, 100,\
+ 0, 10000, MCL_OR_WIN_VALUE(100, 300),\
CFG_VALUE_OR_DEFAULT, "passive dwell time")
+/*
+ * <ini>
+ * gScanNumProbes - Set the number of probes on each channel for active scan
+ * @Min: 0
+ * @Max: 20
+ * @Default: 0
+ *
+ * This ini is used to set number of probes on each channel for
+ * active scan
+ */
+#define CFG_SCAN_NUM_PROBES CFG_INI_UINT(\
+ "gScanNumProbes",\
+ 0, 20, MCL_OR_WIN_VALUE(0, 5),\
+ CFG_VALUE_OR_DEFAULT,\
+ "number of probes on each channel")
+
+/*
+ * <ini>
+ * gScanProbeRepeatTime - Set the probe repeat time on each channel
+ * @Min: 0
+ * @Max: 30
+ * @Default: 0
+ *
+ * This ini is used to set probe repeat time on each channel for
+ * active scan
+ *
+ * Related: None
+ *
+ * Supported Feature: Scan
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_SCAN_PROBE_REPEAT_TIME CFG_INI_UINT(\
+ "gScanProbeRepeatTime",\
+ 0, 30, MCL_OR_WIN_VALUE(20, 50),\
+ CFG_VALUE_OR_DEFAULT,\
+ "probe repeat time on each channel")
+
+/*
+ * <ini>
+ * hostscan_adaptive_dwell_mode - Enable adaptive dwell mode
+ * during host scan with conneciton
+ * @Min: 0
+ * @Max: 4
+ * @Default: 2
+ *
+ * This ini will set the algo used in dwell time optimization
+ * during host scan with connection.
+ * See enum wmi_dwelltime_adaptive_mode.
+ * Acceptable values for this:
+ * 0: Default (Use firmware default mode)
+ * 1: Conservative optimization
+ * 2: Moderate optimization
+ * 3: Aggressive optimization
+ * 4: Static
+ *
+ * Related: None
+ *
+ * Supported Feature: Scan
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ADAPTIVE_SCAN_DWELL_MODE CFG_INI_UINT(\
+ "hostscan_adaptive_dwell_mode",\
+ 0, 4, 2,\
+ CFG_VALUE_OR_DEFAULT,\
+ "Enable adaptive dwell mode")
+/*
+ * <ini>
+ * is_bssid_hint_priority - Set priority for connection with bssid_hint
+ * BSSID.
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * This ini is used to give priority to BSS for connection which comes
+ * as part of bssid_hint
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_IS_BSSID_HINT_PRIORITY CFG_INI_UINT(\
+ "is_bssid_hint_priority",\
+ 0, 1, 0,\
+ CFG_VALUE_OR_DEFAULT, \
+ "Set priority for connection with bssid_hint")
+
#define CFG_SCAN_ALL \
CFG(CFG_ACTIVE_MAX_CHANNEL_TIME) \
- CFG(CFG_PASSIVE_MAX_CHANNEL_TIME)
+ CFG(CFG_PASSIVE_MAX_CHANNEL_TIME) \
+ CFG(CFG_SCAN_NUM_PROBES) \
+ CFG(CFG_SCAN_PROBE_REPEAT_TIME) \
+ CFG(CFG_ADAPTIVE_SCAN_DWELL_MODE) \
+ CFG(CFG_IS_BSSID_HINT_PRIORITY)
#endif
diff --git a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c
index d884169..fb7b45b 100644
--- a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c
+++ b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c
@@ -1411,17 +1411,21 @@
scan_obj->scan_def.conc_max_rest_time = SCAN_CONC_MAX_REST_TIME;
scan_obj->scan_def.conc_min_rest_time = SCAN_CONC_MIN_REST_TIME;
scan_obj->scan_def.conc_idle_time = SCAN_CONC_IDLE_TIME;
- scan_obj->scan_def.repeat_probe_time = SCAN_REPEAT_PROBE_TIME;
+ scan_obj->scan_def.repeat_probe_time =
+ cfg_get(psoc, CFG_SCAN_PROBE_REPEAT_TIME);
scan_obj->scan_def.probe_spacing_time = SCAN_PROBE_SPACING_TIME;
scan_obj->scan_def.probe_delay = SCAN_PROBE_DELAY;
scan_obj->scan_def.burst_duration = SCAN_BURST_DURATION;
scan_obj->scan_def.max_scan_time = SCAN_MAX_SCAN_TIME;
- scan_obj->scan_def.num_probes = SCAN_NUM_PROBES;
+ scan_obj->scan_def.num_probes = cfg_get(psoc, CFG_SCAN_NUM_PROBES);
scan_obj->scan_def.scan_cache_aging_time = SCAN_CACHE_AGING_TIME;
scan_obj->scan_def.max_bss_per_pdev = SCAN_MAX_BSS_PDEV;
scan_obj->scan_def.scan_priority = SCAN_PRIORITY;
scan_obj->scan_def.idle_time = SCAN_NETWORK_IDLE_TIMEOUT;
- scan_obj->scan_def.adaptive_dwell_time_mode = SCAN_DWELL_MODE_DEFAULT;
+ scan_obj->scan_def.adaptive_dwell_time_mode =
+ cfg_get(psoc, CFG_ADAPTIVE_SCAN_DWELL_MODE);
+ scan_obj->scan_def.is_bssid_hint_priority =
+ cfg_get(psoc, CFG_IS_BSSID_HINT_PRIORITY);
/* scan contrl flags */
scan_obj->scan_def.scan_f_passive = true;
scan_obj->scan_def.scan_f_ofdm_rates = true;
@@ -1906,12 +1910,8 @@
scan_def->scan_cache_aging_time = scan_cfg->scan_cache_aging_time;
scan_def->prefer_5ghz = scan_cfg->prefer_5ghz;
scan_def->select_5ghz_margin = scan_cfg->select_5ghz_margin;
- scan_def->adaptive_dwell_time_mode = scan_cfg->scan_dwell_time_mode;
scan_def->scan_f_chan_stat_evnt = scan_cfg->is_snr_monitoring_enabled;
scan_obj->ie_whitelist = scan_cfg->ie_whitelist;
- scan_def->repeat_probe_time = scan_cfg->usr_cfg_probe_rpt_time;
- scan_def->num_probes = scan_cfg->usr_cfg_num_probes;
- scan_def->is_bssid_hint_priority = scan_cfg->is_bssid_hint_priority;
scan_def->enable_mac_spoofing = scan_cfg->enable_mac_spoofing;
scan_def->sta_miracast_mcc_rest_time =
scan_cfg->sta_miracast_mcc_rest_time;