mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 08:07:32 -04:00
fw-api: CL 7122573 - update fw common interface files
HTT stats: latency profiling Change-Id: Iaeab8d51d653020e75879cf2492fe85d33afee6e CRs-Fixed: 2262693
This commit is contained in:
parent
5e0b322102
commit
9e7f7330c7
2 changed files with 77 additions and 1 deletions
2
fw/htt.h
2
fw/htt.h
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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__ */
|
||||
|
|
|
|||
Loading…
Reference in a new issue