Преглед изворни кода

qcacld-3.0: Replace channel with frequency in wlan_mlme_reg

Replace channel ID with frequency in struct wlan_mlme_reg.

Change-Id: I71fcec5014e451cf912f187c79a1939d2d7e54ad
CRs-Fixed: 2518897
Tushnim Bhattacharyya пре 5 година
родитељ
комит
7378f4e0e7

+ 17 - 1
mlme/core/src/wlan_mlme_main.c

@@ -2270,6 +2270,9 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
 			      struct wlan_mlme_reg *reg)
 {
 	qdf_size_t valid_channel_list_num = 0;
+	uint8_t channel_list[CFG_VALID_CHANNEL_LIST_LEN];
+	uint8_t i;
+	struct wlan_objmgr_pdev *pdev = NULL;
 
 	reg->self_gen_frm_pwr = cfg_get(psoc, CFG_SELF_GEN_FRM_PWR);
 	reg->etsi13_srd_chan_in_master_mode =
@@ -2281,10 +2284,23 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
 						CFG_ENABLE_11D_IN_WORLD_MODE);
 	reg->scan_11d_interval = cfg_get(psoc, CFG_SCAN_11D_INTERVAL);
 	qdf_uint8_array_parse(cfg_default(CFG_VALID_CHANNEL_LIST),
-			      reg->valid_channel_list,
+			      channel_list,
 			      CFG_VALID_CHANNEL_LIST_LEN,
 			      &valid_channel_list_num);
 	reg->valid_channel_list_num = (uint8_t)valid_channel_list_num;
+
+	pdev = wlan_objmgr_get_pdev_by_id(psoc, 0, WLAN_MLME_NB_ID);
+	if (!pdev) {
+		mlme_legacy_err("null pdev");
+		return;
+	}
+
+	for (i = 0; i < valid_channel_list_num; i++)
+		reg->valid_channel_freq_list[i] =
+			wlan_reg_chan_to_freq(pdev, channel_list[i]);
+
+	wlan_objmgr_pdev_release_ref(pdev, WLAN_MLME_NB_ID);
+
 	qdf_str_lcopy(reg->country_code, cfg_default(CFG_COUNTRY_CODE),
 		      sizeof(reg->country_code));
 	reg->country_code_len = (uint8_t)sizeof(reg->country_code);

+ 2 - 2
mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -2040,7 +2040,7 @@ struct wlan_mlme_mwc {
  * @restart_beaconing_on_ch_avoid: restart beaconing on ch avoid
  * @indoor_channel_support: indoor channel support
  * @scan_11d_interval: scan 11d interval
- * @valid_channel_list: array for valid channel list
+ * @valid_channel_freq_list: array for valid channel list
  * @valid_channel_list_num: valid channel list number
  * @country_code: country code
  * @country_code_len: country code length
@@ -2056,7 +2056,7 @@ struct wlan_mlme_reg {
 		restart_beaconing_on_ch_avoid;
 	bool indoor_channel_support;
 	uint32_t scan_11d_interval;
-	uint8_t valid_channel_list[CFG_VALID_CHANNEL_LIST_LEN];
+	uint32_t valid_channel_freq_list[CFG_VALID_CHANNEL_LIST_LEN];
 	uint8_t valid_channel_list_num;
 	uint8_t country_code[CFG_COUNTRY_CODE_LEN + 1];
 	uint8_t country_code_len;

+ 5 - 4
mlme/dispatcher/inc/wlan_mlme_ucfg_api.h

@@ -3732,7 +3732,8 @@ ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
 				uint32_t *value);
 
 /**
- * ucfg_mlme_get_valid_channel_list() - get valid channel list
+ * ucfg_mlme_get_valid_channel_freq_list() - get valid channel
+ * list
  * @psoc: pointer to psoc object
  * @channel_list: pointer to return channel list
  * @channel_list_num: pointer to return channel list number
@@ -3740,9 +3741,9 @@ ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
  * Return: QDF Status
  */
 QDF_STATUS
-ucfg_mlme_get_valid_channel_list(struct wlan_objmgr_psoc *psoc,
-				 uint8_t *channel_list,
-				 uint32_t *channel_list_num);
+ucfg_mlme_get_valid_channel_freq_list(struct wlan_objmgr_psoc *psoc,
+				      uint32_t *channel_list,
+				      uint32_t *channel_list_num);
 
 #ifdef FEATURE_LFR_SUBNET_DETECTION
 /**

+ 22 - 6
mlme/dispatcher/src/wlan_mlme_ucfg_api.c

@@ -1500,27 +1500,43 @@ ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
 }
 
 QDF_STATUS
-ucfg_mlme_get_valid_channel_list(struct wlan_objmgr_psoc *psoc,
-				 uint8_t *channel_list,
-				 uint32_t *channel_list_num)
+ucfg_mlme_get_valid_channel_freq_list(struct wlan_objmgr_psoc *psoc,
+				      uint32_t *channel_list,
+				      uint32_t *channel_list_num)
 {
 	struct wlan_mlme_psoc_obj *mlme_obj;
 	qdf_size_t valid_channel_list_num = 0;
+	uint8_t tmp_channel_list[CFG_VALID_CHANNEL_LIST_LEN];
+	uint8_t i;
+	struct wlan_objmgr_pdev *pdev = NULL;
 
 	mlme_obj = mlme_get_psoc_obj(psoc);
 	if (!mlme_obj) {
 		qdf_uint8_array_parse(cfg_default(CFG_VALID_CHANNEL_LIST),
-				      channel_list,
+				      tmp_channel_list,
 				      CFG_VALID_CHANNEL_LIST_LEN,
 				      &valid_channel_list_num);
 		*channel_list_num = (uint8_t)valid_channel_list_num;
 		mlme_legacy_err("Failed to get MLME Obj");
+		pdev = wlan_objmgr_get_pdev_by_id(psoc, 0, WLAN_MLME_NB_ID);
+		if (!pdev) {
+			mlme_legacy_err("null pdev");
+			return QDF_STATUS_E_INVAL;
+		}
+
+		for (i = 0; i < valid_channel_list_num; i++) {
+			channel_list[i] =
+				wlan_reg_chan_to_freq(pdev, tmp_channel_list[i]);
+		}
+
+		wlan_objmgr_pdev_release_ref(pdev, WLAN_MLME_NB_ID);
+
 		return QDF_STATUS_E_INVAL;
 	}
 
 	*channel_list_num = (uint32_t)mlme_obj->cfg.reg.valid_channel_list_num;
-	qdf_mem_copy(channel_list, mlme_obj->cfg.reg.valid_channel_list,
-		     *channel_list_num);
+	for (i = 0; i < *channel_list_num; i++)
+		channel_list[i] = mlme_obj->cfg.reg.valid_channel_freq_list[i];
 
 	return QDF_STATUS_SUCCESS;
 }