qcacld-3.0: Refine mlme reg configurations

Refine mlme reg configurations based on converged cfg component.
Remove related legacy codes.

Change-Id: I524b29d2d03e60111fa1759d11e32236bb3aa3fa
CRs-Fixed: 2357961
This commit is contained in:
lifeng 2018-12-13 09:42:27 +08:00 committed by nshrivas
parent b5df052333
commit 0b46ae503e
19 changed files with 388 additions and 206 deletions

View File

@ -1942,6 +1942,18 @@ static void mlme_init_mwc_cfg(struct wlan_objmgr_psoc *psoc,
}
#endif
static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_reg *reg)
{
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);
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->scan_11d_interval = cfg_get(psoc, CFG_SCAN_11D_INTERVAL);
}
QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
{
struct wlan_mlme_psoc_obj *mlme_obj;
@ -1989,6 +2001,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
mlme_init_fe_wlm_in_cfg(psoc, &mlme_cfg->wlm_config);
mlme_init_fe_rrm_in_cfg(psoc, &mlme_cfg->rrm_config);
mlme_init_mwc_cfg(psoc, &mlme_cfg->mwc);
mlme_init_reg_cfg(psoc, &mlme_cfg->reg);
return status;
}

View File

@ -56,6 +56,7 @@
#include "cfg_mlme_fe_wlm.h"
#include "cfg_mlme_fe_rrm.h"
#include "cfg_mlme_mwc.h"
#include "cfg_mlme_reg.h"
/* Please Maintain Alphabetic Order here */
#define CFG_MLME_ALL \
@ -81,6 +82,7 @@
CFG_POWERSAVE_ALL \
CFG_QOS_ALL \
CFG_RATES_ALL \
CFG_REG_ALL \
CFG_SAP_ALL \
CFG_SAP_PROTECTION_ALL \
CFG_SCORING_ALL \

View File

@ -0,0 +1,166 @@
/*
* Copyright (c) 2012-2018 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
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: This file contains configuration definitions for MLME REG.
*/
#ifndef CFG_MLME_REG_H__
#define CFG_MLME_REG_H__
/*
* <ini>
* gSelfGenFrmPwr - self-generated frame power in tx chain mask
* for CCK rates
* @Min: 0
* @Max: 0xffff
* @Default: 0
*
* gSelfGenFrmPwr is to set self-generated frame power in tx chain mask
* for CCK rates
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_SELF_GEN_FRM_PWR CFG_INI_UINT( \
"gSelfGenFrmPwr", \
0, \
0xffff, \
0, \
CFG_VALUE_OR_DEFAULT, \
"set the self gen power value")
/*
* <ini>
* etsi13_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in
* master mode PCL and ACS functionality
* @Min: 0
* @Max: 1
* @Default: 0
*
* etsi13_srd_chan_in_master_mode is to enable/disable ETSI SRD channels in
* master mode PCL and ACS functionality
*
* Related: None
*
* Supported Feature: SAP/P2P-GO
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE CFG_INI_BOOL( \
"etsi13_srd_chan_in_master_mode", \
0, \
"enable/disable ETSI SRD channels in master mode")
/*
* <ini>
* restart_beaconing_on_chan_avoid_event - control the beaconing entity to move
* away from active LTE channels
* @Min: 0
* @Max: 2
* @Default: 1
*
* This ini is used to control the beaconing entity (SAP/GO) to move away from
* active LTE channels when channel avoidance event is received
* restart_beaconing_on_chan_avoid_event=0: Don't allow beaconing entity move
* from active LTE channels
* restart_beaconing_on_chan_avoid_event=1: Allow beaconing entity move from
* active LTE channels
* restart_beaconing_on_chan_avoid_event=2: Allow beaconing entity move from
* 2.4G active LTE channels only
*
* Related: None
*
* Supported Feature: channel avoidance
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_RESTART_BEACONING_ON_CH_AVOID CFG_INI_UINT( \
"restart_beaconing_on_chan_avoid_event", \
0, \
2, \
1, \
CFG_VALUE_OR_DEFAULT, \
"control the beaconing entity to move away from active LTE channels")
/*
* <ini>
* gindoor_channel_support - support to start sap in indoor channel
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is to support to start sap in indoor channel.
* Customer can config this item to enable/disable sap in indoor channel
*
* Related: None
*
* Supported Feature: SAP
*
* Usage: External
*
* </ini>
*/
#define CFG_INDOOR_CHANNEL_SUPPORT CFG_INI_BOOL( \
"gindoor_channel_support", \
0, \
"enable/disable sap in indoor channel")
/*
* <ini>
* scan_11d_interval - 11d scan interval in ms
* @Min: 1 sec
* @Max: 10 hr
* @Default: 1 hr
*
* This ini sets the 11d scan interval in FW
*
* Related: None
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_SCAN_11D_INTERVAL CFG_INI_UINT( \
"scan_11d_interval", \
1000, \
36000000, \
3600000, \
CFG_VALUE_OR_DEFAULT, \
"set the 11d scan interval in FW")
#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)
#endif /* CFG_MLME_REG_H__ */

