diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 87f620106acf..2a62360ef1ce 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1114,6 +1114,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_enable_duration_based_tx_mode_selection_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_regulatory_rule_ext_struct, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext_fixed_param, + WMITLV_TAG_STRUC_wmi_ctrl_path_mem_stats_struct, } WMITLV_TAG_ID; /* @@ -5853,7 +5854,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID); #define WMITLV_TABLE_WMI_CTRL_PATH_STATS_EVENTID(id, op, buf, len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param, wmi_ctrl_path_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pdev_stats_struct, ctrl_path_pdev_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_mem_stats_struct, ctrl_path_mem_stats, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID); #define WMITLV_TABLE_WMI_RADIO_CHAN_STATS_EVENTID(id, op, buf, len) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 82387ba4f153..22f625208e52 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9367,6 +9367,73 @@ typedef struct { A_UINT32 vdev_pause_fail_rt_to_sched_algo_fifo_full_cnt; } wmi_ctrl_path_pdev_stats_struct; +typedef enum { + WMI_CTRL_PATH_STATS_ARENA_HRAM, + WMI_CTRL_PATH_STATS_ARENA_HCRAM, + WMI_CTRL_PATH_STATS_ARENA_HREMOTE, + WMI_CTRL_PATH_STATS_ARENA_HCREMOTE, + WMI_CTRL_PATH_STATS_ARENA_REMOTE, + WMI_CTRL_PATH_STATS_ARENA_SRAM, + WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX, + WMI_CTRL_PATH_STATS_ARENA_PAGEABLE, + WMI_CTRL_PATH_STATS_ARENA_CMEM, + WMI_CTRL_PATH_STATS_ARENA_TRAM, + WMI_CTRL_PATH_STATS_ARENA_HWIO, + WMI_CTRL_PATH_STATS_ARENA_CALDB, + WMI_CTRL_PATH_STATS_ARENA_M3, + WMI_CTRL_PATH_STATS_ARENA_ETMREMOTE, + WMI_CTRL_PATH_STATS_ARENA_M3_DUMP, + WMI_CTRL_PATH_STATS_ARENA_EMUPHY, + WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM, + WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM_AUX, + WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX_OVERFLOW, + WMI_CTRL_PATH_STATS_ARENA_AMSS, + WMI_CTRL_PATH_STATS_ARENA_MAX, +} wmi_ctrl_path_fw_arena_ids; + +/* + * Used by some hosts to print names of arenas, based on + * wmi_ctrl_path_fw_arena_ids values specified in + * wmi_ctrl_path_mem_stats_struct in ctrl_path_stats event msg. + */ +static INLINE A_UINT8 *wmi_ctrl_path_fw_arena_id_to_name(A_UINT32 arena_id) +{ + switch(arena_id) + { + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HRAM); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HCRAM); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HREMOTE); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HCREMOTE); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_REMOTE); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_SRAM); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_PAGEABLE); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_CMEM); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_TRAM); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_HWIO); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_CALDB); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_M3); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_ETMREMOTE); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_M3_DUMP); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_EMUPHY); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_DBG_SRAM_AUX); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_SRAM_AUX_OVERFLOW); + WMI_RETURN_STRING(WMI_CTRL_PATH_STATS_ARENA_AMSS); + } + + return (A_UINT8 *) "WMI_CTRL_PATH_STATS_ARENA_UNKNOWN"; +} + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 arena_id; /* see wmi_ctrl_path_fw_arena_ids */ + A_UINT32 total_bytes; /* total bytes in each arena */ + A_UINT32 allocated_bytes; /* allocated bytes in each arena */ +} wmi_ctrl_path_mem_stats_struct; + typedef struct { /** TLV tag and len; tag equals * WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param */ @@ -25605,9 +25672,12 @@ typedef struct { typedef enum { /* * Multiple stats type can be requested together, so each value - * within this enum represents a bit within a stats bitmap. + * within this enum represents a bit position within a stats bitmap. */ - WMI_REQUEST_CTRL_PATH_PDEV_TX_STAT = 0x00000001, + /* bit 0 is currently unused / reserved */ + WMI_REQUEST_CTRL_PATH_PDEV_TX_STAT = 1, + WMI_REQUEST_CTRL_PATH_VDEV_EXTD_STAT = 2, + WMI_REQUEST_CTRL_PATH_MEM_STAT = 3, } wmi_ctrl_path_stats_id; typedef enum { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 0e8aec691a5a..20beb66a27b1 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,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_ 908 +#define __WMI_REVISION_ 909 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work