qcacmn: Add APIs to enable/disable BW Reduction
Add functions to enable/disable BW-Agile DFS Reduction Change-Id: I1cc355f06a2027b229ca2001671ddb69c7cff4e6 CRs-Fixed: 2302983
This commit is contained in:
@@ -1158,7 +1158,7 @@ struct wlan_dfs {
|
||||
int32_t dfs_max_sidx;
|
||||
uint8_t dfs_seg_id;
|
||||
uint8_t dfs_is_chirp;
|
||||
uint8_t dfs_bw_reduced;
|
||||
bool dfs_bw_reduced;
|
||||
int32_t dfs_freq_offset;
|
||||
bool dfs_cac_aborted;
|
||||
qdf_spinlock_t dfs_data_struct_lock;
|
||||
|
@@ -748,8 +748,11 @@ QDF_STATUS dfs_process_radar_ind(struct wlan_dfs *dfs,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (dfs->dfs_use_nol_subchannel_marking &&
|
||||
!(dfs->dfs_bangradar || dfs->dfs_second_segment_bangradar))
|
||||
/* BW reduction is dependent on subchannel marking */
|
||||
|
||||
if ((dfs->dfs_use_nol_subchannel_marking ||
|
||||
(dfs->dfs_use_nol_subchannel_marking && dfs->dfs_bw_reduced)) &&
|
||||
!(dfs->dfs_bangradar || dfs->dfs_second_segment_bangradar))
|
||||
num_channels = dfs_find_radar_affected_subchans(dfs,
|
||||
radar_found,
|
||||
channels,
|
||||
|
@@ -369,6 +369,25 @@ bool utils_dfs_process_nol_ie_bitmap(struct wlan_objmgr_pdev *pdev,
|
||||
uint16_t nol_ie_startfreq,
|
||||
uint8_t nol_ie_bitmap);
|
||||
|
||||
/**
|
||||
* utils_dfs_bw_reduce() - Set bw reduce.
|
||||
* @pdev: Pointer to DFS pdev object.
|
||||
* @bw_reduce: Fill bw_reduce value in this variable.
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS utils_dfs_bw_reduce(struct wlan_objmgr_pdev *pdev,
|
||||
bool bw_reduce);
|
||||
|
||||
/**
|
||||
* utils_dfs_is_bw_reduce() - Get bw reduce.
|
||||
* @pdev: Pointer to DFS pdev object.
|
||||
* @bw_reduce: Pointer to get bw_reduce value.
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS utils_dfs_is_bw_reduce(struct wlan_objmgr_pdev *pdev,
|
||||
bool *bw_reduce);
|
||||
/**
|
||||
* utils_dfs_set_cac_timer_running() - Sets the cac timer running.
|
||||
* @pdev: Pointer to DFS pdev object.
|
||||
@@ -413,7 +432,6 @@ QDF_STATUS utils_dfs_get_random_channel(struct wlan_objmgr_pdev *pdev,
|
||||
/**
|
||||
* utils_dfs_bw_reduced_channel() - Get BW reduced channel.
|
||||
* @pdev: Pointer to DFS pdev object.
|
||||
* @flags: Reduced bandwidth channel flags.
|
||||
* @ch_params: current channel params.
|
||||
* @hw_mode: current operating mode.
|
||||
* @target_chan: Pointer to target_chan.
|
||||
@@ -424,7 +442,6 @@ QDF_STATUS utils_dfs_get_random_channel(struct wlan_objmgr_pdev *pdev,
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS utils_dfs_bw_reduced_channel(struct wlan_objmgr_pdev *pdev,
|
||||
uint16_t flags,
|
||||
struct ch_params *ch_params,
|
||||
uint32_t *hw_mode,
|
||||
uint8_t *target_chan);
|
||||
|
@@ -399,6 +399,35 @@ QDF_STATUS utils_dfs_second_segment_radar_disable(struct wlan_objmgr_pdev *pdev)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS utils_dfs_bw_reduce(struct wlan_objmgr_pdev *pdev, bool bw_reduce)
|
||||
{
|
||||
struct wlan_dfs *dfs;
|
||||
|
||||
dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev);
|
||||
if (!dfs)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
dfs->dfs_bw_reduced = bw_reduce;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
qdf_export_symbol(utils_dfs_bw_reduce);
|
||||
|
||||
QDF_STATUS utils_dfs_is_bw_reduce(struct wlan_objmgr_pdev *pdev,
|
||||
bool *bw_reduce)
|
||||
{
|
||||
struct wlan_dfs *dfs;
|
||||
|
||||
dfs = global_dfs_to_mlme.pdev_get_comp_private_obj(pdev);
|
||||
if (!dfs)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
*bw_reduce = dfs->dfs_bw_reduced;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS utils_dfs_fetch_nol_ie_info(struct wlan_objmgr_pdev *pdev,
|
||||
uint8_t *nol_ie_bandwidth,
|
||||
uint16_t *nol_ie_startfreq,
|
||||
@@ -828,7 +857,6 @@ qdf_export_symbol(utils_dfs_get_random_channel);
|
||||
|
||||
QDF_STATUS utils_dfs_bw_reduced_channel(
|
||||
struct wlan_objmgr_pdev *pdev,
|
||||
uint16_t flags,
|
||||
struct ch_params *ch_params,
|
||||
uint32_t *hw_mode,
|
||||
uint8_t *target_chan)
|
||||
@@ -859,7 +887,6 @@ QDF_STATUS utils_dfs_bw_reduced_channel(
|
||||
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg1;
|
||||
ch_params->center_freq_seg1 =
|
||||
dfs->dfs_curchan->dfs_ch_vhtop_ch_freq_seg2;
|
||||
dfs->dfs_bw_reduced = 1;
|
||||
wlan_reg_set_channel_params(pdev,
|
||||
dfs->dfs_curchan->dfs_ch_ieee,
|
||||
0, ch_params);
|
||||
@@ -873,6 +900,8 @@ QDF_STATUS utils_dfs_bw_reduced_channel(
|
||||
return status;
|
||||
}
|
||||
|
||||
qdf_export_symbol(utils_dfs_bw_reduced_channel);
|
||||
|
||||
#ifdef QCA_DFS_NOL_PLATFORM_DRV_SUPPORT
|
||||
void utils_dfs_init_nol(struct wlan_objmgr_pdev *pdev)
|
||||
{
|
||||
|
مرجع در شماره جدید
Block a user