diff --git a/fw/htt.h b/fw/htt.h index 2b8238dfd98d..817e04ff79d3 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -719,6 +719,7 @@ typedef enum { HTT_STATS_TX_SELFGEN_BE_SCHED_STATUS_STATS_TAG = 139, /* htt_tx_selfgen_be_sched_status_stats_tlv */ HTT_STATS_TX_PDEV_BE_UL_MU_MIMO_STATS_TAG = 140, /* htt_tx_pdev_be_ul_mu_mimo_sch_stats_tlv */ HTT_STATS_RX_PDEV_BE_UL_MIMO_USER_STATS_TAG = 141, /* htt_rx_pdev_be_ul_mimo_user_stats_tlv */ + HTT_STATS_RX_RING_STATS_TAG = 142, /* htt_rx_fw_ring_stats_tlv_v */ HTT_STATS_MAX_TAG, diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 071c1716a77e..fe5c617d772d 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -3181,6 +3181,26 @@ typedef struct { A_UINT32 vdev_id_mismatch_cnt; } htt_tx_de_cmn_stats_tlv; +#define HTT_STATS_RX_FW_RING_SIZE_NUM_ENTRIES(dword) ((dword >> 0) & 0xffff) +#define HTT_STATS_RX_FW_RING_CURR_NUM_ENTRIES(dword) ((dword >> 16) & 0xffff) + +/* Rx debug info for status rings */ +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /* BIT [15 : 0] :- max possible number of entries in respective ring (size of the ring in terms of entries) + * BIT [16 : 31] :- current number of entries occupied in respective ring + */ + A_UINT32 entry_status_sw2rxdma; + A_UINT32 entry_status_rxdma2reo; + A_UINT32 entry_status_reo2sw1; + A_UINT32 entry_status_reo2sw4; + A_UINT32 entry_status_refillringipa; + A_UINT32 entry_status_refillringhost; + /* datarate - Moving Average of Number of Entries */ + A_UINT32 datarate_refillringipa; + A_UINT32 datarate_refillringhost; +} htt_rx_fw_ring_stats_tlv_v; + /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_DE_INFO * TLV_TAGS: * - HTT_STATS_TX_DE_CMN_TAG