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
这个提交包含在:
@@ -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
|
||||
|
在新工单中引用
屏蔽一个用户