View File

@ -2061,4 +2061,15 @@ QDF_STATUS wlan_mlme_is_imps_enabled(struct wlan_objmgr_psoc *psoc,
void
wlan_mlme_get_wps_uuid(struct wlan_mlme_wps_params *wps_params, uint8_t *data);
/*
* wlan_mlme_get_self_gen_frm_pwr() - get self gen frm pwr
* @psoc: pointer to psoc object
* @val: Pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
wlan_mlme_get_self_gen_frm_pwr(struct wlan_objmgr_psoc *psoc,
uint32_t *value);
#endif /* _WLAN_MLME_API_H_ */

View File

@ -1767,6 +1767,24 @@ struct wlan_mlme_mwc {
};
#endif
/**
* struct wlan_mlme_reg - REG related configs
* @self_gen_frm_pwr: self-generated frame power in tx chain mask
* for CCK rates
* @etsi13_srd_chan_in_master_mode: etsi13 srd chan in master mode
* @restart_beaconing_on_ch_avoid: restart beaconing on ch avoid
* @indoor_channel_support: indoor channel support
* @scan_11d_interval: scan 11d interval
*/
struct wlan_mlme_reg {
uint32_t self_gen_frm_pwr;
bool etsi13_srd_chan_in_master_mode;
enum restart_beaconing_on_ch_avoid_rule
restart_beaconing_on_ch_avoid;
bool indoor_channel_support;
uint32_t scan_11d_interval;
};
/**
* struct wlan_mlme_cfg - MLME config items
* @chainmask_cfg: VHT chainmask related cfg items
@ -1803,6 +1821,7 @@ struct wlan_mlme_mwc {
* @wlm_config: WLM related CFG items
* @rrm_config: RRM related CFG items
* @mwc: MWC related CFG items
* @reg: REG related CFG itmes
*/
struct wlan_mlme_cfg {
struct wlan_mlme_chainmask chainmask_cfg;
@ -1841,6 +1860,7 @@ struct wlan_mlme_cfg {
struct wlan_mlme_fe_wlm wlm_config;
struct wlan_mlme_fe_rrm rrm_config;
struct wlan_mlme_mwc mwc;
struct wlan_mlme_reg reg;
};
#endif

View File

@ -3357,4 +3357,49 @@ ucfg_mlme_get_mws_coex_5g_nr_pwr_limit(struct wlan_objmgr_psoc *psoc,
uint32_t *val);
#endif
/**
* ucfg_mlme_get_etsi13_srd_chan_in_master_mode - get etsi13 srd chan
* in master mode
* @psoc: pointer to psoc object
* @val: Pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_etsi13_srd_chan_in_master_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
* @val: Pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_restart_beaconing_on_ch_avoid(struct wlan_objmgr_psoc *psoc,
uint32_t *value);
/**
* ucfg_mlme_get_indoor_channel_support() - get indoor channel support
* @psoc: pointer to psoc object
* @val: Pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_indoor_channel_support(struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* ucfg_mlme_get_scan_11d_interval() - get scan 11d interval
* @psoc: pointer to psoc object
* @val: Pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
uint32_t *value);
#endif /* _WLAN_MLME_UCFG_API_H_ */

View File

@ -3020,3 +3020,21 @@ void wlan_mlme_get_wps_uuid(struct wlan_mlme_wps_params *wps_params,
wlan_mlme_get_cfg_str(data, &wps_params->wps_uuid, &len);
}
QDF_STATUS
wlan_mlme_get_self_gen_frm_pwr(struct wlan_objmgr_psoc *psoc,
uint32_t *value)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj) {
*value = cfg_default(CFG_SELF_GEN_FRM_PWR);
mlme_err("Failed to get MLME Obj");
return QDF_STATUS_E_FAILURE;
}
*value = mlme_obj->cfg.reg.self_gen_frm_pwr;
return QDF_STATUS_SUCCESS;
}

