qcacmn: Add support to configure 165MHz Agile channel
The FW has updated the wmi command wmi_vdev_adfs_ch_cfg_cmd_fixed_param to configure the Agile channel to enable the 165MHz channel as an Agile channel by enabling 2 center frequencies. For a 160MHz and 80MHz channel, the parameter center_freq1 will be the center of the respective channels. For the 165MHz channel(restricted 80p80) the parameter center_freq1 will be the center of the left 80MHz channel (5690MHz) and the parameter center_freq2 will be the center of the right 80MHz channel (5775MHz).. Update the ADFS parameters across UMAC, TARGET_IF and WMI layes to update the Agile channel configuration command. Change-Id: Ie480af9a6bb8dad87dd783ab06e17b449605b1c9 CRs-Fixed: 2642555
This commit is contained in:
@@ -375,9 +375,10 @@ QDF_STATUS target_send_agile_ch_cfg_cmd(struct wlan_objmgr_pdev *pdev,
|
|||||||
param.ocac_mode = QUICK_OCAC_MODE;
|
param.ocac_mode = QUICK_OCAC_MODE;
|
||||||
param.min_duration_ms = adfs_param->min_precac_timeout;
|
param.min_duration_ms = adfs_param->min_precac_timeout;
|
||||||
param.max_duration_ms = adfs_param->max_precac_timeout;
|
param.max_duration_ms = adfs_param->max_precac_timeout;
|
||||||
param.chan_freq = adfs_param->precac_chan;
|
param.chan_freq = adfs_param->precac_center_freq_1;
|
||||||
param.chan_width = adfs_param->precac_chwidth;
|
param.chan_width = adfs_param->precac_chwidth;
|
||||||
param.center_freq = adfs_param->precac_chan;
|
param.center_freq1 = adfs_param->precac_center_freq_1;
|
||||||
|
param.center_freq2 = adfs_param->precac_center_freq_2;
|
||||||
|
|
||||||
status = wmi_unified_send_vdev_adfs_ch_cfg_cmd(wmi_handle, ¶m);
|
status = wmi_unified_send_vdev_adfs_ch_cfg_cmd(wmi_handle, ¶m);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -128,14 +128,20 @@ struct dfs_radar_found_params {
|
|||||||
/**
|
/**
|
||||||
* struct dfs_agile_cac_params - Agile DFS-CAC parameters.
|
* struct dfs_agile_cac_params - Agile DFS-CAC parameters.
|
||||||
* @precac_chan: Agile preCAC channel.
|
* @precac_chan: Agile preCAC channel.
|
||||||
* @precac_chan_freq: Agile preCAC channel frequency in MHZ.
|
* @precac_center_freq_1: Agile preCAC channel frequency in MHz for 20/40/80/
|
||||||
|
* 160 and left center frequency(5690MHz) for restricted
|
||||||
|
* 80p80.
|
||||||
|
* @precac_center_freq_2: Second segment Agile frequency if applicable. 0 for
|
||||||
|
* 20/40/80/160 and right center frequency(5775MHz) for
|
||||||
|
* restricted 80p80.
|
||||||
* @precac_chwidth: Agile preCAC channel width.
|
* @precac_chwidth: Agile preCAC channel width.
|
||||||
* @min_precac_timeout: Minimum agile preCAC timeout.
|
* @min_precac_timeout: Minimum agile preCAC timeout.
|
||||||
* @max_precac_timeout: Maximum agile preCAC timeout.
|
* @max_precac_timeout: Maximum agile preCAC timeout.
|
||||||
*/
|
*/
|
||||||
struct dfs_agile_cac_params {
|
struct dfs_agile_cac_params {
|
||||||
uint8_t precac_chan;
|
uint8_t precac_chan;
|
||||||
uint16_t precac_chan_freq;
|
uint16_t precac_center_freq_1;
|
||||||
|
uint16_t precac_center_freq_2;
|
||||||
enum phy_ch_width precac_chwidth;
|
enum phy_ch_width precac_chwidth;
|
||||||
uint32_t min_precac_timeout;
|
uint32_t min_precac_timeout;
|
||||||
uint32_t max_precac_timeout;
|
uint32_t max_precac_timeout;
|
||||||
|
@@ -1125,7 +1125,11 @@ struct scan_chan_list_params {
|
|||||||
* @max_duration_ms: Maximum Off channel CAC duration
|
* @max_duration_ms: Maximum Off channel CAC duration
|
||||||
* @chan_freq: channel number of precac channel
|
* @chan_freq: channel number of precac channel
|
||||||
* @chan_width: Precac Channel width
|
* @chan_width: Precac Channel width
|
||||||
* @center_freq: Center frequency of precac channel
|
* @center_freq1: Agile preCAC channel frequency in MHz for 20/40/80/160
|
||||||
|
* and left center frequency(5690MHz) for restricted 80p80.
|
||||||
|
* @center_freq2: Second segment Agile frequency if applicable. 0 for
|
||||||
|
* 20/40/80/160 and right center frequency(5775MHz) for
|
||||||
|
* restricted 80p80.
|
||||||
*/
|
*/
|
||||||
struct vdev_adfs_ch_cfg_params {
|
struct vdev_adfs_ch_cfg_params {
|
||||||
uint32_t vdev_id;
|
uint32_t vdev_id;
|
||||||
@@ -1134,7 +1138,8 @@ struct vdev_adfs_ch_cfg_params {
|
|||||||
uint32_t max_duration_ms;
|
uint32_t max_duration_ms;
|
||||||
uint32_t chan_freq;
|
uint32_t chan_freq;
|
||||||
uint32_t chan_width;
|
uint32_t chan_width;
|
||||||
uint32_t center_freq; /* in MHz */
|
uint32_t center_freq1; /* in MHz */
|
||||||
|
uint32_t center_freq2; /* in MHz */
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -8067,7 +8067,8 @@ QDF_STATUS send_adfs_ch_cfg_cmd_tlv(wmi_unified_t wmi_handle,
|
|||||||
|
|
||||||
cmd->vdev_id = param->vdev_id;
|
cmd->vdev_id = param->vdev_id;
|
||||||
cmd->ocac_mode = param->ocac_mode;
|
cmd->ocac_mode = param->ocac_mode;
|
||||||
cmd->center_freq = param->center_freq;
|
cmd->center_freq1 = param->center_freq1;
|
||||||
|
cmd->center_freq2 = param->center_freq2;
|
||||||
cmd->chan_freq = param->chan_freq;
|
cmd->chan_freq = param->chan_freq;
|
||||||
cmd->chan_width = param->chan_width;
|
cmd->chan_width = param->chan_width;
|
||||||
cmd->min_duration_ms = param->min_duration_ms;
|
cmd->min_duration_ms = param->min_duration_ms;
|
||||||
|
Reference in New Issue
Block a user