Forráskód Böngészése

qcacmn: Refactor SCAN CFG item

Refactor CFG items
1. CFG_ENABLE_CONNECTED_SCAN
2. CFG_ENABLE_SNR_MONITORING

Change-Id: Ic7c995a3f2310df72841e2b99e01972ca50e2e01
CRs-Fixed: 2405697
Sandeep Puligilla 6 éve
szülő
commit
eb272d02d5

+ 2 - 0
umac/scan/core/src/wlan_scan_main.h

@@ -319,6 +319,7 @@ struct extscan_def_config {
  * @max_bss_per_pdev: maximum number of bss entries to be maintained per pdev
  * @max_active_scans_allowed: maximum number of active parallel scan allowed
  *                            per psoc
+ * @enable_connected_scan: enable scans after connection
  * @scan_priority: default scan priority
  * @adaptive_dwell_time_mode: adaptive dwell mode with connection
  * @adaptive_dwell_time_mode_nc: adaptive dwell mode without connection
@@ -402,6 +403,7 @@ struct scan_default_params {
 	uint8_t p2p_scan_burst_duration;
 	uint8_t go_scan_burst_duration;
 	uint8_t ap_scan_burst_duration;
+	bool enable_connected_scan;
 	enum scan_priority scan_priority;
 	enum scan_dwelltime_adaptive_mode adaptive_dwell_time_mode;
 	enum scan_dwelltime_adaptive_mode adaptive_dwell_time_mode_nc;

+ 9 - 0
umac/scan/dispatcher/inc/wlan_scan_api.h

@@ -145,4 +145,13 @@ void wlan_scan_cfg_set_dfs_chan_scan_allowed(struct wlan_objmgr_psoc *psoc,
  */
 void wlan_scan_cfg_get_conc_min_resttime(struct wlan_objmgr_psoc *psoc,
 					 uint32_t *rest_time);
+
+/**
+ * wlan_scan_is_snr_monitor_enabled() - API to get SNR monitoring enabled or not
+ * @psoc: pointer to psoc object
+ *
+ * Return: enable/disable snr monitor mode.
+ */
+bool wlan_scan_is_snr_monitor_enabled(struct wlan_objmgr_psoc *psoc);
+
 #endif

+ 48 - 2
umac/scan/dispatcher/inc/wlan_scan_cfg.h

@@ -1058,20 +1058,65 @@
  *
  * Supported Feature: DFS P2P
  *
- * Usage: Internal/External
+ * Usage: External
  *
- * </ini>
+ * <ini>
  */
 #define CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH CFG_INI_BOOL( \
 	"gSkipDfsChannelInP2pSearch", \
 	1, \
 	"skip dfs channel in p2p search")
 
+/*
+ * <ini>
+ * gEnableConnectedScan - Will enable or disable scan in connected state
+ * This ini is used to enable or disable the scanning in
+ * Connected state
+ * @Min: 0
+ * @Max: 1
+ * @Default: 1
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: External
+ *
+ * <ini>
+ */
+#define CFG_ENABLE_CONNECTED_SCAN CFG_INI_BOOL( \
+				"gEnableConnectedScan", \
+				true, \
+				"Enable/disable scan in connected state")
+
+/*
+ * <ini>
+ * gEnableSNRMonitoring - Enables SNR Monitoring
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to set default snr monitor
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_SNR_MONITORING CFG_INI_BOOL(\
+			"gEnableSNRMonitoring",\
+			false,\
+			"Enable/Disable SNR Monitoring")
+
 #define CFG_SCAN_ALL \
 	CFG(CFG_DROP_BCN_ON_CHANNEL_MISMATCH) \
 	CFG(CFG_ENABLE_WAKE_LOCK_IN_SCAN) \
 	CFG(CFG_ACTIVE_MAX_CHANNEL_TIME) \
 	CFG(CFG_ENABLE_DFS_SCAN) \
+	CFG(CFG_ENABLE_CONNECTED_SCAN) \
 	CFG(CFG_INITIAL_NO_DFS_SCAN) \
 	CFG(CFG_ACTIVE_MAX_2G_CHANNEL_TIME) \
 	CFG(CFG_PASSIVE_MAX_CHANNEL_TIME) \
@@ -1091,6 +1136,7 @@
 	CFG(CFG_STA_SCAN_BURST_DURATION) \
 	CFG(CFG_P2P_SCAN_BURST_DURATION) \
 	CFG(CFG_GO_SCAN_BURST_DURATION) \
+	CFG(CFG_ENABLE_SNR_MONITORING) \
 	CFG(CFG_AP_SCAN_BURST_DURATION) \
 	CFG(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH) \
 	CFG_SCAN_PNO

+ 0 - 2
umac/scan/dispatcher/inc/wlan_scan_public_structs.h

@@ -1285,13 +1285,11 @@ struct pno_scan_req_params {
 
 /**
  * struct scan_user_cfg - user configuration required for for scan
- * @is_snr_monitoring_enabled: whether snr monitoring enabled or not
  * @ie_whitelist: probe req IE whitelist attrs
  * @sta_miracast_mcc_rest_time: sta miracast mcc rest time
  * @score_config: scoring logic configuration
  */
 struct scan_user_cfg {
-	bool is_snr_monitoring_enabled;
 	struct probe_req_whitelist_attr ie_whitelist;
 	uint32_t sta_miracast_mcc_rest_time;
 	struct scoring_config score_config;

+ 20 - 0
umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h

@@ -970,4 +970,24 @@ ucfg_scan_get_max_sched_scan_plan_iterations(struct wlan_objmgr_psoc *psoc)
 }
 
 #endif /* FEATURE_WLAN_SCAN_PNO */
+
+/**
+ * ucfg_scan_is_connected_scan_enabled() - API to get scan enabled after connect
+ * @psoc: pointer to psoc object
+ *
+ * Return: value.
+ */
+bool ucfg_scan_is_connected_scan_enabled(struct wlan_objmgr_psoc *psoc);
+
+/**
+ * ucfg_scan_is_snr_monitor_enabled() - API to get SNR monitoring enabled or not
+ * @psoc: pointer to psoc object
+ *
+ * Return: value.
+ */
+static inline
+bool ucfg_scan_is_snr_monitor_enabled(struct wlan_objmgr_psoc *psoc)
+{
+	return wlan_scan_is_snr_monitor_enabled(psoc);
+}
 #endif

+ 11 - 0
umac/scan/dispatcher/src/wlan_scan_api.c

@@ -164,3 +164,14 @@ void wlan_scan_cfg_get_conc_min_resttime(struct wlan_objmgr_psoc *psoc,
 
 	*rest_time = scan_obj->scan_def.conc_min_rest_time;
 }
+
+bool wlan_scan_is_snr_monitor_enabled(struct wlan_objmgr_psoc *psoc)
+{
+	struct wlan_scan_obj *scan_obj;
+
+	scan_obj = wlan_psoc_get_scan_obj(psoc);
+	if (!scan_obj)
+		return cfg_default(CFG_ENABLE_SNR_MONITORING);
+
+	return scan_obj->scan_def.scan_f_chan_stat_evnt;
+}

+ 15 - 2
umac/scan/dispatcher/src/wlan_scan_ucfg_api.c

@@ -1011,7 +1011,8 @@ wlan_scan_global_init(struct wlan_objmgr_psoc *psoc,
 	scan_obj->scan_def.scan_f_ofdm_rates = true;
 	scan_obj->scan_def.scan_f_2ghz = true;
 	scan_obj->scan_def.scan_f_5ghz = true;
-	scan_obj->scan_def.scan_f_chan_stat_evnt = SCAN_CHAN_STATS_EVENT_ENAB;
+	scan_obj->scan_def.scan_f_chan_stat_evnt =
+				cfg_get(psoc, CFG_ENABLE_SNR_MONITORING);
 	/* scan event flags */
 	scan_obj->scan_def.scan_ev_started = true;
 	scan_obj->scan_def.scan_ev_completed = true;
@@ -1491,7 +1492,6 @@ QDF_STATUS ucfg_scan_update_user_config(struct wlan_objmgr_psoc *psoc,
 	}
 
 	scan_def = &scan_obj->scan_def;
-	scan_def->scan_f_chan_stat_evnt = scan_cfg->is_snr_monitoring_enabled;
 	scan_obj->ie_whitelist = scan_cfg->ie_whitelist;
 	scan_def->sta_miracast_mcc_rest_time =
 				scan_cfg->sta_miracast_mcc_rest_time;
@@ -1830,6 +1830,19 @@ bool ucfg_scan_wake_lock_in_user_scan(struct wlan_objmgr_psoc *psoc)
 	return scan_obj->scan_def.use_wake_lock_in_user_scan;
 }
 
+bool ucfg_scan_is_connected_scan_enabled(struct wlan_objmgr_psoc *psoc)
+{
+	struct wlan_scan_obj *scan_obj;
+
+	scan_obj = wlan_psoc_get_scan_obj(psoc);
+	if (!scan_obj) {
+		scm_err("Failed to get scan object");
+		return cfg_default(CFG_ENABLE_CONNECTED_SCAN);
+	}
+
+	return scan_obj->scan_def.enable_connected_scan;
+}
+
 bool ucfg_scan_is_mac_spoofing_enabled(struct wlan_objmgr_psoc *psoc)
 {
 	struct wlan_scan_obj *scan_obj;