From be1880956ab67b1856b7649c14b585135484d46e Mon Sep 17 00:00:00 2001 From: Wu Gao Date: Tue, 15 Jan 2019 18:26:25 +0800 Subject: [PATCH] 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 --- mlme/core/src/wlan_mlme_main.c | 12 +++++ mlme/dispatcher/inc/cfg_mlme_generic.h | 23 +++++++++- mlme/dispatcher/inc/cfg_mlme_reg.h | 44 ++++++++++++++++++- mlme/dispatcher/inc/wlan_mlme_public_struct.h | 10 +++++ mlme/dispatcher/inc/wlan_mlme_ucfg_api.h | 13 ++++++ mlme/dispatcher/src/wlan_mlme_ucfg_api.c | 26 +++++++++++ 6 files changed, 124 insertions(+), 4 deletions(-) diff --git a/mlme/core/src/wlan_mlme_main.c b/mlme/core/src/wlan_mlme_main.c index 1f13adbd69..763467dba8 100644 --- a/mlme/core/src/wlan_mlme_main.c +++ b/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 diff --git a/mlme/dispatcher/inc/cfg_mlme_generic.h b/mlme/dispatcher/inc/cfg_mlme_generic.h index 217945c1eb..d06b1ba761 100644 --- a/mlme/dispatcher/inc/cfg_mlme_generic.h +++ b/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") +/* + * + * 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 + * + * + */ +#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 */ diff --git a/mlme/dispatcher/inc/cfg_mlme_reg.h b/mlme/dispatcher/inc/cfg_mlme_reg.h index ab3cefcf4d..61d027db43 100644 --- a/mlme/dispatcher/inc/cfg_mlme_reg.h +++ b/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" + /* * * 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__ */ diff --git a/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/mlme/dispatcher/inc/wlan_mlme_public_struct.h index e65c2bde62..e3eae5ba95 100644 --- a/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/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; }; /** diff --git a/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 008c79c9bc..6ef41bdc55 100644 --- a/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/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 diff --git a/mlme/dispatcher/src/wlan_mlme_ucfg_api.c b/mlme/dispatcher/src/wlan_mlme_ucfg_api.c index 047940c3f3..a961fc0238 100644 --- a/mlme/dispatcher/src/wlan_mlme_ucfg_api.c +++ b/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)