فهرست منبع

qcacld-3.0: Refactor ini 11d in world mode to reg cfg

Refactor ini 11d in world mode to reg cfg, instead of
hdd config.

Change-Id: I9463d6efe3c109aa07eb98378d38ef0b23ff3880
CRs-Fixed: 2393498
gaurank kathpalia 6 سال پیش
والد
کامیت
9b208c45d5

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

@@ -2067,6 +2067,8 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
 	reg->restart_beaconing_on_ch_avoid =
 			cfg_get(psoc, CFG_RESTART_BEACONING_ON_CH_AVOID);
 	reg->indoor_channel_support = cfg_get(psoc, CFG_INDOOR_CHANNEL_SUPPORT);
+	reg->enable_11d_in_world_mode = cfg_get(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,

+ 20 - 0
mlme/dispatcher/inc/cfg_mlme_reg.h

@@ -52,6 +52,25 @@
 	CFG_VALUE_OR_DEFAULT, \
 	"set the self gen power value")
 
+/*
+ * <ini>
+ * enable_11d_in_world_mode - enable 11d in world mode
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini enables 11d in world mode, irrespective of value of
+ * g11dSupportEnabled
+ *
+ * Usage: External
+ *
+ * </ini>
+ */
+#define CFG_ENABLE_11D_IN_WORLD_MODE CFG_INI_BOOL( \
+	"enable_11d_in_world_mode", \
+	0, \
+	"enable 11d in world mode")
+
 /*
  * <ini>
  * etsi13_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in
@@ -196,6 +215,7 @@
 
 #define CFG_REG_ALL \
 	CFG(CFG_SELF_GEN_FRM_PWR) \
+	CFG(CFG_ENABLE_11D_IN_WORLD_MODE) \
 	CFG(CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE) \
 	CFG(CFG_RESTART_BEACONING_ON_CH_AVOID) \
 	CFG(CFG_INDOOR_CHANNEL_SUPPORT) \

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

@@ -1901,6 +1901,7 @@ struct wlan_mlme_mwc {
  * @valid_channel_list_num: valid channel list number
  * @country_code: country code
  * @country_code_len: country code length
+ * @enable_11d_in_world_mode: Whether to enable 11d scan in world mode or not
  */
 struct wlan_mlme_reg {
 	uint32_t self_gen_frm_pwr;
@@ -1913,6 +1914,7 @@ struct wlan_mlme_reg {
 	uint8_t valid_channel_list_num;
 	uint8_t country_code[CFG_COUNTRY_CODE_LEN + 1];
 	uint8_t country_code_len;
+	bool enable_11d_in_world_mode;
 };
 
 /**

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

@@ -3503,6 +3503,18 @@ QDF_STATUS
 ucfg_mlme_get_etsi13_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc,
 					     bool *value);
 
+/**
+ * ucfg_mlme_get_11d_in_world_mode  - get whether 11d is enabled in world mode
+ * in master mode
+ * @psoc:   pointer to psoc object
+ * @value:  pointer to the value which will be filled for the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_11d_in_world_mode(struct wlan_objmgr_psoc *psoc,
+				bool *value);
+
 /**
  * ucfg_mlme_restart_beaconing_on_ch_avoid() - get restart beaconing on ch avoid
  * @psoc:   pointer to psoc object

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

@@ -1426,6 +1426,24 @@ ucfg_mlme_get_etsi13_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc,
 	return QDF_STATUS_SUCCESS;
 }
 
+QDF_STATUS
+ucfg_mlme_get_11d_in_world_mode(struct wlan_objmgr_psoc *psoc,
+				bool *value)
+{
+	struct wlan_mlme_psoc_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_obj(psoc);
+	if (!mlme_obj) {
+		*value = cfg_default(CFG_ENABLE_11D_IN_WORLD_MODE);
+		mlme_err("Failed to get MLME Obj");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	*value = mlme_obj->cfg.reg.enable_11d_in_world_mode;
+
+	return QDF_STATUS_SUCCESS;
+}
+
 QDF_STATUS
 ucfg_mlme_get_restart_beaconing_on_ch_avoid(struct wlan_objmgr_psoc *psoc,
 					    uint32_t *value)