qcacld-3.0: Add support to send RSSI_CHANGE_THRESHOLD

Add support to send WMI_RSSI_CHANGE_THRESHOLD command to firmware
in connection manager.

Change-Id: I97d4b8f8fc0e938ede0e61d44eb8ffbcbb0fb4ff
CRs-Fixed: 2761043
这个提交包含在:
Pragaspathi Thilagaraj
2020-08-03 00:42:34 +05:30
提交者 snandini
父节点 f481997643
当前提交 eec05fff64
修改 13 个文件,包含 415 行新增18 行删除

查看文件

@@ -22,7 +22,7 @@
#define _WMI_UNIFIED_ROAM_API_H_
#include <wmi_unified_roam_param.h>
#include <wlan_cm_roam_public_struct.h>
#include "wlan_cm_roam_public_struct.h"
#ifdef FEATURE_LFR_SUBNET_DETECTION
/**
@@ -333,7 +333,22 @@ wmi_unified_roam_scan_offload_chan_list_cmd(wmi_unified_t wmi_handle,
uint32_t *chan_list,
uint8_t list_type,
uint32_t vdev_id);
#ifdef ROAM_OFFLOAD_V1
/**
* wmi_unified_roam_scan_offload_rssi_change_cmd() - set roam offload RSSI
* threshold
* @wmi_handle: wmi handle
* @params: RSSI change params
*
* Send WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD parameters to fw.
*
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
*/
QDF_STATUS
wmi_unified_roam_scan_offload_rssi_change_cmd(
wmi_unified_t wmi_handle,
struct wlan_roam_rssi_change_params *params);
#else
/**
* wmi_unified_roam_scan_offload_rssi_change_cmd() - set roam offload RSSI th
* @wmi_handle: wmi handle
@@ -351,6 +366,7 @@ wmi_unified_roam_scan_offload_rssi_change_cmd(wmi_unified_t wmi_handle,
int32_t rssi_change_thresh,
uint32_t bcn_rssi_weight,
uint32_t hirssi_delay_btw_scans);
#endif
/**
* wmi_unified_set_per_roam_config() - set PER roam config in FW

查看文件

@@ -261,6 +261,18 @@ wmi_unified_roam_scan_offload_chan_list_cmd(wmi_unified_t wmi_handle,
return QDF_STATUS_E_FAILURE;
}
#ifdef ROAM_OFFLOAD_V1
QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(
wmi_unified_t wmi_handle,
struct wlan_roam_rssi_change_params *params)
{
if (wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd)
return wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd(
wmi_handle, params);
return QDF_STATUS_E_FAILURE;
}
#else
QDF_STATUS
wmi_unified_roam_scan_offload_rssi_change_cmd(wmi_unified_t wmi_handle,
uint32_t vdev_id,
@@ -275,6 +287,7 @@ wmi_unified_roam_scan_offload_rssi_change_cmd(wmi_unified_t wmi_handle,
return QDF_STATUS_E_FAILURE;
}
#endif
QDF_STATUS
wmi_unified_set_per_roam_config(wmi_unified_t wmi_handle,

查看文件

@@ -2548,6 +2548,67 @@ error:
return status;
}
#ifdef ROAM_OFFLOAD_V1
/**
* send_roam_scan_offload_rssi_change_cmd_tlv() - set roam offload RSSI th
* @wmi_handle: wmi handle
* @rssi_change_thresh: RSSI Change threshold
* @bcn_rssi_weight: beacon RSSI weight
* @vdev_id: vdev id
*
* Send WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD parameters to fw.
*
* Return: CDF status
*/
static QDF_STATUS send_roam_scan_offload_rssi_change_cmd_tlv(
wmi_unified_t wmi_handle,
struct wlan_roam_rssi_change_params *params)
{
wmi_buf_t buf = NULL;
QDF_STATUS status;
int len;
uint8_t *buf_ptr;
wmi_roam_scan_rssi_change_threshold_fixed_param *rssi_change_fp;
/* Send rssi change parameters */
len = sizeof(wmi_roam_scan_rssi_change_threshold_fixed_param);
buf = wmi_buf_alloc(wmi_handle, len);
if (!buf)
return QDF_STATUS_E_NOMEM;
buf_ptr = (uint8_t *)wmi_buf_data(buf);
rssi_change_fp =
(wmi_roam_scan_rssi_change_threshold_fixed_param *)buf_ptr;
WMITLV_SET_HDR(&rssi_change_fp->tlv_header,
WMITLV_TAG_STRUC_wmi_roam_scan_rssi_change_threshold_fixed_param,
WMITLV_GET_STRUCT_TLVLEN
(wmi_roam_scan_rssi_change_threshold_fixed_param));
/* fill in rssi change threshold (hysteresis) values */
rssi_change_fp->vdev_id = params->vdev_id;
rssi_change_fp->roam_scan_rssi_change_thresh =
params->rssi_change_thresh;
rssi_change_fp->bcn_rssi_weight = params->bcn_rssi_weight;
rssi_change_fp->hirssi_delay_btw_scans = params->hirssi_delay_btw_scans;
wmi_mtrace(WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD,
rssi_change_fp->vdev_id, 0);
status = wmi_unified_cmd_send(wmi_handle, buf, len,
WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD);
if (QDF_IS_STATUS_ERROR(status))
goto error;
wmi_nofl_debug("RSO_PARAM: rssi_change_thresh:%d bcn_rssi_weight:%d hirssi_delay_btw_scans:%d",
rssi_change_fp->roam_scan_rssi_change_thresh,
rssi_change_fp->bcn_rssi_weight,
rssi_change_fp->hirssi_delay_btw_scans);
return QDF_STATUS_SUCCESS;
error:
wmi_buf_free(buf);
return status;
}
#else
/**
* send_roam_scan_offload_rssi_change_cmd_tlv() - set roam offload RSSI th
* @wmi_handle: wmi handle
@@ -2607,6 +2668,7 @@ error:
return status;
}
#endif
/**
* send_per_roam_config_cmd_tlv() - set per roaming config to FW