Ver código fonte

qcacld-3.0: Refactor three WNI and one INI

Based on new cfg framework, refactor below WNI cfg:
 - WNI_CFG_VALID_CHANNEL_LIST
 - WNI_CFG_COUNTRY_CODE
 - WNI_CFG_REMOVE_TIME_SYNC_CMD
 - CFG_REMOVE_TIME_STAMP_SYNC_CMD_NAME

Change-Id: Ic612705ad6c36e055b50baf30ae3e76818f50eed
CRs-Fixed: 2381199
Wu Gao 6 anos atrás
pai
commit
be1880956a

+ 12 - 0
mlme/core/src/wlan_mlme_main.c

@@ -357,6 +357,8 @@ static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc,
 	gen->enabled_11d = cfg_get(psoc, CFG_11D_SUPPORT_ENABLED);
 	gen->enable_beacon_reception_stats =
 		cfg_get(psoc, CFG_ENABLE_BEACON_RECEPTION_STATS);
+	gen->enable_remove_time_stamp_sync_cmd =
+		cfg_get(psoc, CFG_REMOVE_TIME_STAMP_SYNC_CMD);
 }
 
 static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params)
@@ -2055,6 +2057,8 @@ static void mlme_init_mwc_cfg(struct wlan_objmgr_psoc *psoc,
 static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
 			      struct wlan_mlme_reg *reg)
 {
+	qdf_size_t valid_channel_list_num = 0;
+
 	reg->self_gen_frm_pwr = cfg_get(psoc, CFG_SELF_GEN_FRM_PWR);
 	reg->etsi13_srd_chan_in_master_mode =
 			cfg_get(psoc, CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE);
@@ -2062,6 +2066,14 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
 			cfg_get(psoc, CFG_RESTART_BEACONING_ON_CH_AVOID);
 	reg->indoor_channel_support = cfg_get(psoc, CFG_INDOOR_CHANNEL_SUPPORT);
 	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,
+			      CFG_VALID_CHANNEL_LIST_LEN,
+			      &valid_channel_list_num);
+	reg->valid_channel_list_num = (uint8_t)valid_channel_list_num;
+	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);
 }
 
 static void

+ 21 - 2
mlme/dispatcher/inc/cfg_mlme_generic.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
@@ -577,6 +577,24 @@
 			0, \
 			"Enable disable beacon reception stats")
 
+/*
+ * <ini>
+ * gRemoveTimeStampSyncCmd - Enable/Disable to remove time stamp sync cmd
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to enable/disable the removal of time stamp sync cmd
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_REMOVE_TIME_STAMP_SYNC_CMD CFG_INI_BOOL( \
+	"gRemoveTimeStampSyncCmd", \
+	0, \
+	"Enable to remove time stamp sync cmd")
+
 #define CFG_GENERIC_ALL \
 	CFG(CFG_ENABLE_DEBUG_PACKET_LOG) \
 	CFG(CFG_PMF_SA_QUERY_MAX_RETRIES) \
@@ -601,6 +619,7 @@
 	CFG(CFG_CRASH_FW_TIMEOUT) \
 	CFG(CFG_DROPPED_PKT_DISCONNECT_THRESHOLD) \
 	CFG(CFG_ITO_REPEAT_COUNT) \
-	CFG(CFG_ENABLE_BEACON_RECEPTION_STATS)
+	CFG(CFG_ENABLE_BEACON_RECEPTION_STATS) \
+	CFG(CFG_REMOVE_TIME_STAMP_SYNC_CMD)
 
 #endif /* __CFG_MLME_GENERIC_H */

+ 42 - 2
mlme/dispatcher/inc/cfg_mlme_reg.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
@@ -23,6 +23,8 @@
 #ifndef CFG_MLME_REG_H__
 #define CFG_MLME_REG_H__
 
