From de88a134d99bb7376bbfbb2f648b8c927ef4896f Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 2 Aug 2022 06:01:20 -0700 Subject: [PATCH] fw-api: CL 19047183 - update fw common interface files Change-Id: I8d1e875c7833b710f4683859295c37e98bd059e0 WMI: add IPA_LINK_STATS_EVENT msg def CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 12 +++++++++ fw/wmi_unified.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 80 insertions(+), 1 deletion(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index d810ba4b1423..a35dd207a4e1 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1289,6 +1289,9 @@ typedef enum { WMITLV_TAG_STRUC_wmi_coex_dbam_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_is_my_mgmt_frame, WMITLV_TAG_STRUC_wmi_health_mon_init_done_fixed_param, + WMITLV_TAG_STRUC_wmi_ipa_link_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ipa_link_stats, + WMITLV_TAG_STRUC_wmi_ipa_per_mac_stats, } WMITLV_TAG_ID; /* @@ -2084,6 +2087,7 @@ typedef enum { OP(WMI_WOW_COAP_BUF_INFO_EVENTID) \ OP(WMI_COEX_DBAM_COMPLETE_EVENTID) \ OP(WMI_HEALTH_MON_INIT_DONE_EVENTID) \ + OP(WMI_IPA_LINK_STATS_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5753,6 +5757,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_LINK_STATS_EVENTID); WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_LINK_STATS_EVENTID); +/* Update ipa stats Event */ +#define WMITLV_TABLE_WMI_IPA_LINK_STATS_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ipa_link_stats_event_fixed_param, wmi_ipa_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ipa_link_stats, ipa_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ipa_per_mac_stats, per_mac_stats, WMITLV_SIZE_VAR) + +WMITLV_CREATE_PARAM_STRUC(WMI_IPA_LINK_STATS_EVENTID); + /* Update WLM stats event */ #define WMITLV_TABLE_WMI_WLM_STATS_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlm_stats_event_fixed_param, wmi_wlm_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 3a748e970403..b5bdfb092206 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2017,6 +2017,9 @@ typedef enum { */ WMI_HALPHY_CTRL_PATH_STATS_EVENTID, + /** FW IPA link stats Event */ + WMI_IPA_LINK_STATS_EVENTID, + /* NLO specific events */ /** NLO match event after the first match */ @@ -9825,6 +9828,7 @@ typedef struct { #define WMI_LINK_STATS_IFACE 0x00000002 #define WMI_LINK_STATS_ALL_PEER 0x00000004 #define WMI_LINK_STATS_PER_PEER 0x00000008 +#define WMI_LINK_STATS_IPA 0x00000010 /* wifi clear statistics bitmap */ @@ -10457,6 +10461,69 @@ typedef struct { A_UINT32 tot_err_tim_bcn; } wmi_iface_powersave_stats; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_link_stats */ + + /** IPA tx channel 0 buffer hp/tp */ + A_UINT32 wbm2sw_ring_ch0_hp; + A_UINT32 wbm2sw_ring_ch0_tp; + /** IPA tx channel 1 buffer hp/tp */ + A_UINT32 wbm2sw_ring_ch1_hp; + A_UINT32 wbm2sw_ring_ch1_tp; + + /** IPA rx channel 0 buffer hp/tp */ + A_UINT32 reo2sw_ring_ch0_hp; + A_UINT32 reo2sw_ring_ch0_tp; + /** IPA rx channel 1 buffer hp/tp */ + A_UINT32 reo2sw_ring_ch1_hp; + A_UINT32 reo2sw_ring_ch1_tp; + + /** IPA rx channel 0 ring full counter */ + A_UINT32 reo2sw_ch0_producer_full_cnt; + /** IPA rx channel 1 ring full counter */ + A_UINT32 reo2sw_ch1_producer_full_cnt; + + /** IPA rx path drop feature enable */ + A_UINT32 ipa_drop_enabled; + /** Counter for IPA rx path switch to drop-enabled state */ + A_UINT32 ipa_switch_to_drop_cnt; + /** Counter for IPA rx path switch from drop-enabled state to normal state */ + A_UINT32 ipa_switch_from_drop_cnt; +} wmi_ipa_link_stats; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_per_mac_stats */ + + /** TCL total enqueued packet number */ + A_UINT32 tcl_enqueue_packets; + /** TCL total discarded packet number during enqueue */ + A_UINT32 tcl_enqueue_discard; + + /** Total tx duration time, usec */ + A_UINT32 total_ppdu_duration_us; + + /** IPA rx no resource debug counter */ + A_UINT32 wmac_no_resource_drop_ppdu_cnt_ix0; + A_UINT32 wmac_no_resource_drop_ppdu_cnt_ix1; + A_UINT32 wmac_no_resource_drop_mpdu_cnt_ix0; + A_UINT32 wmac_no_resource_drop_mpdu_cnt_ix1; + A_UINT32 wmac_rxdma2reo_producer_full_cnt; +} wmi_ipa_per_mac_stats; + +/** IPA statistics (once started) reset and start afresh after each connection */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_link_stats_event_fixed_param */ + /** unique id identifying the request, given in the request stats command */ + A_UINT32 request_id; + /** number of MACs */ + A_UINT32 num_macs; +/* + * This TLV is followed by other TLVs: + * wmi_ipa_link_stats ipa_link_stats; + * wmi_ipa_per_mac_stats ipa_per_mac_stats[num_macs]; + */ +} wmi_ipa_link_stats_event_fixed_param; + /** Interface statistics (once started) reset and start afresh after each connection */ typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 310892e9f211..adea481d07f3 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_ 1186 +#define __WMI_REVISION_ 1187 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work