qcacld-3.0: Add ini to retain the NOL across reg domain change

Currently driver sets the NOL state of the channels to false
on every regulatory updated, which indicates the channel is
not in NOL. Which may lead to some issues where the channel
is actually in NOL but host treats it as non-NOL channel.

Ideally NOL list should be maintained throughout the driver
lifetime and across the regulatory changes.

To address this issue add a logic to not update the NOL state
of the channels whenever the regulatory update is received.

CRs-Fixed: 2744916
Change-Id: If96b22ab29a60a2aa752bbf01aaae46fc37362eb
这个提交包含在:
Ashish Kumar Dhanotiya
2020-07-30 18:46:41 +05:30
提交者 snandini
父节点 9ea15e9db6
当前提交 e20db7ae44
修改 6 个文件,包含 58 行新增0 行删除

查看文件

@@ -296,6 +296,29 @@
0, \
"Enable Pending list req")
/*
* <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")
#define CFG_REG_ALL \
CFG(CFG_SELF_GEN_FRM_PWR) \
CFG(CFG_ENABLE_PENDING_CHAN_LIST_REQ) \
@@ -307,6 +330,7 @@
CFG(CFG_SCAN_11D_INTERVAL) \
CFG(CFG_VALID_CHANNEL_LIST) \
CFG(CFG_IGNORE_FW_REG_OFFLOAD_IND) \
CFG(CFG_RETAIN_NOL_ACROSS_REG_DOMAIN) \
CFG_SAP_AVOID_ACS_FREQ_LIST_ALL
#endif /* CFG_MLME_REG_H__ */

查看文件

@@ -2152,6 +2152,7 @@ struct wlan_mlme_mwc {
* @ignore_fw_reg_offload_ind: Ignore fw regulatory offload indication
* @enable_pending_chan_list_req: enables/disables scan channel
* list command to FW till the current scan is complete.
* @retain_nol_across_regdmn_update: Retain the NOL list across the regdomain.
*/
struct wlan_mlme_reg {
uint32_t self_gen_frm_pwr;
@@ -2170,6 +2171,7 @@ struct wlan_mlme_reg {
#endif
bool ignore_fw_reg_offload_ind;
bool enable_pending_chan_list_req;
bool retain_nol_across_regdmn_update;
};
/**

查看文件

@@ -3854,6 +3854,17 @@ QDF_STATUS
ucfg_mlme_get_scan_11d_interval(struct wlan_objmgr_psoc *psoc,
uint32_t *value);
/**
* ucfg_mlme_get_nol_across_regdmn() - get scan 11d interval
* @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_nol_across_regdmn(struct wlan_objmgr_psoc *psoc, bool *value);
/**
* ucfg_mlme_get_valid_channel_freq_list() - get valid channel
* list