diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 145e90dfd823..6a60a3a1a4ee 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1285,6 +1285,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_iface_powersave_stats, WMITLV_TAG_STRUC_wmi_roam_bss_info_param, WMITLV_TAG_STRUC_wmi_vendor_control_param, + WMITLV_TAG_STRUC_wmi_coex_dbam_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_coex_dbam_complete_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1788,6 +1790,7 @@ typedef enum { OP(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID) \ OP(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID) \ OP(WMI_WOW_COAP_GET_BUF_INFO_CMDID) \ + OP(WMI_COEX_DBAM_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -2077,6 +2080,7 @@ typedef enum { OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID) \ OP(WMI_HALPHY_CTRL_PATH_STATS_EVENTID) \ OP(WMI_WOW_COAP_BUF_INFO_EVENTID) \ + OP(WMI_COEX_DBAM_COMPLETE_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5109,6 +5113,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_GET_BUF_INFO_CMDID); +/* coex dbam cmd */ +#define WMITLV_TABLE_WMI_COEX_DBAM_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_dbam_cmd_fixed_param, wmi_coex_dbam_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_CMDID); + /************************** TLV definitions of WMI events *******************************/ @@ -6918,6 +6927,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_COMPLETE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, payloads, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_BUF_INFO_EVENTID); +/* coex dbam cmd complete event */ +#define WMITLV_TABLE_WMI_COEX_DBAM_COMPLETE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_dbam_complete_event_fixed_param, wmi_coex_dbam_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_COMPLETE_EVENTID); + #ifdef __cplusplus diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index ff6a67978bb4..e85f487e0f9e 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1305,6 +1305,8 @@ typedef enum { WMI_COEX_GET_ANTENNA_ISOLATION_CMDID, WMI_SAR_LIMITS_CMDID, WMI_SAR_GET_LIMITS_CMDID, + /** Dedicated BT Antenna Mode (DBAM) command */ + WMI_COEX_DBAM_CMDID, /** * OBSS scan offload enable/disable commands @@ -2171,6 +2173,8 @@ typedef enum { /* Coex Event */ WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_COEX), WMI_SAR_GET_LIMITS_EVENTID, + /** Dedicated BT Antenna Mode (DBAM) complete event */ + WMI_COEX_DBAM_COMPLETE_EVENTID, /* LPI Event */ WMI_LPI_RESULT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_LPI), @@ -29545,6 +29549,18 @@ typedef struct { A_UINT32 config_arg6; } WMI_COEX_CONFIG_CMD_fixed_param; +typedef enum wmi_coex_dbam_mode_type { + WMI_COEX_DBAM_DISABLE = 0, + WMI_COEX_DBAM_ENABLE = 1, + WMI_COEX_DBAM_FORCED = 2, +} WMI_COEX_DBAM_MODE_TYPE; + +typedef struct { + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 dbam_mode; /* wmi_coex_dbam_mode_type enum */ +} wmi_coex_dbam_cmd_fixed_param; + /** * This command is sent from WLAN host driver to firmware to * request firmware to enable/disable channel avoidance report @@ -31655,6 +31671,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_GET_BUF_INFO_CMDID); + WMI_RETURN_STRING(WMI_COEX_DBAM_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -32310,6 +32327,23 @@ typedef struct { isolation_chain3:8; /* [31:24], isolation value for chain 3 */ } wmi_coex_report_isolation_event_fixed_param; +typedef enum { + WMI_COEX_DBAM_COMP_SUCCESS = 0, /* success, mode is applied */ + WMI_COEX_DBAM_COMP_ONGOING = 1, /* success, mode is applied */ + WMI_COEX_DBAM_COMP_DELAYED = 2, /* DBAM is delayed and TDD is selected temporarily */ + WMI_COEX_DBAM_COMP_NOT_SUPPORT = 3, /* DBAM is not supported */ + WMI_COEX_DBAM_COMP_TEST_MODE = 4, /* ignore due to test mode */ + WMI_COEX_DBAM_COMP_INVALID_PARAM = 5, /* invalid parameter is received */ + WMI_COEX_DBAM_COMP_FAIL = 6, /* command failed */ +} wmi_coex_dbam_comp_status; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_coex_dbam_complete_event_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 comp_status; /* wmi_coex_dbam_comp_status */ +} wmi_coex_dbam_complete_event_fixed_param; + typedef enum { WMI_RCPI_MEASUREMENT_TYPE_AVG_MGMT = 1, WMI_RCPI_MEASUREMENT_TYPE_AVG_DATA = 2, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 9585f032a32c..3fb767d8a05d 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 1166 +#define __WMI_REVISION_ 1167 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work