qcacld-3.0: Add static cfg items and APIs for AFC feature

Add 4 static cfg items for AFC feature:
CFG_AFC_REG_NO_ACTION, CFG_6GHZ_SP_POWER_MODE_SUPP,
CFG_AFC_TIMER_CHECK_DIS, CFG_AFC_REQ_ID_CHECK_DIS.

Add APIs to pass these settings to psoc private of regulatory
component.

Change-Id: I61114fb7bf7d84f939265629bde78813b6295e39
CRs-Fixed: 3153987
这个提交包含在:
Will Huang
2021-12-17 13:04:10 +08:00
提交者 Madan Koyyalamudi
父节点 c648b4bd1d
当前提交 58ce19c7e0
修改 6 个文件,包含 273 行新增0 行删除

查看文件

@@ -311,6 +311,84 @@
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: 1
*
* 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_BOOL( \
"enable_6ghz_sp_pwrmode_supp", true, \
"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
@@ -392,6 +470,7 @@
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

查看文件

@@ -2537,6 +2537,10 @@ enum mlme_reg_srd_master_modes {
* list command to FW till the current scan is complete.
* @retain_nol_across_regdmn_update: Retain the NOL list across the regdomain.
* @enable_nan_on_indoor_channels: Enable nan on Indoor channels
* @enable_6ghz_sp_pwrmode_supp: Enable 6 GHz SP mode support
* @afc_disable_timer_check: Disable AFC timer check
* @afc_disable_request_id_check: Disable AFC request id check
* @is_afc_reg_noaction: Whether no action to AFC power event
* @coex_unsafe_chan_nb_user_prefer: Honor coex unsafe freq event from firmware
* or not
* @coex_unsafe_chan_reg_disable: To disable reg channels for received coex
@@ -2561,6 +2565,12 @@ struct wlan_mlme_reg {
bool enable_pending_chan_list_req;
bool retain_nol_across_regdmn_update;
bool enable_nan_on_indoor_channels;
#if defined(CONFIG_AFC_SUPPORT) && defined(CONFIG_BAND_6GHZ)
bool enable_6ghz_sp_pwrmode_supp;
bool afc_disable_timer_check;
bool afc_disable_request_id_check;
bool is_afc_reg_noaction;
#endif
#ifdef FEATURE_WLAN_CH_AVOID_EXT
bool coex_unsafe_chan_nb_user_prefer;
bool coex_unsafe_chan_reg_disable;

查看文件

@@ -4763,6 +4763,77 @@ ucfg_mlme_get_vdev_max_mcs_idx(struct wlan_objmgr_vdev *vdev)
}
#endif /* WLAN_FEATURE_SON */
#if defined(CONFIG_AFC_SUPPORT) && defined(CONFIG_BAND_6GHZ)
/**
* ucfg_mlme_get_enable_6ghz_sp_mode_support() - Get 6 GHz SP mode support cfg
* @psoc: pointer to psoc object
* @value: value to be set
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_enable_6ghz_sp_mode_support(struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* ucfg_mlme_get_afc_disable_timer_check() - Get AFC timer check cfg
* @psoc: pointer to psoc object
* @value: value to be set
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_afc_disable_timer_check(struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* ucfg_mlme_get_afc_disable_request_id_check() - Get AFC request id check cfg
* @psoc: pointer to psoc object
* @value: value to be set
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_afc_disable_request_id_check(struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* ucfg_mlme_get_afc_reg_noaction() - Get AFC no action cfg
* @psoc: pointer to psoc object
* @value: value to be set
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_afc_reg_noaction(struct wlan_objmgr_psoc *psoc, bool *value);
#else
static inline QDF_STATUS
ucfg_mlme_get_enable_6ghz_sp_mode_support(struct wlan_objmgr_psoc *psoc,
bool *value)
{
return QDF_STATUS_E_NOSUPPORT;
}
static inline QDF_STATUS
ucfg_mlme_get_afc_disable_timer_check(struct wlan_objmgr_psoc *psoc,
bool *value)
{
return QDF_STATUS_E_NOSUPPORT;
}
static inline QDF_STATUS
ucfg_mlme_get_afc_disable_request_id_check(struct wlan_objmgr_psoc *psoc,
bool *value)
{
return QDF_STATUS_E_NOSUPPORT;
}
static inline QDF_STATUS
ucfg_mlme_get_afc_reg_noaction(struct wlan_objmgr_psoc *psoc, bool *value)
{
return QDF_STATUS_E_NOSUPPORT;
}
#endif
#ifdef CONNECTION_ROAMING_CFG
/**
* ucfg_mlme_set_connection_roaming_ini_present() - Set connection roaming ini