qcacmn: Add support to receive EGID_INFO from BT WMI
Add WMI support to receive the EGID_INFO from BT and forward to FW Change-Id: I1698994173e6cefba1284f564c2f2e79e31ee221 CRs-Fixed: 3384085
This commit is contained in:

committed by
Madan Koyyalamudi

vanhempi
b57fbc13f4
commit
9064b44469
@@ -2085,6 +2085,18 @@ wmi_unified_send_btcoex_wlan_priority_cmd(wmi_unified_t wmi_handle,
|
||||
QDF_STATUS
|
||||
wmi_unified_send_btcoex_duty_cycle_cmd(wmi_unified_t wmi_handle,
|
||||
struct btcoex_cfg_params *param);
|
||||
/**
|
||||
* wmi_unified_send_egid_info_cmd() - send ESL egid_info commands
|
||||
* @wmi_handle: wmi handle
|
||||
* @param: esl_egid params
|
||||
*
|
||||
* Send WMI_ESL_EGID_CMDID parameters to fw.
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
|
||||
*/
|
||||
QDF_STATUS
|
||||
wmi_unified_send_egid_info_cmd(wmi_unified_t wmi_handle,
|
||||
struct esl_egid_params *param);
|
||||
|
||||
/**
|
||||
* wmi_unified_send_coex_ver_cfg_cmd() - send coex ver cfg command
|
||||
|
@@ -516,6 +516,7 @@
|
||||
|
||||
#define WMI_MAX_AOA_PHASE_DELTA 31
|
||||
#define WMI_MAX_CHAINS_PHASE 2
|
||||
#define EGID_INFO_SIZE 4
|
||||
|
||||
#include "qdf_atomic.h"
|
||||
|
||||
@@ -4063,6 +4064,14 @@ struct btcoex_cfg_params {
|
||||
uint32_t wlan_duration;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct esl_egid_params - Contains the EGID information
|
||||
* @egid_info: egid_info contains the 128-bit ESL EGID information
|
||||
*/
|
||||
struct esl_egid_params {
|
||||
uint32_t egid_info[EGID_INFO_SIZE];
|
||||
};
|
||||
|
||||
#define WMI_HOST_COEX_CONFIG_BUF_MAX_LEN 32 /* 128 bytes */
|
||||
/**
|
||||
* struct coex_ver_cfg_t
|
||||
|
@@ -1843,6 +1843,10 @@ QDF_STATUS
|
||||
(*send_btcoex_duty_cycle_cmd)(wmi_unified_t wmi_handle,
|
||||
struct btcoex_cfg_params *param);
|
||||
|
||||
QDF_STATUS
|
||||
(*send_egid_info_cmd)(wmi_unified_t wmi_handle,
|
||||
struct esl_egid_params *param);
|
||||
|
||||
QDF_STATUS
|
||||
(*send_coex_ver_cfg_cmd)(wmi_unified_t wmi_handle, coex_ver_cfg_t *param);
|
||||
|
||||
|
@@ -2591,6 +2591,18 @@ wmi_unified_send_btcoex_duty_cycle_cmd(wmi_unified_t wmi_handle,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wmi_unified_send_egid_info_cmd(wmi_unified_t wmi_handle,
|
||||
struct esl_egid_params *param)
|
||||
{
|
||||
if (wmi_handle->ops->send_egid_info_cmd) {
|
||||
return wmi_handle->ops->send_egid_info_cmd(
|
||||
wmi_handle, param);
|
||||
}
|
||||
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
QDF_STATUS wmi_extract_service_ready_ext(
|
||||
wmi_unified_t wmi_handle, uint8_t *evt_buf,
|
||||
struct wlan_psoc_host_service_ext_param *param)
|
||||
|
@@ -20265,6 +20265,38 @@ send_vdev_pn_mgmt_rxfilter_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
send_egid_info_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
struct esl_egid_params *param)
|
||||
{
|
||||
wmi_esl_egid_cmd_fixed_param *cmd;
|
||||
wmi_buf_t buf;
|
||||
|
||||
uint32_t len = sizeof(*cmd);
|
||||
|
||||
buf = wmi_buf_alloc(wmi_handle, len);
|
||||
if (!buf) {
|
||||
wmi_err("wmi_buf_alloc failed");
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
cmd = (wmi_esl_egid_cmd_fixed_param *)wmi_buf_data(buf);
|
||||
WMITLV_SET_HDR(
|
||||
&cmd->tlv_header,
|
||||
WMITLV_TAG_STRUC_wmi_esl_egid_cmd_fixed_param,
|
||||
WMITLV_GET_STRUCT_TLVLEN(wmi_esl_egid_cmd_fixed_param));
|
||||
qdf_mem_copy(cmd->egid_info,
|
||||
param->egid_info,
|
||||
sizeof(param->egid_info));
|
||||
if (wmi_unified_cmd_send(wmi_handle, buf, len, WMI_ESL_EGID_CMDID)) {
|
||||
wmi_err("Failed to send WMI command");
|
||||
wmi_buf_free(buf);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static QDF_STATUS
|
||||
extract_pktlog_decode_info_event_tlv(wmi_unified_t wmi_handle, void *evt_buf,
|
||||
uint8_t *pdev_id, uint8_t *software_image,
|
||||
@@ -20939,6 +20971,7 @@ struct wmi_ops tlv_ops = {
|
||||
.extract_sap_coex_cap_service_ready_ext2 =
|
||||
extract_sap_coex_fix_chan_caps,
|
||||
.extract_tgtr2p_table_event = extract_tgtr2p_table_event_tlv,
|
||||
.send_egid_info_cmd = send_egid_info_cmd_tlv,
|
||||
};
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
|
Viittaa uudesa ongelmassa
Block a user