From f3231d5e3f761e80658ba57725ddeea78aef9004 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 24 Feb 2026 12:03:42 -0800 Subject: [PATCH] fw-api: CL 31732805 - update fw common interface files Change-Id: Ic8ca171d1ce232097e9664ca7de25240e7544b57 CRs-Fixed: 3830439 --- fw/wmi_services.h | 2 ++ fw/wmi_tlv_defs.h | 7 +++++++ fw/wmi_unified.h | 31 +++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index cd76e2e6a5a5..2dd303ea0f86 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -764,6 +764,8 @@ typedef enum { * FW needs to disable the roam triggers except deauth roaming. */ WMI_SERVICE_HANDLE_ROAMING_WITHOUT_RSO_STOP_FOR_4WAY_HS_OFFLOAD_DISABLE = 493, + /* Indicates FW support for populating vdev operating param stats */ + WMI_SERVICE_VDEV_OPERATING_PARAMS_EVENT_SUPPORT = 494, WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 1c70049595d3..b968e80c46fb 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1590,6 +1590,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_energy_mgmt_oem_data_fixed_param, WMITLV_TAG_STRUC_wmi_energy_mgmt_oem_data_event_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_channel_hopping_schedule_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_current_operating_param_event_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2551,6 +2552,7 @@ typedef enum { OP(WMI_NAN_PEER_SCHEDULE_CNF_EVENTID) \ OP(WMI_NAN_PEER_PARAMS_CNF_EVENTID) \ OP(WMI_ENERGY_MGMT_OEM_DATA_EVENTID) \ + OP(WMI_VDEV_CURRENT_OPERATING_PARAM_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -8742,6 +8744,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SMD_ROAM_CONFIG_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_OEM_DATA_EVENTID); +/* VDEV current operating params event */ +#define WMITLV_TABLE_WMI_VDEV_CURRENT_OPERATING_PARAM_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_current_operating_param_event_fixed_param, wmi_vdev_current_operating_param_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_CURRENT_OPERATING_PARAM_EVENTID); + #ifdef __cplusplus } diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 88432900e0f0..475dcc6a333a 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2163,6 +2163,8 @@ typedef enum { WMI_VDEV_UNIFIED_CONNECT_EVENTID, /** WMI event for unified disconnect */ WMI_VDEV_UNIFIED_DISCONNECT_EVENTID, + /** WMI event for sending vdev operating params */ + WMI_VDEV_CURRENT_OPERATING_PARAM_EVENTID, /* peer specific events */ /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ @@ -8750,6 +8752,14 @@ typedef struct { A_UINT32 sw_retry_th; /* max retry count per AC base on ac_type for the vdev mentioned in vdev id*/ } wmi_vdev_set_custom_sw_retry_th_cmd_fixed_param; +typedef enum { + /* Set when user forces the chainmask config */ + WMI_FORCE_CHM_MODE_USER_FORCE = 0, + + /* Set when there is no user force */ + WMI_FORCE_CHM_MODE_DEFAULT_CONFIG = 1, +} WMI_FORCE_CHM_MODE; + typedef struct { /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_chainmask_config_cmd_fixed_param */ A_UINT32 tlv_header; @@ -8792,6 +8802,7 @@ typedef struct { A_UINT32 fast_chain_selection; /* RSSI delta threshold to determine better chain, units: dB */ A_UINT32 better_chain_rssi_threshold; + A_UINT32 force_mode; /* holds a WMI_FORCE_CHM_MODE enum value */ } wmi_vdev_chainmask_config_cmd_fixed_param; /* @@ -54956,6 +54967,26 @@ typedef struct { A_UINT32 status; /** wmi_smd_peer_setup_status_type */ } wmi_smd_roam_peer_unified_setup_complete_event_fixed_param; +/* vdev operating param flags */ +#define WMI_VDEV_OPERATING_PARAM_SET_UPDATED_BW 0x1 +#define WMI_VDEV_OPERATING_PARAM_SET_UPDATED_NSS 0x2 +#define WMI_VDEV_OPERATING_PARAM_SET_UPDATED_CHAINS 0x4 + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_current_operating_param_event_fixed_param */ + /* operating_param_flags: holds WMI_VDEV_OPERATING_PARAM_ values */ + A_UINT32 operating_param_flags; + A_UINT32 vdev_id; /* ID of the vdev these data stats are from */ + /* bw: current operating bandwidth (a wmi_channel_width enum value) */ + A_UINT32 bw; + /* Current operating Tx and Rx NSS */ + A_UINT32 tx_nss; + A_UINT32 rx_nss; + /* Current Tx and RX Chains of HW intersected with connection capability */ + A_UINT32 tx_chains; + A_UINT32 rx_chains; +} wmi_vdev_current_operating_param_event_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index b4307eb35ad4..ae2e2c3b153d 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_ 1722 +#define __WMI_REVISION_ 1723 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work