+#define VALID_CHANNEL_LIST_DEFAULT "36, 40, 44, 48, 52, 56, 60, 64, 1, 6, 11, 34, 38, 42, 46, 2, 3, 4,  5, 7, 8, 9, 10, 12, 13, 14, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 151, 153, 155, 157, 159, 161, 50, 54, 58, 62, 240, 242, 244, 246, 248, 250, 252"
+
 /*
  * <ini>
  * gSelfGenFrmPwr - self-generated frame power in tx chain mask
@@ -156,11 +158,49 @@
 	CFG_VALUE_OR_DEFAULT, \
 	"set the 11d scan interval in FW")
 
+ /*
+  * valid_chan_list - Configure valid channel list
+  * @Min: 0
+  * @Max: 256
+  * @Default: 64
+  *
+  * This ini is used to configure the data max number of pre-auth
+  *
+  * Usage: Internal
+  *
+  */
+#define CFG_VALID_CHANNEL_LIST CFG_INI_STRING( \
+		 "valid_chan_list", \
+		 0, \
+		 CFG_VALID_CHANNEL_LIST_STRING_LEN, \
+		 VALID_CHANNEL_LIST_DEFAULT, \
+		 "valid channel list")
+
+ /*
+  * max_num_pre_auth - Configure max number of pre-auth
+  * @Min: 0
+  * @Max: 256
+  * @Default: 64
+  *
+  * This ini is used to configure the data max number of pre-auth
+  *
+  * Usage: Internal
+  *
+  */
+#define CFG_COUNTRY_CODE CFG_INI_STRING( \
+		 "country_code", \
+		 0, \
+		 CFG_COUNTRY_CODE_LEN, \
+		 "", \
+		 "country code")
+
 #define CFG_REG_ALL \
 	CFG(CFG_SELF_GEN_FRM_PWR) \
 	CFG(CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE) \
 	CFG(CFG_RESTART_BEACONING_ON_CH_AVOID) \
 	CFG(CFG_INDOOR_CHANNEL_SUPPORT) \
-	CFG(CFG_SCAN_11D_INTERVAL)
+	CFG(CFG_SCAN_11D_INTERVAL) \
+	CFG(CFG_VALID_CHANNEL_LIST) \
+	CFG(CFG_COUNTRY_CODE)
 
 #endif /* CFG_MLME_REG_H__ */

+ 10 - 0
mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -989,6 +989,7 @@ struct wlan_mlme_chainmask {
  * @enabled_11h: enable 11h flag
  * @enabled_11d: enable 11d flag
  * @enable_beacon_reception_stats: enable beacon reception stats
+ * @enable_remove_time_stamp_sync_cmd: Enable remove time stamp sync cmd
  */
 struct wlan_mlme_generic {
 	enum band_info band_capability;
@@ -1016,6 +1017,7 @@ struct wlan_mlme_generic {
 	bool enabled_11d;
 	bool enable_deauth_to_disassoc_map;
 	bool enable_beacon_reception_stats;
+	bool enable_remove_time_stamp_sync_cmd;
 };
 
 /*
@@ -1893,6 +1895,10 @@ 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_list_num: valid channel list number
+ * @country_code: country code
+ * @country_code_len: country code length
  */
 struct wlan_mlme_reg {
 	uint32_t self_gen_frm_pwr;
@@ -1901,6 +1907,10 @@ 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];
+	uint8_t valid_channel_list_num;
+	uint8_t country_code[CFG_COUNTRY_CODE_LEN + 1];
+	uint8_t country_code_len;
 };
 
 /**

+ 13 - 0
mlme/dispatcher/inc/wlan_mlme_ucfg_api.h

@@ -3498,6 +3498,19 @@ QDF_STATUS
 ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
 				uint32_t *value);
 
+/**
+ * ucfg_mlme_get_valid_channel_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
+ *
+ * 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);
+
 #ifdef FEATURE_LFR_SUBNET_DETECTION
 /**
  * ucfg_mlme_is_subnet_detection_enabled() - check if sub net detection is

+ 26 - 0
mlme/dispatcher/src/wlan_mlme_ucfg_api.c

@@ -1456,6 +1456,32 @@ ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
 	return QDF_STATUS_SUCCESS;
 }
 
+QDF_STATUS
+ucfg_mlme_get_valid_channel_list(struct wlan_objmgr_psoc *psoc,
+				 uint8_t *channel_list,
+				 uint32_t *channel_list_num)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+	qdf_size_t valid_channel_list_num = 0;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		qdf_uint8_array_parse(cfg_default(CFG_VALID_CHANNEL_LIST),
+				      channel_list,
+				      CFG_VALID_CHANNEL_LIST_LEN,
+				      &valid_channel_list_num);
+		*channel_list_num = (uint8_t)valid_channel_list_num;
+		mlme_err("Failed to get MLME Obj");
+		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);
+
+	return QDF_STATUS_SUCCESS;
+}
+
 #ifdef FEATURE_LFR_SUBNET_DETECTION
 QDF_STATUS
 ucfg_mlme_is_subnet_detection_enabled(struct wlan_objmgr_psoc *psoc, bool *val)