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:
M Kavitha
2023-02-01 13:15:23 +05:30
committed by Madan Koyyalamudi
vanhempi b57fbc13f4
commit 9064b44469
5 muutettua tiedostoa jossa 70 lisäystä ja 0 poistoa

Näytä tiedosto

@@ -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

Näytä tiedosto

@@ -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

Näytä tiedosto

@@ -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);

Näytä tiedosto

@@ -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)

Näytä tiedosto

@@ -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