qcacmn: Separate GET APIs for precac and agile precac flags

Currently a single API(dfs_get_precac_enable) is used to get
dfs_precac_enable and dfs_agile_precac_enable. This API is
wrongly returning value for dfs_precac_enable since agile
capability is set even for Cascade.

Separate out the GET APIs for getting dfs_precac_enable and
dfs_agile_precac_enable so that getting these flags becomes
independent of each other.

Change-Id: I08b0cbcd29c320a345865e3e9456ce3e809e26a6
CRs-fixed: 2501266
这个提交包含在:
Shreedhar Parande
2019-08-02 14:56:37 +05:30
提交者 nshrivas
父节点 fc54cc76a4
当前提交 45d12fa2de
修改 5 个文件,包含 59 行新增0 行删除

查看文件

@@ -540,6 +540,21 @@ static inline uint32_t dfs_get_precac_enable(struct wlan_dfs *dfs)
}
#endif
/**
* dfs_get_agile_precac_enable() - Get agile precac enable flag.
* @dfs: Pointer to wlan_dfs structure.
*
* Return: Value of flag dfs_agile_precac_enable
*/
#ifdef QCA_SUPPORT_AGILE_DFS
bool dfs_get_agile_precac_enable(struct wlan_dfs *dfs);
#else
static inline bool dfs_get_agile_precac_enable(struct wlan_dfs *dfs)
{
return false;
}
#endif
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
/**
* dfs_set_precac_intermediate_chan() - Set intermediate chan to be used while

查看文件

@@ -258,6 +258,21 @@ QDF_STATUS ucfg_dfs_set_precac_enable(struct wlan_objmgr_pdev *pdev,
*/
QDF_STATUS ucfg_dfs_get_precac_enable(struct wlan_objmgr_pdev *pdev, int *buff);
/**
* ucfg_dfs_get_agile_precac_enable() - Get agile precac enable flag.
* @pdev: Pointer to DFS pdev object.
* @buff: Pointer to save dfs_agile_precac_enable value.
*
* Wrapper function for dfs_get_agile_precac_enable().
* This function called from outside of dfs component.
*
* Return:
* * QDF_STATUS_SUCCESS: Successfully able to get agile precac flag.
* * QDF_STATUS_E_FAILURE: Failed to get agile precac flag.
*/
QDF_STATUS ucfg_dfs_get_agile_precac_enable(struct wlan_objmgr_pdev *pdev,
bool *buff);
#ifdef WLAN_DFS_PRECAC_AUTO_CHAN_SUPPORT
/**
* ucfg_dfs_set_precac_intermediate_chan() - Set intermediate channel

查看文件

@@ -159,6 +159,32 @@ QDF_STATUS ucfg_dfs_get_precac_enable(struct wlan_objmgr_pdev *pdev,
}
qdf_export_symbol(ucfg_dfs_get_precac_enable);
QDF_STATUS ucfg_dfs_get_agile_precac_enable(struct wlan_objmgr_pdev *pdev,
bool *buff)
{
struct wlan_dfs *dfs;
if (!pdev || !buff)
return QDF_STATUS_E_FAILURE;
if (!tgt_dfs_is_pdev_5ghz(pdev)) {
*buff = false;
return QDF_STATUS_SUCCESS;
}
dfs = wlan_pdev_get_dfs_obj(pdev);
if (!dfs) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "null dfs");
return QDF_STATUS_E_FAILURE;
}
*buff = dfs_get_agile_precac_enable(dfs);
return QDF_STATUS_SUCCESS;
}
qdf_export_symbol(ucfg_dfs_get_agile_precac_enable);
QDF_STATUS
ucfg_dfs_set_nol_subchannel_marking(struct wlan_objmgr_pdev *pdev,
bool nol_subchannel_marking)