Kaynağa Gözat

qcacld-3.0: Remove user configured params from converged scan filter

Some user configured params are passed in filter during scan request.
Move them in scan params and update them from user config.

Change-Id: I71beb41c947ede742345821a983bb202575547b9
CRs-Fixed: 2013212
Abhishek Singh 8 yıl önce
ebeveyn
işleme
158fe252bc

+ 7 - 1
core/hdd/src/wlan_hdd_main.c

@@ -11172,7 +11172,13 @@ static int hdd_update_scan_config(hdd_context_t *hdd_ctx)
 	scan_cfg.conc_max_rest_time = cfg->nRestTimeConc;
 	scan_cfg.conc_min_rest_time = cfg->min_rest_time_conc;
 	scan_cfg.conc_idle_time = cfg->idle_time_conc;
-	scan_cfg.scan_cache_aging_time = cfg->scanAgingTimeout;
+	/* convert to ms */
+	scan_cfg.scan_cache_aging_time =
+		cfg->scanAgingTimeout * 1000;
+	scan_cfg.prefer_5ghz = cfg->nRoamPrefer5GHz;
+	scan_cfg.select_5ghz_margin = cfg->nSelect5GHzMargin;
+	scan_cfg.scan_bucket_threshold = cfg->first_scan_bucket_threshold;
+	scan_cfg.rssi_cat_gap = cfg->nRssiCatGap;
 	scan_cfg.scan_dwell_time_mode = cfg->scan_adaptive_dwell_mode;
 	scan_cfg.is_snr_monitoring_enabled = cfg->fEnableSNRMonitoring;
 

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

@@ -62,6 +62,7 @@
 #include "sme_nan_datapath.h"
 #include "csr_api.h"
 #include "wlan_reg_services_api.h"
+#include <wlan_scan_ucfg_api.h>
 
 #define LOG_SIZE 256
 
@@ -1094,6 +1095,67 @@ QDF_STATUS sme_update_config(tHalHandle hHal, tpSmeConfigParams pSmeConfigParams
 	return status;
 }
 
