qcacmn: Move dfs leakage from qcacld to qcacmn

Move dfs leakage from qcacld to dfs module of qcacmn.

Change-Id: I17276fedf575f1a4029265be58d8fd088c1d956d
CRs-Fixed: 2177679
This commit is contained in:
bings
2018-01-23 16:20:29 +08:00
committed by snandini
parent 9f8a064726
commit 0c590ceba4
7 changed files with 997 additions and 4 deletions

View File

@@ -158,6 +158,18 @@ QDF_STATUS tgt_dfs_destroy_object(struct wlan_objmgr_pdev *pdev);
QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
int no_cac, uint32_t opmode);
#ifdef QCA_MCL_DFS_SUPPORT
/**
* tgt_dfs_set_tx_leakage_threshold() - set tx_leakage_threshold.
* @pdev: Pointer to DFS pdev object.
* @tx_leakage_threshold: tx leakage threshold for dfs.
*
* Return QDF_STATUS.
*/
QDF_STATUS tgt_dfs_set_tx_leakage_threshold(struct wlan_objmgr_pdev *pdev,
uint16_t tx_leakage_threshold);
#endif
/**
* tgt_dfs_control()- Used to process ioctls related to DFS.
* @pdev: Pointer to DFS pdev object.

View File

@@ -416,6 +416,26 @@ QDF_STATUS utils_dfs_update_cur_chan_flags(struct wlan_objmgr_pdev *pdev,
uint64_t flags,
uint16_t flagext);
#ifdef QCA_MCL_DFS_SUPPORT
/**
* utils_dfs_mark_leaking_ch() - to mark channel leaking in to nol
* @pdev: Pointer to pdev structure.
* @ch_width: channel width
* @temp_ch_lst_sz: the target channel list
* @temp_ch_lst: the target channel list
*
* This function removes the channels from temp channel list that
* (if selected as target channel) will cause leakage in one of
* the NOL channels
*
* Return: QDF_STATUS
*/
QDF_STATUS utils_dfs_mark_leaking_ch(struct wlan_objmgr_pdev *pdev,
enum phy_ch_width ch_width,
uint8_t temp_ch_lst_sz,
uint8_t *temp_ch_lst);
#endif
/**
* utils_get_dfsdomain() - Get DFS domain.
* @pdev: Pointer to PDEV structure.

View File

@@ -223,6 +223,25 @@ QDF_STATUS tgt_dfs_destroy_object(struct wlan_objmgr_pdev *pdev)
}
EXPORT_SYMBOL(tgt_dfs_destroy_object);
#ifdef QCA_MCL_DFS_SUPPORT
QDF_STATUS tgt_dfs_set_tx_leakage_threshold(struct wlan_objmgr_pdev *pdev,
uint16_t tx_leakage_threshold)
{
struct wlan_dfs *dfs;
dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev);
if (!dfs) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "dfs is NULL");
return QDF_STATUS_E_FAILURE;
}
dfs->tx_leakage_threshold = tx_leakage_threshold;
return QDF_STATUS_SUCCESS;
}
EXPORT_SYMBOL(tgt_dfs_set_tx_leakage_threshold);
#endif
QDF_STATUS tgt_dfs_control(struct wlan_objmgr_pdev *pdev,
u_int id,
void *indata,

View File

@@ -852,6 +852,25 @@ uint32_t utils_dfs_chan_to_freq(uint8_t chan)
}
EXPORT_SYMBOL(utils_dfs_chan_to_freq);
#ifdef QCA_MCL_DFS_SUPPORT
QDF_STATUS utils_dfs_mark_leaking_ch(struct wlan_objmgr_pdev *pdev,
enum phy_ch_width ch_width,
uint8_t temp_ch_lst_sz,
uint8_t *temp_ch_lst)
{
struct wlan_dfs *dfs = NULL;
dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev);
if (!dfs) {
dfs_err(dfs, WLAN_DEBUG_DFS_ALWAYS, "null dfs");
return QDF_STATUS_E_FAILURE;
}
return dfs_mark_leaking_ch(dfs, ch_width, temp_ch_lst_sz, temp_ch_lst);
}
EXPORT_SYMBOL(utils_dfs_mark_leaking_ch);
#endif
int utils_get_dfsdomain(struct wlan_objmgr_pdev *pdev)
{
enum dfs_reg dfsdomain;