fw-api: CL 7122573 - update fw common interface files

HTT stats: latency profiling

Change-Id: Iaeab8d51d653020e75879cf2492fe85d33afee6e
CRs-Fixed: 2262693
This commit is contained in:
spuligil 2019-05-13 08:10:21 -07:00
commit 9e7f7330c7
2 changed files with 77 additions and 1 deletions

View file

@ -4911,7 +4911,7 @@ enum htt_srng_ring_id {
* dword11- b'9:0 - rx_drop_threshold: Threshold configured in monitor mode
* to source rings. Consumer drops packets if the available
* words in the ring falls below the configured threshold
* value.
* value.
*/
PREPACK struct htt_rx_ring_selection_cfg_t {
A_UINT32 msg_type: 8,

View file

@ -276,6 +276,15 @@ enum htt_dbg_ext_stats_type {
*/
HTT_DBG_EXT_STATS_RING_BACKPRESSURE_STATS = 24,
/* HTT_DBG_EXT_STATS_LATENCY_PROF_STATS
* PARAMS:
*
* RESP MSG:
* - htt_soc_latency_prof_t
*/
HTT_DBG_EXT_STATS_LATENCY_PROF_STATS = 25,
/* keep this last */
HTT_DBG_NUM_EXT_STATS = 256,
};
@ -372,6 +381,9 @@ typedef enum {
HTT_STATS_PDEV_OBSS_PD_TAG = 88, /* htt_pdev_obss_pd_stats_tlv */
HTT_STATS_HW_WAR_TAG = 89, /* htt_hw_war_stats_tlv */
HTT_STATS_RING_BACKPRESSURE_STATS_TAG = 90, /* htt_ring_backpressure_stats_tlv */
HTT_STATS_LATENCY_PROF_STATS_TAG = 91, /* htt_latency_prof_stats_tlv */
HTT_STATS_LATENCY_CTX_TAG = 92, /* htt_latency_prof_ctx_tlv */
HTT_STATS_LATENCY_CNT_TAG = 93, /* htt_latency_prof_cnt_tlv */
HTT_STATS_MAX_TAG,
} htt_tlv_tag_t;
@ -3835,4 +3847,68 @@ typedef struct {
} r[1]; /* variable-length array */
} htt_ring_backpressure_stats_t;
#define HTT_LATENCY_PROFILE_MAX_HIST 3
#define HTT_STATS_MAX_PROF_STATS_NAME_LEN 32
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* print_header:
* This field suggests whether the host should print a header when
* displaying the TLV (because this is the first latency_prof_stats
* TLV within a series), or if only the TLV contents should be displayed
* without a header (because this is not the first TLV within the series).
*/
A_UINT32 print_header;
A_UINT8 latency_prof_name[HTT_STATS_MAX_PROF_STATS_NAME_LEN];
A_UINT32 cnt; /* number of data values included in the tot sum */
A_UINT32 min; /* time in us */
A_UINT32 max; /* time in us */
A_UINT32 last;
A_UINT32 tot; /* time in us */
A_UINT32 avg; /* time in us */
/* hist_intvl:
* Histogram interval, i.e. the latency range covered by each
* bin of the histogram, in microsecond units.
* hist[0] counts how many latencies were between 0 to hist_intvl
* hist[1] counts how many latencies were between hist_intvl to 2*hist_intvl
* hist[2] counts how many latencies were more than 2*hist_intvl
*/
A_UINT32 hist_intvl;
A_UINT32 hist[HTT_LATENCY_PROFILE_MAX_HIST];
} htt_latency_prof_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* duration:
* Time period over which counts were gathered, units = microseconds.
*/
A_UINT32 duration;
A_UINT32 tx_msdu_cnt;
A_UINT32 tx_mpdu_cnt;
A_UINT32 tx_ppdu_cnt;
A_UINT32 rx_msdu_cnt;
A_UINT32 rx_mpdu_cnt;
} htt_latency_prof_ctx_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
A_UINT32 prof_enable_cnt; /* count of enabled profiles */
} htt_latency_prof_cnt_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_LATENCY_PROF_STATS
* TLV_TAGS:
* HTT_STATS_LATENCY_PROF_STATS_TAG / htt_latency_prof_stats_tlv
* HTT_STATS_LATENCY_CTX_TAG / htt_latency_prof_ctx_tlv
* HTT_STATS_LATENCY_CNT_TAG / htt_latency_prof_cnt_tlv
*/
/* NOTE:
* This structure is for documentation, and cannot be safely used directly.
* Instead, use the constituent TLV structures to fill/parse.
*/
typedef struct {
htt_latency_prof_stats_tlv latency_prof_stat;
htt_latency_prof_ctx_tlv latency_ctx_stat;
htt_latency_prof_cnt_tlv latency_cnt_stat;
} htt_soc_latency_stats_t;
#endif /* __HTT_STATS_H__ */