+/**
+ * sme_update_scan_roam_params() - Update the scan roaming params
+ * @mac_ctx: mac ctx
+ *
+ * Return: void.
+ */
+static void sme_update_scan_roam_params(tpAniSirGlobal mac_ctx)
+{
+	struct roam_filter_params scan_params = {0};
+	struct roam_ext_params *roam_params_src;
+	uint8_t i;
+	QDF_STATUS status;
+
+	roam_params_src = &mac_ctx->roam.configParam.roam_params;
+
+	scan_params.num_bssid_avoid_list =
+		roam_params_src->num_bssid_avoid_list;
+	scan_params.num_bssid_favored =
+		roam_params_src->num_bssid_favored;
+	scan_params.raise_rssi_thresh_5g =
+		roam_params_src->raise_rssi_thresh_5g;
+	scan_params.drop_rssi_thresh_5g =
+		roam_params_src->drop_rssi_thresh_5g;
+	scan_params.raise_factor_5g =
+		roam_params_src->raise_factor_5g;
+	scan_params.drop_factor_5g =
+		roam_params_src->drop_factor_5g;
+	scan_params.max_raise_rssi_5g =
+		roam_params_src->max_raise_rssi_5g;
+	scan_params.max_drop_rssi_5g =
+		roam_params_src->max_drop_rssi_5g;
+	scan_params.is_5g_pref_enabled =
+		roam_params_src->is_5g_pref_enabled;
+
+	if (scan_params.num_bssid_favored > MAX_FAVORED_BSSID)
+		scan_params.num_bssid_favored = MAX_FAVORED_BSSID;
+
+	for (i = 0; i < scan_params.num_bssid_favored; i++) {
+		qdf_copy_macaddr(&scan_params.bssid_favored[i],
+				&roam_params_src->bssid_favored[i]);
+		scan_params.bssid_favored_factor[i] =
+			roam_params_src->bssid_favored_factor[i];
+	}
+
+	if (scan_params.num_bssid_avoid_list >
+	   MAX_AVOID_LIST_BSSID)
+		scan_params.num_bssid_avoid_list =
+			MAX_AVOID_LIST_BSSID;
+
+	for (i = 0; i < scan_params.num_bssid_avoid_list; i++) {
+		qdf_copy_macaddr(&scan_params.bssid_avoid_list[i],
+				&roam_params_src->bssid_avoid_list[i]);
+	}
+
+	status = ucfg_scan_update_roam_params(mac_ctx->psoc, &scan_params);
+	if (QDF_IS_STATUS_ERROR(status))
+		sms_log(mac_ctx, LOGE,
+			"ailed to update scan roam params with status=%d",
+			status);
+}
+
 /**
  * sme_update_roam_params() - Store/Update the roaming params
  * @hal:                      Handle for Hal layer
@@ -1175,6 +1237,9 @@ QDF_STATUS sme_update_roam_params(tHalHandle hal,
 	}
 	csr_roam_offload_scan(mac_ctx, session_id, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
 			update_param);
+
+	sme_update_scan_roam_params(mac_ctx);
+
 	return 0;
 }
 

+ 0 - 50
core/sme/src/csr/csr_api_scan.c

@@ -5762,7 +5762,6 @@ static QDF_STATUS csr_prepare_scan_filter(tpAniSirGlobal mac_ctx,
 	QDF_STATUS status;
 	enum policy_mgr_con_mode new_mode;
 	uint8_t weight_list[QDF_MAX_NUM_CHAN];
-	struct roam_ext_params *roam_params = NULL;
 
 	filter->num_of_bssid = pFilter->BSSIDs.numOfBSSIDs;
 	if (filter->num_of_bssid > WLAN_SCAN_FILTER_NUM_BSSID)
@@ -5851,55 +5850,6 @@ static QDF_STATUS csr_prepare_scan_filter(tpAniSirGlobal mac_ctx,
 			filter->num_of_pcl_channels = (uint8_t)len;
 		}
 	}
-	filter->strict_sel_5g = CSR_IS_SELECT_5GHZ_MARGIN(mac_ctx);
-
-	qdf_mem_copy(filter->bss_prefer_val,
-		  mac_ctx->roam.configParam.BssPreferValue,
-		  sizeof(uint32_t) * SCM_NUM_RSSI_CAT);
-	qdf_mem_copy(filter->rssi_cat,
-		  mac_ctx->roam.configParam.RSSICat,
-		  sizeof(int) * SCM_NUM_RSSI_CAT);
-
-	roam_params = &mac_ctx->roam.configParam.roam_params;
-
-	filter->roam_params.num_bssid_avoid_list =
-		roam_params->num_bssid_avoid_list;
-	if (filter->roam_params.num_bssid_avoid_list > MAX_BSSID_AVOID_LIST)
-		filter->roam_params.num_bssid_avoid_list = MAX_BSSID_AVOID_LIST;
-	for (i = 0; i < filter->roam_params.num_bssid_avoid_list; i++)
-		qdf_mem_copy(filter->roam_params.bssid_avoid_list[i].bytes,
-		  roam_params->bssid_avoid_list[i].bytes,
-		  QDF_MAC_ADDR_SIZE);
-
-	filter->roam_params.num_bssid_favored =
-		roam_params->num_bssid_favored;
-	if (filter->roam_params.num_bssid_favored > MAX_FAVORED_BSSID)
-		filter->roam_params.num_bssid_favored = MAX_FAVORED_BSSID;
-	for (i = 0; i < filter->roam_params.num_bssid_favored; i++) {
-		qdf_mem_copy(filter->roam_params.bssid_favored[i].bytes,
-			roam_params->bssid_favored[i].bytes,
-			QDF_MAC_ADDR_SIZE);
-	}
-
-	qdf_mem_copy(filter->roam_params.
-		  bssid_favored_factor,
-		  roam_params->bssid_favored_factor,
-		  filter->roam_params.num_bssid_favored);
-
-	filter->roam_params.raise_rssi_thresh_5g =
-		roam_params->raise_rssi_thresh_5g;
-	filter->roam_params.drop_rssi_thresh_5g =
-		roam_params->drop_rssi_thresh_5g;
-	filter->roam_params.raise_factor_5g =
-		roam_params->raise_factor_5g;
-	filter->roam_params.drop_factor_5g =
-		roam_params->drop_factor_5g;
-	filter->roam_params.max_raise_rssi_5g =
-		roam_params->max_raise_rssi_5g;
-	filter->roam_params.max_drop_rssi_5g =
-		roam_params->max_drop_rssi_5g;
-	filter->roam_params.is_5g_pref_enabled =
-		roam_params->is_5g_pref_enabled;
 
 	return QDF_STATUS_SUCCESS;
 }