
Currently if host enable AFC in WMI INIT CMD, target will trigger AFC request if current country has AP SP reg rules. We have changed regdb on specific SP to enable AFC test, to not affect other SP which shares regdb and FW, introduce INI to control AFC enable/disable for flexibility. And because currently no country support AP SP reg rule per spec, so disable AFC by default. Change-Id: I0e5eb2dac0a8df01635437fe8353ca5431ae5d2a CRs-Fixed: 3393896
478 líneas
11 KiB
C
478 líneas
11 KiB
C
/*
|
|
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
|
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. 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>
|
|
* 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>
|
|
* etsi_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in
|
|
* master mode PCL and ACS functionality
|
|
* @Min: 0
|
|
* @Max: 0xFF
|
|
* @Default: 6
|
|
*
|
|
* etsi_srd_chan_in_master_mode is to enable/disable ETSI SRD channels in
|
|
* master mode PCL and ACS functionality
|
|
* Bit map for enabling the SRD mode in various modes are as follows:-
|
|
* BIT 0:- Enable/Disable SRD channels for SAP.
|
|
* BIT 1:- Enable/Disable SRD channels for P2P-GO.
|
|
* BIT 2:- Enable/Disable SRD channels for NAN.
|
|
* Rest of the bits are currently reserved for future SRD channel support for
|
|
* other vdevs.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: SAP/P2P-GO
|
|
*
|
|
* Usage: Internal/External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_ETSI_SRD_CHAN_IN_MASTER_MODE CFG_INI_UINT( \
|
|
"etsi13_srd_chan_in_master_mode", \
|
|
0, \
|
|
0xff, \
|
|
6, \
|
|
CFG_VALUE_OR_DEFAULT, \
|
|
"enable/disable ETSI SRD channels in master mode")
|
|
|
|
/*
|
|
* <ini>
|
|
* enable_nan_indoor_channel - Enable Indoor channels for NAN
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 0
|
|
*
|
|
* This ini is used to support to indoor channels for NAN interface
|
|
* Customer can config this item to enable/disable NAN in indoor channel
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: NAN
|
|
*
|
|
* Usage: External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_INDOOR_CHANNEL_SUPPORT_FOR_NAN CFG_INI_BOOL( \
|
|
"enable_nan_indoor_channel", \
|
|
0, \
|
|
"enable/disable indoor channels for NAN")
|
|
|
|
/*
|
|
* <ini>
|
|
* fcc_5dot9_ghz_chan_in_master_mode - Enable/disable 5.9 GHz channels in
|
|
* master mode for US
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 0
|
|
*
|
|
* fcc_5dot9_ghz_chan_in_master_mode is to enable/disable 5.9 GHz channels
|
|
* in master mode for FCC reg domain
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: SAP/P2P-GO
|
|
*
|
|
* Usage: Internal/External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_FCC_5DOT9_GHZ_CHAN_IN_MASTER_MODE CFG_INI_BOOL( \
|
|
"fcc_5dot9_ghz_chan_in_master_mode", \
|
|
0, \
|
|
"enable/disable FCC 5.9 GHz channels in master mode")
|
|
|
|
#ifdef SAP_AVOID_ACS_FREQ_LIST
|
|
#define SAP_AVOID_ACS_FREQ_LIST_DEFAULT ""
|
|
|
|
/*
|
|
* <ini>
|
|
* sap_avoid_acs_freq_list - Avoid configured frequencies from acs
|
|
* @Default: No frequencies are configured, it means consider all
|
|
* the frequencies for acs
|
|
*
|
|
* This ini is to configure the frequencies which needs to be
|
|
* avoided during acs and sap will not come up on these channels
|
|
* Ex: sap_avoid_acs_freq_list=2412,2417,2422,2427,2467,2472
|
|
*
|
|
* Related: Feature flag SAP_AVOID_ACS_FREQ_LIST
|
|
*
|
|
* Supported Feature: SAP
|
|
*
|
|
* Usage: External
|
|
*
|
|
* </ini>
|
|
*/
|
|
|
|
#define CFG_SAP_AVOID_ACS_FREQ_LIST CFG_INI_STRING( \
|
|
"sap_avoid_acs_freq_list", \
|
|
0, \
|
|
CFG_VALID_CHANNEL_LIST_STRING_LEN, \
|
|
SAP_AVOID_ACS_FREQ_LIST_DEFAULT, \
|
|
"Avoid configured frequencies during acs")
|
|
#define CFG_SAP_AVOID_ACS_FREQ_LIST_ALL CFG(CFG_SAP_AVOID_ACS_FREQ_LIST)
|
|
#else
|
|
#define CFG_SAP_AVOID_ACS_FREQ_LIST_ALL
|
|
#endif
|
|
|
|
/*
|
|
* <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")
|
|
|
|
/*
|
|
* <ini>
|
|
* ignore_fw_reg_offload_ind - If set, Ignore the FW offload indication
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 0
|
|
*
|
|
* This ini is used to ignore regdb offload indication from FW and
|
|
* regulatory will be treated as non offload.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: STA/AP
|
|
*
|
|
* Usage: External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_IGNORE_FW_REG_OFFLOAD_IND CFG_INI_BOOL( \
|
|
"ignore_fw_reg_offload_ind", \
|
|
0, \
|
|
"Ignore Regulatory offloads Indication from FW")
|
|
|
|
/*
|
|
* <ini>
|
|
* enable_pending_list_req - Sets Pending channel List Req.
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 1
|
|
*
|
|
* This option enables/disables SCAN_CHAN_LIST_CMDID channel list command to FW
|
|
* till the current scan is complete.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: STA
|
|
*
|
|
* Usage: External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_ENABLE_PENDING_CHAN_LIST_REQ CFG_INI_BOOL( \
|
|
"enable_pending_list_req", \
|
|
1, \
|
|
"Enable Pending list req")
|
|
|
|
#if defined(CONFIG_BAND_6GHZ) && defined(CONFIG_AFC_SUPPORT)
|
|
/*
|
|
* afc_reg_no_action - Whether action to AFC response
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 0
|
|
*
|
|
* This cfg is used to control whether action to AFC response.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: SAP
|
|
*
|
|
*/
|
|
#define CFG_AFC_REG_NO_ACTION CFG_BOOL( \
|
|
"afc_reg_no_action", false, \
|
|
"driver/user space action needed for afc resp")
|
|
|
|
/*
|
|
* enable_6ghz_sp_pwrmode_supp - Enable 6Ghz SP power mode
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 0
|
|
*
|
|
* This cfg is used to control support of 6Ghz SP power mode.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: SAP
|
|
*
|
|
*/
|
|
#define CFG_6GHZ_SP_POWER_MODE_SUPP CFG_INI_BOOL( \
|
|
"enable_6ghz_sp_pwrmode_supp", false, \
|
|
"Enable support for SP Power mode in 6GHz")
|
|
|
|
/*
|
|
* afc_disable_timer_check - Disable AFC timer check
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 0
|
|
*
|
|
* This cfg is used to control whether disable AFC timer check.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: SAP
|
|
*
|
|
*/
|
|
#define CFG_AFC_TIMER_CHECK_DIS CFG_BOOL( \
|
|
"afc_disable_timer_check", false, \
|
|
"Disable the AFC request timer in FW")
|
|
|
|
/*
|
|
* afc_disable_request_id_check - Disable AFC request id check
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 0
|
|
*
|
|
* This ini is used to control whether disable AFC request id check.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: SAP
|
|
*
|
|
*/
|
|
#define CFG_AFC_REQ_ID_CHECK_DIS CFG_BOOL( \
|
|
"afc_disable_request_id_check", false, \
|
|
"Disable the AFC request ID check in FW")
|
|
|
|
#define CFG_AFC_REG_ALL \
|
|
CFG(CFG_AFC_REG_NO_ACTION) \
|
|
CFG(CFG_6GHZ_SP_POWER_MODE_SUPP) \
|
|
CFG(CFG_AFC_TIMER_CHECK_DIS) \
|
|
CFG(CFG_AFC_REQ_ID_CHECK_DIS)
|
|
#else
|
|
#define CFG_AFC_REG_ALL
|
|
#endif
|
|
|
|
/*
|
|
* <ini>
|
|
* retain_nol_across_regdmn - Retain NOL across reg domain
|
|
* @Min: 0
|
|
* @Max: 1
|
|
* @Default: 1
|
|
*
|
|
* This ini is used to set if NOL needs to be retained
|
|
* on the reg domain change.
|
|
*
|
|
* Related: None
|
|
*
|
|
* Supported Feature: SAP
|
|
*
|
|
* Usage: External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_RETAIN_NOL_ACROSS_REG_DOMAIN CFG_INI_BOOL( \
|
|
"retain_nol_across_regdmn", \
|
|
1, \
|
|
"Retain NOL even if the regdomain changes")
|
|
|
|
#ifdef FEATURE_WLAN_CH_AVOID_EXT
|
|
/*
|
|
* <ini>
|
|
* coex_unsafe_chan_nb_user_prefer- Used to handle coex unsafe freq
|
|
* event
|
|
*
|
|
* @Min: 0 (Honor Firmware event)
|
|
* @Max: 1 (Don't honor Firmware event)
|
|
* Default: 0
|
|
*
|
|
* This ini is used to handle coex unsafe freq event
|
|
* Usage: External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_COEX_UNSAFE_CHAN_NB_USER_PREFER CFG_INI_BOOL( \
|
|
"coex_unsafe_chan_nb_user_prefer", \
|
|
0, \
|
|
"Honor coex unsafe freq event from firmware")
|
|
/*
|
|
* <ini>
|
|
* coex_unsafe_chan_reg_disable - Used to disable reg channels
|
|
* for coex unsafe freq event
|
|
*
|
|
* @Min: 0 (Don't disable reg channels for coex unsafe chan event)
|
|
* @Max: 1 (Disable reg channels for coex unsafe chan event)
|
|
* Default: 0
|
|
*
|
|
* This ini is used to disable reg channels for coex unsafe chan
|
|
* event
|
|
* Usage: External
|
|
*
|
|
* </ini>
|
|
*/
|
|
#define CFG_COEX_UNSAFE_CHAN_REG_DISABLE CFG_INI_BOOL( \
|
|
"coex_unsafe_chan_reg_disable", \
|
|
0, \
|
|
"Disable reg channels for coex unsafe chan event")
|
|
|
|
#define CFG_COEX_UNSAFE_CHAN_ALL \
|
|
CFG(CFG_COEX_UNSAFE_CHAN_NB_USER_PREFER) \
|
|
CFG(CFG_COEX_UNSAFE_CHAN_REG_DISABLE)
|
|
#else
|
|
#define CFG_COEX_UNSAFE_CHAN_ALL
|
|
#endif
|
|
|
|
#define CFG_REG_ALL \
|
|
CFG_COEX_UNSAFE_CHAN_ALL \
|
|
CFG(CFG_SELF_GEN_FRM_PWR) \
|
|
CFG(CFG_ENABLE_PENDING_CHAN_LIST_REQ) \
|
|
CFG(CFG_ENABLE_11D_IN_WORLD_MODE) \
|
|
CFG(CFG_ETSI_SRD_CHAN_IN_MASTER_MODE) \
|
|
CFG(CFG_INDOOR_CHANNEL_SUPPORT_FOR_NAN) \
|
|
CFG(CFG_FCC_5DOT9_GHZ_CHAN_IN_MASTER_MODE) \
|
|
CFG(CFG_RESTART_BEACONING_ON_CH_AVOID) \
|
|
CFG(CFG_INDOOR_CHANNEL_SUPPORT) \
|
|
CFG(CFG_SCAN_11D_INTERVAL) \
|
|
CFG(CFG_IGNORE_FW_REG_OFFLOAD_IND) \
|
|
CFG_AFC_REG_ALL \
|
|
CFG(CFG_RETAIN_NOL_ACROSS_REG_DOMAIN) \
|
|
CFG_SAP_AVOID_ACS_FREQ_LIST_ALL
|
|
|
|
#endif /* CFG_MLME_REG_H__ */
|