View File

@ -1248,3 +1248,75 @@ ucfg_mlme_get_mws_coex_5g_nr_pwr_limit(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
#endif
QDF_STATUS
ucfg_mlme_get_etsi13_srd_chan_in_master_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_ETSI13_SRD_CHAN_IN_MASTER_MODE);
mlme_err("Failed to get MLME Obj");
return QDF_STATUS_E_INVAL;
}
*value = mlme_obj->cfg.reg.etsi13_srd_chan_in_master_mode;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
ucfg_mlme_get_restart_beaconing_on_ch_avoid(struct wlan_objmgr_psoc *psoc,
uint32_t *value)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj) {
*value = cfg_default(CFG_RESTART_BEACONING_ON_CH_AVOID);
mlme_err("Failed to get MLME Obj");
return QDF_STATUS_E_INVAL;
}
*value = mlme_obj->cfg.reg.restart_beaconing_on_ch_avoid;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
ucfg_mlme_get_indoor_channel_support(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_INDOOR_CHANNEL_SUPPORT);
mlme_err("Failed to get MLME Obj");
return QDF_STATUS_E_INVAL;
}
*value = mlme_obj->cfg.reg.indoor_channel_support;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS
ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
uint32_t *value)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj) {
*value = cfg_default(CFG_SCAN_11D_INTERVAL);
mlme_err("Failed to get MLME Obj");
return QDF_STATUS_E_INVAL;
}
*value = mlme_obj->cfg.reg.scan_11d_interval;
return QDF_STATUS_SUCCESS;
}

View File

