diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 350060dab0a5..75c8c592e67e 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1504,6 +1504,9 @@ typedef enum { WMITLV_TAG_STRUC_wmi_peer_npca_cap_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_npca_ap_cap_resp_event_fixed_param, WMITLV_TAG_STRUC_wmi_wfa_config_ml, + WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_ac_info, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2078,6 +2081,7 @@ typedef enum { OP(WMI_PEER_TID_RATE_CUSTOM_CMDID) \ OP(WMI_PDEV_NPCA_AP_CAP_CMDID) \ OP(WMI_PEER_NPCA_CAP_CMDID) \ + OP(WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -2416,6 +2420,7 @@ typedef enum { OP(WMI_HW_BLACKLIST_CHAN_EVENTID) \ OP(WMI_PDEV_SUSPEND_EVENTID) \ OP(WMI_PDEV_NPCA_AP_CAP_RESP_EVENTID) \ + OP(WMI_PDEV_MULTI_VDEV_AC_QUEUE_DEPTH_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5864,6 +5869,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rate_code, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_RATE_CUSTOM_CMDID); +/* pdev per-vdev queue depth report request cmd */ +#define WMITLV_TABLE_WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param, wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID); + /************************** TLV definitions of WMI events *******************************/ @@ -8005,6 +8015,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_POWER_BOOST_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_cache_info, scan_cache_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_CACHE_RESULT_EVENTID); +/* pdev per-vdev queue depth report event */ +#define WMITLV_TABLE_WMI_PDEV_MULTI_VDEV_AC_QUEUE_DEPTH_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param, wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_ac_info, vdev_ac_info, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTI_VDEV_AC_QUEUE_DEPTH_EVENTID); + #ifdef __cplusplus } diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 511974bea79f..4b0cd1ae5ad0 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -600,6 +600,11 @@ typedef enum { * WMI cmd to to Enable/Disable NPCA and its capabilities */ WMI_PDEV_NPCA_AP_CAP_CMDID, + /** + * WMI cmd to get the per-vdev, per-access-category queue pending packets + * for the pdev + */ + WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -1940,6 +1945,9 @@ typedef enum { */ WMI_PDEV_NPCA_AP_CAP_RESP_EVENTID, + /* Event to share the per-access-category queue pending packets */ + WMI_PDEV_MULTI_VDEV_AC_QUEUE_DEPTH_EVENTID, + /* VDEV specific events */ /** VDEV started event in response to VDEV_START request */ @@ -51587,6 +51595,30 @@ typedef struct { A_UINT32 pdev_id; } wmi_energy_mgmt_eco_mode_config_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param */ + A_UINT32 pdev_id; /** pdev ID set by the command */ +} wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_ac_info */ + A_UINT32 vdev_id; + /** pending_packets_per_ac: + * number of MSDUs pending in MSDU and MPDU queues for the Access Category + * for the specific vdev + */ + A_UINT32 pending_packets_per_ac[WLAN_MAX_AC]; +} wmi_vdev_ac_info; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param */ + A_UINT32 pdev_id; /* pdev ID set by the command */ + /* The TLVs for the 4 AC follows with the vdev_id : + * wmi_vdev_ac_info vdev_ac_info[]; wmi_vdev_ac_info for BE/BK/VI/VO + */ +} wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param; + + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index d80c0e214767..1ae44988418a 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_ 1640 +#define __WMI_REVISION_ 1641 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work