1
0

qcacmn: Add DFS master feature flag

Add config flag to enable / disable DFS master feature

Change-Id: Iddd82dd5f117a4d75fda161f5a531aa7eab25016
CRs-Fixed: 2222557
Este cometimento está contido em:
Wen Gong
2018-04-11 17:59:03 +08:00
cometido por nshrivas
ascendente cfb14523ad
cometimento 67d105d445
5 ficheiros modificados com 136 adições e 58 eliminações

Ver ficheiro

@@ -78,6 +78,7 @@ extern struct dfs_to_mlme global_dfs_to_mlme;
* @dfs_ch_vhtop_ch_freq_seg1: Channel Center frequency1.
* @dfs_ch_vhtop_ch_freq_seg2: Channel Center frequency2.
*/
#ifdef DFS_COMPONENT_ENABLE
QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
uint16_t dfs_ch_freq,
uint64_t dfs_ch_flags,
@@ -86,6 +87,34 @@ QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
uint8_t dfs_ch_vhtop_ch_freq_seg1,
uint8_t dfs_ch_vhtop_ch_freq_seg2);
/**
* tgt_dfs_radar_enable() - Enables the radar.
* @pdev: Pointer to DFS pdev object.
* @no_cac: If no_cac is 0, it cancels the CAC.
*
* This is called each time a channel change occurs, to (potentially) enable
* the radar code.
*/
QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
int no_cac, uint32_t opmode);
/**
* tgt_dfs_control()- Used to process ioctls related to DFS.
* @pdev: Pointer to DFS pdev object.
* @id: Command type.
* @indata: Input buffer.
* @insize: size of the input buffer.
* @outdata: A buffer for the results.
* @outsize: Size of the output buffer.
*/
QDF_STATUS tgt_dfs_control(struct wlan_objmgr_pdev *pdev,
u_int id,
void *indata,
uint32_t insize,
void *outdata,
uint32_t *outsize,
int *error);
/**
* tgt_dfs_get_radars() - Based on the chipset, calls init radar table functions
* @pdev: Pointer to DFS pdev object.
@@ -95,6 +124,60 @@ QDF_STATUS tgt_dfs_set_current_channel(struct wlan_objmgr_pdev *pdev,
*/
QDF_STATUS tgt_dfs_get_radars(struct wlan_objmgr_pdev *pdev);
/**
* tgt_dfs_process_radar_ind() - Process radar found indication.
* @pdev: Pointer to DFS pdev object.
* @radar_found: radar found info.
*
* Process radar found indication.
*
* Return QDF_STATUS.
*/
QDF_STATUS tgt_dfs_process_radar_ind(struct wlan_objmgr_pdev *pdev,
struct radar_found_info *radar_found);
#else
static inline QDF_STATUS tgt_dfs_set_current_channel(
struct wlan_objmgr_pdev *pdev,
uint16_t dfs_ch_freq,
uint64_t dfs_ch_flags,
uint16_t dfs_ch_flagext,
uint8_t dfs_ch_ieee,
uint8_t dfs_ch_vhtop_ch_freq_seg1,
uint8_t dfs_ch_vhtop_ch_freq_seg2)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
int no_cac, uint32_t opmode)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS tgt_dfs_control(struct wlan_objmgr_pdev *pdev,
u_int id,
void *indata,
uint32_t insize,
void *outdata,
uint32_t *outsize,
int *error)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS tgt_dfs_get_radars(struct wlan_objmgr_pdev *pdev)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS tgt_dfs_process_radar_ind(
struct wlan_objmgr_pdev *pdev,
struct radar_found_info *radar_found)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* tgt_dfs_process_phyerr() - Process phyerr.
* @pdev: Pointer to DFS pdev object.
@@ -147,17 +230,6 @@ QDF_STATUS tgt_dfs_is_phyerr_filter_offload(struct wlan_objmgr_psoc *psoc,
*/
QDF_STATUS tgt_dfs_destroy_object(struct wlan_objmgr_pdev *pdev);
/**
* tgt_dfs_radar_enable() - Enables the radar.
* @pdev: Pointer to DFS pdev object.
* @no_cac: If no_cac is 0, it cancels the CAC.
*
* This is called each time a channel change occurs, to (potentially) enable
* the radar code.
*/
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.
@@ -168,25 +240,15 @@ QDF_STATUS tgt_dfs_radar_enable(struct wlan_objmgr_pdev *pdev,
*/
QDF_STATUS tgt_dfs_set_tx_leakage_threshold(struct wlan_objmgr_pdev *pdev,
uint16_t tx_leakage_threshold);
#else
static inline QDF_STATUS tgt_dfs_set_tx_leakage_threshold
(struct wlan_objmgr_pdev *pdev,
uint16_t tx_leakage_threshold)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* tgt_dfs_control()- Used to process ioctls related to DFS.
* @pdev: Pointer to DFS pdev object.
* @id: Command type.
* @indata: Input buffer.
* @insize: size of the input buffer.
* @outdata: A buffer for the results.
* @outsize: Size of the output buffer.
*/
QDF_STATUS tgt_dfs_control(struct wlan_objmgr_pdev *pdev,
u_int id,
void *indata,
uint32_t insize,
void *outdata,
uint32_t *outsize,
int *error);
/**
* tgt_dfs_is_precac_timer_running() - Check whether precac timer is running.
* @pdev: Pointer to DFS pdev object.
@@ -221,18 +283,6 @@ QDF_STATUS tgt_dfs_find_vht80_chan_for_precac(struct wlan_objmgr_pdev *pdev,
bool *dfs_set_cfreq2,
bool *set_agile);
/**
* tgt_dfs_process_radar_ind() - Process radar found indication.
* @pdev: Pointer to DFS pdev object.
* @radar_found: radar found info.
*
* Process radar found indication.
*
* Return QDF_STATUS.
*/
QDF_STATUS tgt_dfs_process_radar_ind(struct wlan_objmgr_pdev *pdev,
struct radar_found_info *radar_found);
/**
* tgt_dfs_cac_complete() - Process cac complete indication.
* @pdev: Pointer to DFS pdev object.
@@ -283,6 +333,12 @@ QDF_STATUS tgt_dfs_process_emulate_bang_radar_cmd(struct wlan_objmgr_pdev *pdev,
* Return: QDF_STATUS
*/
QDF_STATUS tgt_dfs_set_phyerr_filter_offload(struct wlan_objmgr_pdev *pdev);
#else
static inline QDF_STATUS tgt_dfs_set_phyerr_filter_offload
(struct wlan_objmgr_pdev *pdev)
{
return QDF_STATUS_SUCCESS;
}
#endif
#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST)

Ver ficheiro

@@ -251,6 +251,12 @@ QDF_STATUS ucfg_dfs_get_precac_enable(struct wlan_objmgr_pdev *pdev, int *buff);
*/
QDF_STATUS ucfg_dfs_update_config(struct wlan_objmgr_psoc *psoc,
struct dfs_user_config *req);
#else
static inline QDF_STATUS ucfg_dfs_update_config(struct wlan_objmgr_psoc *psoc,
struct dfs_user_config *req)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**

Ver ficheiro

@@ -331,8 +331,13 @@ QDF_STATUS utils_dfs_get_random_channel(struct wlan_objmgr_pdev *pdev,
*
* Return: None
*/
#ifdef QCA_DFS_NOL_PLATFORM_DRV_SUPPORT
void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev);
#else
static inline void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev)
{
}
#endif
/**
* utils_dfs_save_nol() - save nol list to platform driver.
* @pdev: pdev handler.
@@ -351,7 +356,13 @@ void utils_dfs_save_nol(struct wlan_objmgr_pdev *pdev);
*
* Return: None
*/
#ifdef DFS_COMPONENT_ENABLE
void utils_dfs_print_nol_channels(struct wlan_objmgr_pdev *pdev);
#else
static inline void utils_dfs_print_nol_channels(struct wlan_objmgr_pdev *pdev)
{
}
#endif
/**
* utils_dfs_clear_nol_channels() - clear nol list.
@@ -371,8 +382,10 @@ void utils_dfs_clear_nol_channels(struct wlan_objmgr_pdev *pdev);
*
* Return: True if channel dfs, else false.
*/
bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan);
static inline bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan)
{
return wlan_reg_is_dfs_ch(pdev, chan);
}
/**
* utils_dfs_reg_update_nol_ch() - set nol channel
*
@@ -402,8 +415,14 @@ uint8_t utils_dfs_freq_to_chan(uint32_t freq);
*
* Return: frequency
*/
#ifdef DFS_COMPONENT_ENABLE
uint32_t utils_dfs_chan_to_freq(uint8_t chan);
#else
static inline uint32_t utils_dfs_chan_to_freq(uint8_t chan)
{
return 0;
}
#endif
/**
* utils_dfs_update_cur_chan_flags() - Update DFS channel flag and flagext.
* @pdev: Pointer to DFS pdev object.
@@ -434,8 +453,16 @@ 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);
#else
static inline 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)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* utils_get_dfsdomain() - Get DFS domain.
* @pdev: Pointer to PDEV structure.

Ver ficheiro

@@ -670,11 +670,7 @@ random_chan_error:
}
qdf_export_symbol(utils_dfs_get_random_channel);
#ifndef QCA_DFS_NOL_PLATFORM_DRV_SUPPORT
void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev)
{
}
#else
#ifdef QCA_DFS_NOL_PLATFORM_DRV_SUPPORT
void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev)
{
struct wlan_dfs *dfs;
@@ -797,12 +793,6 @@ void utils_dfs_clear_nol_channels(struct wlan_objmgr_pdev *pdev)
}
qdf_export_symbol(utils_dfs_clear_nol_channels);
bool utils_is_dfs_ch(struct wlan_objmgr_pdev *pdev, uint32_t chan)
{
return wlan_reg_is_dfs_ch(pdev, chan);
}
qdf_export_symbol(utils_is_dfs_ch);
void utils_dfs_reg_update_nol_ch(struct wlan_objmgr_pdev *pdev,
uint8_t *ch_list,
uint8_t num_ch,

Ver ficheiro

@@ -1474,7 +1474,6 @@ QDF_STATUS (*extract_rcpi_response_event)(wmi_unified_t wmi_handle,
void *evt_buf,
struct rcpi_res *res);
#ifdef DFS_COMPONENT_ENABLE
QDF_STATUS (*extract_dfs_cac_complete_event)(wmi_unified_t wmi_handle,
uint8_t *evt_buf,
uint32_t *vdev_id,
@@ -1487,7 +1486,7 @@ QDF_STATUS (*extract_wlan_radar_event_info)(wmi_unified_t wmi_handle,
uint8_t *evt_buf,
struct radar_event_info *wlan_radar_event,
uint32_t len);
#endif
QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
struct set_country *param);