@ -79,7 +79,6 @@ enum active_apf_mode {
* @enable_dp_rx_threads: enable dp rx threads
* @is_lpass_enabled: Indicate whether LPASS is enabled or not
* @tx_chain_mask_cck: Tx chain mask enabled or not
* @self_gen_frm_pwr: Self gen from power
* @sub_20_channel_width: Sub 20 MHz ch width, ini intersected with fw cap
* @is_fw_timeout: Indicate whether crash host when fw timesout or not
* @active_uc_apf_mode: Setting that determines how APF is applied in active
@ -117,7 +116,6 @@ struct cds_config_info {
#ifdef WLAN_FEATURE_LPSS
bool is_lpass_enabled;
#endif
uint16_t self_gen_frm_pwr;
enum cfg_sub_20_channel_width sub_20_channel_width;
uint8_t max_msdus_per_rxinorderind;
bool self_recovery_enabled;

View File

@ -99,11 +99,6 @@ struct hdd_context;
#define CFG_ENABLE_11D_IN_WORLD_MODE_MAX (1)
#define CFG_ENABLE_11D_IN_WORLD_MODE_DEFAULT (0)
#define CFG_REG_CHANGE_DEF_COUNTRY_NAME "gRegulatoryChangeCountry"
#define CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT (0)
#define CFG_REG_CHANGE_DEF_COUNTRY_MIN (0)
#define CFG_REG_CHANGE_DEF_COUNTRY_MAX (1)
/*
* <ini>
* gAdvertiseConcurrentOperation - Iface combination advertising
@ -1738,39 +1733,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_GO_11AC_OVERRIDE_MAX (1)
#define CFG_GO_11AC_OVERRIDE_DEFAULT (1)
/*
* set the self gen power value from
* 0 to 0xffff
*/
#define CFG_SELF_GEN_FRM_PWR "gSelfGenFrmPwr"
#define CFG_SELF_GEN_FRM_PWR_MIN (0)
#define CFG_SELF_GEN_FRM_PWR_MAX (0xffff)
#define CFG_SELF_GEN_FRM_PWR_DEFAULT (0)
/*
* <ini>
* etsi13_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in
* master mode PCL and ACS functionality
* @Min: 0
* @Max: 1
* @Default: 0
*
* etsi13_srd_chan_in_master_mode is to enable/disable ETSI SRD channels in
* master mode PCL and ACS functionality
*
* Related: None
*
* Supported Feature: SAP/P2P-GO
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE "etsi13_srd_chan_in_master_mode"
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_DEF (0)
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MIN (0)
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MAX (1)
/*
* gPNOChannelPrediction will allow user to enable/disable the
* PNO channel prediction feature.
@ -1893,46 +1855,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_ADAPT_DWELL_WIFI_THRESH_MAX (100)
#define CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT (10)
/*
* <ini>
* restart_beaconing_on_chan_avoid_event - control the beaconing entity to move
* away from active LTE channels
* @Min: 0
* @Max: 2
* @Default: 1
*
* This ini is used to control the beaconing entity (SAP/GO) to move away from
* active LTE channels when channel avoidance event is received
* restart_beaconing_on_chan_avoid_event=0: Don't allow beaconing entity move
* from active LTE channels
* restart_beaconing_on_chan_avoid_event=1: Allow beaconing entity move from
* active LTE channels
* restart_beaconing_on_chan_avoid_event=2: Allow beaconing entity move from
* 2.4G active LTE channels only
*
* Related: None
*
* Supported Feature: channel avoidance
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_RESTART_BEACONING_ON_CH_AVOID_NAME "restart_beaconing_on_chan_avoid_event"
#define CFG_RESTART_BEACONING_ON_CH_AVOID_MIN (CH_AVOID_RULE_DO_NOT_RESTART)
#define CFG_RESTART_BEACONING_ON_CH_AVOID_MAX (CH_AVOID_RULE_RESTART_24G_ONLY)
#define CFG_RESTART_BEACONING_ON_CH_AVOID_DEFAULT (CH_AVOID_RULE_RESTART)
/*
* Support to start sap in indoor channel
* Customer can config this item to enable/disable sap in indoor channel
* Default: Disable
*/
#define CFG_INDOOR_CHANNEL_SUPPORT_NAME "gindoor_channel_support"
#define CFG_INDOOR_CHANNEL_SUPPORT_MIN (0)
#define CFG_INDOOR_CHANNEL_SUPPORT_MAX (1)
#define CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT (0)
/*
* <ini>
* gActiveUcBpfMode - Control UC active APF mode
@ -2266,28 +2188,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_LPRx_MAX (1)
#define CFG_LPRx_DEFAULT (1)
/*
* <ini>
* scan_11d_interval - 11d scan interval in ms
* @Min: 1 sec
* @Max: 10 hr
* @Default: 1 hr
*
* This ini sets the 11d scan interval in FW
*
*
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_SCAN_11D_INTERVAL_NAME "scan_11d_interval"
#define CFG_SCAN_11D_INTERVAL_DEFAULT (3600000)
#define CFG_SCAN_11D_INTERVAL_MIN (1000)
#define CFG_SCAN_11D_INTERVAL_MAX (36000000)
/*
* <ini>
* is_bssid_hint_priority - Set priority for connection with bssid_hint
@ -2720,7 +2620,6 @@ struct hdd_config {
uint32_t ibssTxSpEndInactivityTime;
uint32_t ibssPsWarmupTime;
uint32_t ibssPs1RxChainInAtimEnable;
bool fRegChangeDefCountry;
bool advertiseConcurrentOperation;
#ifdef DHCP_SERVER_OFFLOAD
uint8_t dhcpServerIP[IPADDR_STRING_LENGTH];
@ -2729,8 +2628,6 @@ struct hdd_config {
uint8_t sap_11ac_override;
uint8_t go_11ac_override;
uint8_t max_scan_count;
bool etsi13_srd_chan_in_master_mode;
uint16_t self_gen_frm_pwr;
#ifdef FEATURE_WLAN_SCAN_PNO
bool pno_channel_prediction;
uint8_t top_k_num_of_channels;
@ -2765,11 +2662,8 @@ struct hdd_config {
uint8_t adapt_dwell_passive_mon_intval;
uint8_t adapt_dwell_wifi_act_threshold;
bool bug_report_for_no_scan_results;
bool indoor_channel_support;
uint16_t sap_tx_leakage_threshold;
bool sap_internal_restart;
enum restart_beaconing_on_ch_avoid_rule
restart_beaconing_on_chan_avoid_event;
enum active_apf_mode active_uc_apf_mode;
enum active_apf_mode active_mc_bc_apf_mode;
uint8_t he_dynamic_frag_support;
@ -2791,7 +2685,6 @@ struct hdd_config {
uint32_t mawc_nlo_max_scan_interval;
bool enable_11d_in_world_mode;
bool enable_lprx;
uint32_t scan_11d_interval;
bool is_bssid_hint_priority;
#ifdef WLAN_FEATURE_SAE
bool is_sae_enabled;

View File

@ -353,13 +353,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
struct hdd_config, fRegChangeDefCountry,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
CFG_REG_CHANGE_DEF_COUNTRY_MIN,
CFG_REG_CHANGE_DEF_COUNTRY_MAX),
REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
struct hdd_config, nInitialDwellTime,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@ -428,13 +421,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_MAX_SCAN_COUNT_MIN,
CFG_MAX_SCAN_COUNT_MAX),
REG_VARIABLE(CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE, WLAN_PARAM_Integer,
struct hdd_config, etsi13_srd_chan_in_master_mode,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_DEF,
CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MIN,
CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE_MAX),
#ifdef FEATURE_WLAN_SCAN_PNO
REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
struct hdd_config, pno_channel_prediction,
@ -473,12 +459,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
#endif
REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
struct hdd_config, self_gen_frm_pwr,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SELF_GEN_FRM_PWR_DEFAULT,
CFG_SELF_GEN_FRM_PWR_MIN,
CFG_SELF_GEN_FRM_PWR_MAX),
#ifdef FEATURE_LFR_SUBNET_DETECTION
REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
@ -587,21 +567,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
WLAN_PARAM_Integer,
struct hdd_config, indoor_channel_support,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
CFG_INDOOR_CHANNEL_SUPPORT_MIN,
CFG_INDOOR_CHANNEL_SUPPORT_MAX),
REG_VARIABLE(CFG_RESTART_BEACONING_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
struct hdd_config, restart_beaconing_on_chan_avoid_event,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_RESTART_BEACONING_ON_CH_AVOID_DEFAULT,
CFG_RESTART_BEACONING_ON_CH_AVOID_MIN,
CFG_RESTART_BEACONING_ON_CH_AVOID_MAX),
REG_VARIABLE(CFG_ACTIVE_UC_APF_MODE_NAME, WLAN_PARAM_Integer,
struct hdd_config, active_uc_apf_mode,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@ -710,13 +675,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_LPRx_MIN,
CFG_LPRx_MAX),
REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
struct hdd_config, scan_11d_interval,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_SCAN_11D_INTERVAL_DEFAULT,
CFG_SCAN_11D_INTERVAL_MIN,
CFG_SCAN_11D_INTERVAL_MAX),
REG_VARIABLE(CFG_IS_BSSID_HINT_PRIORITY_NAME, WLAN_PARAM_Integer,
struct hdd_config, is_bssid_hint_priority,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,

View File

@ -2538,6 +2538,7 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
cfg_default(CFG_EXTERNAL_ACS_POLICY);
bool sap_force_11n_for_11ac = 0;
bool go_force_11n_for_11ac = 0;
bool etsi13_srd_chan;
/* ***Note*** Donot set SME config related to ACS operation here because
* ACS operation is not synchronouse and ACS for Second AP may come when
@ -2715,8 +2716,10 @@ static int __wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy,
goto out;
}
ucfg_mlme_get_etsi13_srd_chan_in_master_mode(hdd_ctx->psoc,
&etsi13_srd_chan);
skip_etsi13_srd_chan =
!hdd_ctx->config->etsi13_srd_chan_in_master_mode &&
!etsi13_srd_chan &&
wlan_reg_is_etsi13_regdmn(hdd_ctx->pdev);
if (skip_etsi13_srd_chan) {

View File

@ -9931,7 +9931,6 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
cds_cfg->max_scan = hdd_ctx->config->max_scan_count;
cds_cfg->enable_rxthread = hdd_ctx->enable_rxthread;
cds_cfg->self_gen_frm_pwr = hdd_ctx->config->self_gen_frm_pwr;
ucfg_mlme_get_sap_max_peers(hdd_ctx->psoc, &value);
cds_cfg->max_station = value;
cds_cfg->sub_20_channel_width = WLAN_SUB_20_CH_WIDTH_NONE;
@ -9992,10 +9991,6 @@ static int hdd_update_user_config(struct hdd_context *hdd_ctx)
return -ENOMEM;
user_config->dot11_mode = hdd_ctx->config->dot11Mode;
user_config->dual_mac_feature_disable = dual_mac_feature;
user_config->indoor_channel_support =
hdd_ctx->config->indoor_channel_support;
status = ucfg_mlme_is_11d_enabled(hdd_ctx->psoc, &value);
if (!QDF_IS_STATUS_SUCCESS(status))
hdd_err("Invalid 11d_enable flag");
@ -10006,7 +10001,6 @@ static int hdd_update_user_config(struct hdd_context *hdd_ctx)
if (!QDF_IS_STATUS_SUCCESS(status))
hdd_err("Invalid 11h_enable flag");
user_config->is_11h_support_enabled = value;
cfg_p2p_get_skip_dfs_channel_p2p_search(hdd_ctx->psoc,
&skip_dfs_in_p2p_search);
user_config->skip_dfs_chnl_in_p2p_search = skip_dfs_in_p2p_search;
@ -10936,9 +10930,6 @@ static int hdd_features_init(struct hdd_context *hdd_ctx)
/* FW capabilities received, Set the Dot11 mode */
mac_handle = hdd_ctx->mac_handle;
sme_setdef_dot11mode(mac_handle);
sme_set_etsi13_srd_ch_in_master_mode(mac_handle,
cfg->
etsi13_srd_chan_in_master_mode);
ucfg_mlme_is_imps_enabled(hdd_ctx->psoc, &is_imps_enabled);
hdd_set_idle_ps_config(hdd_ctx, is_imps_enabled);

View File

@ -209,6 +209,10 @@ static void reg_program_config_vars(struct hdd_context *hdd_ctx,
struct reg_config_vars *config_vars)
{
uint8_t band_capability = 0, indoor_chnl_marking = 0;
uint32_t scan_11d_interval = 0;
bool indoor_chan_enabled = false;
uint32_t restart_beaconing = 0;
bool enable_srd_chan = false;
QDF_STATUS status;
bool country_priority = 0;
bool value = false;
@ -227,19 +231,30 @@ static void reg_program_config_vars(struct hdd_context *hdd_ctx,
hdd_err("Invalid 11d_enable flag");
config_vars->enable_11d_support = value;
config_vars->scan_11d_interval = hdd_ctx->config->scan_11d_interval;
ucfg_mlme_get_scan_11d_interval(hdd_ctx->psoc, &scan_11d_interval);
config_vars->scan_11d_interval = scan_11d_interval;
ucfg_mlme_get_sap_country_priority(hdd_ctx->psoc,
&country_priority);
config_vars->userspace_ctry_priority = country_priority;
config_vars->dfs_enabled = hdd_ctx->config->enableDFSChnlScan;
config_vars->indoor_chan_enabled =
hdd_ctx->config->indoor_channel_support;
ucfg_mlme_get_indoor_channel_support(hdd_ctx->psoc,
&indoor_chan_enabled);
config_vars->indoor_chan_enabled = indoor_chan_enabled;
config_vars->force_ssc_disable_indoor_channel = indoor_chnl_marking;
config_vars->band_capability = band_capability;
config_vars->restart_beaconing = hdd_ctx->config->
restart_beaconing_on_chan_avoid_event;
config_vars->enable_srd_chan_in_master_mode =
hdd_ctx->config->etsi13_srd_chan_in_master_mode;
ucfg_mlme_get_restart_beaconing_on_ch_avoid(hdd_ctx->psoc,
&restart_beaconing);
config_vars->restart_beaconing = restart_beaconing;
ucfg_mlme_get_etsi13_srd_chan_in_master_mode(hdd_ctx->psoc,
&enable_srd_chan);
config_vars->enable_srd_chan_in_master_mode = enable_srd_chan;
config_vars->enable_11d_in_world_mode =
hdd_ctx->config->enable_11d_in_world_mode;
}
@ -266,9 +281,6 @@ static void hdd_regulatory_wiphy_init(struct hdd_context *hdd_ctx,
if (hdd_is_world_regdomain(reg->reg_domain)) {
reg_rules = hdd_get_world_regrules(reg);
wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG;
} else if (hdd_ctx->config->fRegChangeDefCountry) {
wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG;
reg_rules = &hdd_world_regrules_60_61_62;
} else {
wiphy->regulatory_flags |= REGULATORY_STRICT_REG;
reg_rules = &hdd_world_regrules_60_61_62;
@ -309,9 +321,6 @@ static void hdd_regulatory_wiphy_init(struct hdd_context *hdd_ctx,
if (hdd_is_world_regdomain(reg->reg_domain)) {
reg_rules = hdd_get_world_regrules(reg);
wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY;
} else if (hdd_ctx->config->fRegChangeDefCountry) {
wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY;
reg_rules = &hdd_world_regrules_60_61_62;
} else {
wiphy->flags |= WIPHY_FLAG_STRICT_REGULATORY;
reg_rules = &hdd_world_regrules_60_61_62;
@ -430,6 +439,7 @@ static void hdd_process_regulatory_data(struct hdd_context *hdd_ctx,
struct ieee80211_channel *wiphy_chan, *wiphy_chan_144 = NULL;
struct regulatory_channel *cds_chan;
uint8_t band_capability, indoor_chnl_marking = 0;
bool indoor;
QDF_STATUS status;
band_capability = hdd_ctx->curr_band;
@ -484,8 +494,10 @@ static void hdd_process_regulatory_data(struct hdd_context *hdd_ctx,
IEEE80211_CHAN_INDOOR_ONLY) {
cds_chan->chan_flags |=
REGULATORY_CHAN_INDOOR_ONLY;
if (hdd_ctx->config->indoor_channel_support
== false) {
ucfg_mlme_get_indoor_chan_enabled(hdd_ctx->psoc,
&indoor);
if (!indoor) {
cds_chan->state = CHANNEL_STATE_DFS;
wiphy_chan->flags |=
IEEE80211_CHAN_PASSIVE_SCAN;
@ -598,7 +610,9 @@ void hdd_modify_indoor_channel_state_flags(
struct regulatory_channel *cds_chan,
enum channel_enum chan_enum, int chan_num, bool disable)
{
bool indoor_support = hdd_ctx->config->indoor_channel_support;
bool indoor_support;
ucfg_mlme_get_indoor_channel_support(hdd_ctx->psoc, &indoor_support);
/* Mark indoor channel to disable in wiphy and cds */
if (disable) {

View File

@ -713,7 +713,6 @@ typedef struct tagSapStruct {
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
bool acs_with_more_param;
bool enable_dfs_phy_error_logs;
bool enable_etsi13_srd_chan_support;
} tSapStruct, *tpSapStruct;
#ifdef FEATURE_WLAN_CH_AVOID

View File

@ -671,7 +671,7 @@ static bool sap_chan_sel_init(mac_handle_t mac_handle,
if (wlan_reg_is_dsrc_chan(mac->pdev, *pChans))
continue;
if (!mac->sap.enable_etsi13_srd_chan_support &&
if (!mac->mlme_cfg->reg.etsi13_srd_chan_in_master_mode &&
wlan_reg_is_etsi13_srd_chan(mac->pdev, *pChans))
continue;

View File

@ -1535,11 +1535,6 @@ QDF_STATUS sme_register_for_dcc_stats_event(mac_handle_t mac_handle,
ocb_callback callback);
QDF_STATUS sme_deregister_for_dcc_stats_event(mac_handle_t mac_handle);
static inline void
sme_set_etsi13_srd_ch_in_master_mode(mac_handle_t mac_handle,
bool etsi13_srd_chan_support)
{
}
#else
static inline
QDF_STATUS sme_ocb_set_config(mac_handle_t mac_handle, void *context,
@ -1620,17 +1615,6 @@ QDF_STATUS sme_deregister_for_dcc_stats_event(mac_handle_t mac_handle)
return QDF_STATUS_SUCCESS;
}
/**
* sme_set_etsi13_srd_ch_in_master_mode() - master mode UNI-III band ch support
* @mac_handle: Opaque handle to the global MAC context
* @srd_chan_support: ETSI SRD channel support
*
* This function set master ETSI SRD channel support
*
* Return: None
*/
void sme_set_etsi13_srd_ch_in_master_mode(mac_handle_t mac_handle,
bool etsi13_srd_chan_support);
#endif
void sme_add_set_thermal_level_callback(mac_handle_t mac_handle,

View File

@ -9301,16 +9301,6 @@ QDF_STATUS sme_deregister_for_dcc_stats_event(mac_handle_t mac_handle)
return status;
}
#else
void sme_set_etsi13_srd_ch_in_master_mode(mac_handle_t mac_handle,
bool etsi13_srd_chan_support)
{
struct mac_context *mac;
mac = MAC_CONTEXT(mac_handle);
mac->sap.enable_etsi13_srd_chan_support = etsi13_srd_chan_support;
sme_debug("srd_ch_support %d", mac->sap.enable_etsi13_srd_chan_support);
}
#endif
void sme_get_recovery_stats(mac_handle_t mac_handle)

View File

@ -3166,6 +3166,7 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
target_resource_config *wlan_res_cfg;
enum pmo_wow_enable_type wow_enable;
uint8_t delay_before_vdev_stop;
uint32_t self_gen_frm_pwr = 0;
WMA_LOGD("%s: Enter", __func__);
@ -3313,7 +3314,11 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
goto err_wma_handle;
}
wma_handle->tx_chain_mask_cck = val;
wma_handle->self_gen_frm_pwr = cds_cfg->self_gen_frm_pwr;
qdf_status = wlan_mlme_get_self_gen_frm_pwr(psoc, &self_gen_frm_pwr);
if (qdf_status != QDF_STATUS_SUCCESS)
WMA_LOGE("%s: Failed to get self_gen_frm_pwr", __func__);
wma_handle->self_gen_frm_pwr = self_gen_frm_pwr;
cds_cfg->max_bssid = WMA_MAX_SUPPORTED_BSS;