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

HTT stats: efficient AX ofdma stats, add BE ofdma stats

Change-Id: I7a79c4f1569076e71522abef6612aa6a254b46dc
CRs-Fixed: 2262693
This commit is contained in:
spuligil
2022-03-14 18:01:21 -07:00
orang tua ea9dd77c75
melakukan 728b5cdc42
2 mengubah file dengan 317 tambahan dan 18 penghapusan

Melihat File

@@ -698,10 +698,10 @@ typedef enum {
HTT_STATS_UNAVAILABLE_ERROR_STATS_TAG = 110, /* htt_stats_error_tlv_v */
HTT_STATS_TX_SELFGEN_AC_SCHED_STATUS_STATS_TAG = 111, /* htt_tx_selfgen_ac_sched_status_stats_tlv */
HTT_STATS_TX_SELFGEN_AX_SCHED_STATUS_STATS_TAG = 112, /* htt_tx_selfgen_ax_sched_status_stats_tlv */
HTT_STATS_TXBF_OFDMA_NDPA_STATS_TAG = 113, /* htt_txbf_ofdma_ndpa_stats_tlv */
HTT_STATS_TXBF_OFDMA_NDP_STATS_TAG = 114, /* htt_txbf_ofdma_ndp_stats_tlv */
HTT_STATS_TXBF_OFDMA_BRP_STATS_TAG = 115, /* htt_txbf_ofdma_brp_stats_tlv */
HTT_STATS_TXBF_OFDMA_STEER_STATS_TAG = 116, /* htt_txbf_ofdma_steer_stats_tlv */
HTT_STATS_TXBF_OFDMA_NDPA_STATS_TAG = 113, /* htt_txbf_ofdma_ndpa_stats_tlv - DEPRECATED */
HTT_STATS_TXBF_OFDMA_NDP_STATS_TAG = 114, /* htt_txbf_ofdma_ndp_stats_tlv - DEPRECATED */
HTT_STATS_TXBF_OFDMA_BRP_STATS_TAG = 115, /* htt_txbf_ofdma_brp_stats_tlv - DEPRECATED */
HTT_STATS_TXBF_OFDMA_STEER_STATS_TAG = 116, /* htt_txbf_ofdma_steer_stats_tlv - DEPRECATED */
HTT_STATS_STA_UL_OFDMA_STATS_TAG = 117, /* htt_sta_ul_ofdma_stats_tlv */
HTT_STATS_VDEV_RTT_RESP_STATS_TAG = 118, /* htt_vdev_rtt_resp_stats_tlv */
HTT_STATS_PKTLOG_AND_HTT_RING_STATS_TAG = 119, /* htt_pktlog_and_htt_ring_stats_tlv */
@@ -732,6 +732,14 @@ typedef enum {
HTT_STATS_TX_PDEV_SAWF_RATE_STATS_TAG = 144, /* htt_tx_pdev_rate_stats_sawf_tlv */
HTT_STATS_STRM_GEN_MPDUS_TAG = 145, /* htt_stats_strm_gen_mpdus_tlv_t */
HTT_STATS_STRM_GEN_MPDUS_DETAILS_TAG = 146, /* htt_stats_strm_gen_mpdus_details_tlv_t */
HTT_STATS_TXBF_OFDMA_AX_NDPA_STATS_TAG = 147, /* htt_txbf_ofdma_ax_ndpa_stats_tlv */
HTT_STATS_TXBF_OFDMA_AX_NDP_STATS_TAG = 148, /* htt_txbf_ofdma_ax_ndp_stats_tlv */
HTT_STATS_TXBF_OFDMA_AX_BRP_STATS_TAG = 149, /* htt_txbf_ofdma_ax_brp_stats_tlv */
HTT_STATS_TXBF_OFDMA_AX_STEER_STATS_TAG = 150, /* htt_txbf_ofdma_ax_steer_stats_tlv */
HTT_STATS_TXBF_OFDMA_BE_NDPA_STATS_TAG = 151, /* htt_txbf_ofdma_be_ndpa_stats_tlv */
HTT_STATS_TXBF_OFDMA_BE_NDP_STATS_TAG = 152, /* htt_txbf_ofdma_be_ndp_stats_tlv */
HTT_STATS_TXBF_OFDMA_BE_BRP_STATS_TAG = 153, /* htt_txbf_ofdma_be_brp_stats_tlv */
HTT_STATS_TXBF_OFDMA_BE_STEER_STATS_TAG = 154, /* htt_txbf_ofdma_be_steer_stats_tlv */
HTT_STATS_MAX_TAG,

Melihat File

@@ -565,6 +565,25 @@ typedef enum {
HTT_RX_UL_MUMIMO_TRIGGER_STATS_UPLOAD_11BE,
} htt_rx_ul_mumimo_trigger_stats_upload_t;
/* htt_tx_pdev_txbf_ofdma_stats_upload_t
* Enumerations for specifying which stats to upload in response to
* HTT_DBG_EXT_STATS_TXBF_OFDMA.
*/
typedef enum {
/* upload 11ax TXBF OFDMA stats
*
* TLV: htt_tx_pdev_ax_txbf_ofdma_stats_t
*/
HTT_UPLOAD_AX_TXBF_OFDMA_STATS,
/*
* Upload 11be TXBF OFDMA stats
*
* TLV: htt_tx_pdev_be_txbf_ofdma_stats_t
*/
HTT_UPLOAD_BE_TXBF_OFDMA_STATS,
} htt_tx_pdev_txbf_ofdma_stats_upload_t;
#define HTT_STATS_MAX_STRING_SZ32 4
#define HTT_STATS_MACID_INVALID 0xff
#define HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS 10
@@ -2226,7 +2245,7 @@ typedef struct {
A_UINT32 be_ul_mumimo_trigger[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
} htt_tx_selfgen_be_stats_tlv;
typedef struct {
typedef struct { /* DEPRECATED */
htt_tlv_hdr_t tlv_hdr;
/** 11AX HE OFDMA NDPA frame queued to the HW */
A_UINT32 ax_ofdma_ndpa_queued[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
@@ -2238,7 +2257,7 @@ typedef struct {
A_UINT32 ax_ofdma_ndpa_err[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
} htt_txbf_ofdma_ndpa_stats_tlv;
typedef struct {
typedef struct { /* DEPRECATED */
htt_tlv_hdr_t tlv_hdr;
/** 11AX HE OFDMA NDP frame queued to the HW */
A_UINT32 ax_ofdma_ndp_queued[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
@@ -2250,7 +2269,7 @@ typedef struct {
A_UINT32 ax_ofdma_ndp_err[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
} htt_txbf_ofdma_ndp_stats_tlv;
typedef struct {
typedef struct { /* DEPRECATED */
htt_tlv_hdr_t tlv_hdr;
/** 11AX HE OFDMA MU BRPOLL frame queued to the HW */
A_UINT32 ax_ofdma_brpoll_queued[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
@@ -2267,7 +2286,7 @@ typedef struct {
A_UINT32 ax_ofdma_brp_err_num_cbf_rcvd[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS+1];
} htt_txbf_ofdma_brp_stats_tlv;
typedef struct {
typedef struct { /* DEPRECATED */
htt_tlv_hdr_t tlv_hdr;
/**
* 11AX HE OFDMA PPDUs that were sent over the air with steering
@@ -2290,23 +2309,295 @@ typedef struct {
A_UINT32 ax_ofdma_num_usrs_force_sound[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
} htt_txbf_ofdma_steer_stats_tlv;
/* Note:
* This struct htt_tx_pdev_txbf_ofdma_stats_t and all its constituent
* struct TLVs are deprecated, due to the need for restructuring these
* stats into a variable length array
*/
typedef struct { /* DEPRECATED */
htt_txbf_ofdma_ndpa_stats_tlv ofdma_ndpa_tlv;
htt_txbf_ofdma_ndp_stats_tlv ofdma_ndp_tlv;
htt_txbf_ofdma_brp_stats_tlv ofdma_brp_tlv;
htt_txbf_ofdma_steer_stats_tlv ofdma_steer_tlv;
} htt_tx_pdev_txbf_ofdma_stats_t;
typedef struct {
/** 11AX HE OFDMA NDPA frame queued to the HW */
A_UINT32 ax_ofdma_ndpa_queued;
/** 11AX HE OFDMA NDPA frame sent over the air */
A_UINT32 ax_ofdma_ndpa_tried;
/** 11AX HE OFDMA NDPA frame flushed by HW */
A_UINT32 ax_ofdma_ndpa_flushed;
/** 11AX HE OFDMA NDPA frame completed with error(s) */
A_UINT32 ax_ofdma_ndpa_err;
} htt_txbf_ofdma_ax_ndpa_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the ax_ndpa[]
* variable length array.
*/
A_UINT32 num_elems_ax_ndpa_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_ax_ndpa_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct def than what target
* had used.
*/
A_UINT32 arr_elem_size_ax_ndpa;
htt_txbf_ofdma_ax_ndpa_stats_elem_t ax_ndpa[1]; /* variable length */
} htt_txbf_ofdma_ax_ndpa_stats_tlv;
typedef struct {
/** 11AX HE OFDMA NDP frame queued to the HW */
A_UINT32 ax_ofdma_ndp_queued;
/** 11AX HE OFDMA NDPA frame sent over the air */
A_UINT32 ax_ofdma_ndp_tried;
/** 11AX HE OFDMA NDPA frame flushed by HW */
A_UINT32 ax_ofdma_ndp_flushed;
/** 11AX HE OFDMA NDPA frame completed with error(s) */
A_UINT32 ax_ofdma_ndp_err;
} htt_txbf_ofdma_ax_ndp_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the the ax_ndp[]
* variable length array.
*/
A_UINT32 num_elems_ax_ndp_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_ax_ndp_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct def than what target
* had used.
*/
A_UINT32 arr_elem_size_ax_ndp;
htt_txbf_ofdma_ax_ndp_stats_elem_t ax_ndp[1]; /* variable length */
} htt_txbf_ofdma_ax_ndp_stats_tlv;
typedef struct {
/** 11AX HE OFDMA MU BRPOLL frame queued to the HW */
A_UINT32 ax_ofdma_brpoll_queued;
/** 11AX HE OFDMA MU BRPOLL frame sent over the air */
A_UINT32 ax_ofdma_brpoll_tried;
/** 11AX HE OFDMA MU BRPOLL frame flushed by HW */
A_UINT32 ax_ofdma_brpoll_flushed;
/** 11AX HE OFDMA MU BRPOLL frame completed with error(s) */
A_UINT32 ax_ofdma_brp_err;
/**
* Number of CBF(s) received when 11AX HE OFDMA MU BRPOLL frame
* completed with error(s)
*/
A_UINT32 ax_ofdma_brp_err_num_cbf_rcvd;
} htt_txbf_ofdma_ax_brp_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the the ax_brp[]
* variable length array.
*/
A_UINT32 num_elems_ax_brp_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_ax_brp_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct than what target
* had used.
*/
A_UINT32 arr_elem_size_ax_brp;
htt_txbf_ofdma_ax_brp_stats_elem_t ax_brp[1]; /* variable length */
} htt_txbf_ofdma_ax_brp_stats_tlv;
typedef struct {
/**
* 11AX HE OFDMA PPDUs that were sent over the air with steering
* (TXBF + OFDMA)
*/
A_UINT32 ax_ofdma_num_ppdu_steer;
/** 11AX HE OFDMA PPDUs that were sent over the air in open loop */
A_UINT32 ax_ofdma_num_ppdu_ol;
/**
* 11AX HE OFDMA number of users for which CBF prefetch was initiated
* to PHY HW during TX
*/
A_UINT32 ax_ofdma_num_usrs_prefetch;
/**
* 11AX HE OFDMA number of users for which sounding was initiated
* during TX
*/
A_UINT32 ax_ofdma_num_usrs_sound;
/** 11AX HE OFDMA number of users for which sounding was forced during TX */
A_UINT32 ax_ofdma_num_usrs_force_sound;
} htt_txbf_ofdma_ax_steer_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the ax_steer[]
* variable length array.
*/
A_UINT32 num_elems_ax_steer_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_ax_steer_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct than what target
* had used.
*/
A_UINT32 arr_elem_size_ax_steer;
htt_txbf_ofdma_ax_steer_stats_elem_t ax_steer[1]; /* variable length */
} htt_txbf_ofdma_ax_steer_stats_tlv;
typedef struct {
/** 11BE EHT OFDMA NDPA frame queued to the HW */
A_UINT32 be_ofdma_ndpa_queued;
/** 11BE EHT OFDMA NDPA frame sent over the air */
A_UINT32 be_ofdma_ndpa_tried;
/** 11BE EHT OFDMA NDPA frame flushed by HW */
A_UINT32 be_ofdma_ndpa_flushed;
/** 11BE EHT OFDMA NDPA frame completed with error(s) */
A_UINT32 be_ofdma_ndpa_err;
} htt_txbf_ofdma_be_ndpa_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the be_ndpa[]
* variable length array.
*/
A_UINT32 num_elems_be_ndpa_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_be_ndpa_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct than what target
* had used.
*/
A_UINT32 arr_elem_size_be_ndpa;
htt_txbf_ofdma_be_ndpa_stats_elem_t be_ndpa[1]; /* variable length */
} htt_txbf_ofdma_be_ndpa_stats_tlv;
typedef struct {
/** 11BE EHT OFDMA NDP frame queued to the HW */
A_UINT32 be_ofdma_ndp_queued;
/** 11BE EHT OFDMA NDPA frame sent over the air */
A_UINT32 be_ofdma_ndp_tried;
/** 11BE EHT OFDMA NDPA frame flushed by HW */
A_UINT32 be_ofdma_ndp_flushed;
/** 11BE EHT OFDMA NDPA frame completed with error(s) */
A_UINT32 be_ofdma_ndp_err;
} htt_txbf_ofdma_be_ndp_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the be_ndp[]
* variable length array.
*/
A_UINT32 num_elems_be_ndp_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_be_ndp_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct than what target
* had used.
*/
A_UINT32 arr_elem_size_be_ndp;
htt_txbf_ofdma_be_ndp_stats_elem_t be_ndp[1]; /* variable length */
} htt_txbf_ofdma_be_ndp_stats_tlv;
typedef struct {
/** 11BE EHT OFDMA MU BRPOLL frame queued to the HW */
A_UINT32 be_ofdma_brpoll_queued;
/** 11BE EHT OFDMA MU BRPOLL frame sent over the air */
A_UINT32 be_ofdma_brpoll_tried;
/** 11BE EHT OFDMA MU BRPOLL frame flushed by HW */
A_UINT32 be_ofdma_brpoll_flushed;
/** 11BE EHT OFDMA MU BRPOLL frame completed with error(s) */
A_UINT32 be_ofdma_brp_err;
/**
* Number of CBF(s) received when 11BE EHT OFDMA MU BRPOLL frame
* completed with error(s)
*/
A_UINT32 be_ofdma_brp_err_num_cbf_rcvd;
} htt_txbf_ofdma_be_brp_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the be_brp[]
* variable length array.
*/
A_UINT32 num_elems_be_brp_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_be_brp_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct than what target
* had used
*/
A_UINT32 arr_elem_size_be_brp;
htt_txbf_ofdma_be_brp_stats_elem_t be_brp[1]; /* variable length */
} htt_txbf_ofdma_be_brp_stats_tlv;
typedef struct {
/**
* 11BE EHT OFDMA PPDUs that were sent over the air with steering
* (TXBF + OFDMA)
*/
A_UINT32 be_ofdma_num_ppdu_steer;
/** 11BE EHT OFDMA PPDUs that were sent over the air in open loop */
A_UINT32 be_ofdma_num_ppdu_ol;
/**
* 11BE EHT OFDMA number of users for which CBF prefetch was initiated
* to PHY HW during TX
*/
A_UINT32 be_ofdma_num_usrs_prefetch;
/**
* 11BE EHT OFDMA number of users for which sounding was initiated
* during TX
*/
A_UINT32 be_ofdma_num_usrs_sound;
/**
* 11BE EHT OFDMA number of users for which sounding was forced during TX
*/
A_UINT32 be_ofdma_num_usrs_force_sound;
} htt_txbf_ofdma_be_steer_stats_elem_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/**
* This field is populated with the num of elems in the be_steer[]
* variable length array.
*/
A_UINT32 num_elems_be_steer_arr;
/**
* This field will be filled by target with value of
* sizeof(htt_txbf_ofdma_be_steer_stats_elem_t).
* This is for allowing host to infer how much data target has provided,
* even if it using different version of the struct than what target
* had used.
*/
A_UINT32 arr_elem_size_be_steer;
htt_txbf_ofdma_be_steer_stats_elem_t be_steer[1]; /* variable length */
} htt_txbf_ofdma_be_steer_stats_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_TXBF_OFDMA
* TLV_TAGS:
* - HTT_STATS_TXBF_OFDMA_NDPA_STATS_TAG
* - HTT_STATS_TXBF_OFDMA_NDP_STATS_TAG
* - HTT_STATS_TXBF_OFDMA_BRP_STATS_TAG
* - HTT_STATS_TXBF_OFDMA_STEER_STATS_TAG
* - HTT_STATS_TXBF_OFDMA_BE_NDPA_STATS_TAG
* - HTT_STATS_TXBF_OFDMA_BE_NDP_STATS_TAG
* - HTT_STATS_TXBF_OFDMA_BE_BRP_STATS_TAG
* - HTT_STATS_TXBF_OFDMA_BE_STEER_STATS_TAG
*/
/* NOTE:
* This structure is for documentation, and cannot be safely used directly.
* Instead, use the constituent TLV structures to fill/parse.
*/
typedef struct {
htt_txbf_ofdma_ndpa_stats_tlv ofdma_ndpa_tlv;
htt_txbf_ofdma_ndp_stats_tlv ofdma_ndp_tlv;
htt_txbf_ofdma_brp_stats_tlv ofdma_brp_tlv;
htt_txbf_ofdma_steer_stats_tlv ofdma_steer_tlv;
} htt_tx_pdev_txbf_ofdma_stats_t;
typedef struct {
htt_tlv_hdr_t tlv_hdr;