summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fw/htt_stats.h1948
1 files changed, 968 insertions, 980 deletions
diff --git a/fw/htt_stats.h b/fw/htt_stats.h
index 1ca5be24a862..0c800746c5d0 100644
--- a/fw/htt_stats.h
+++ b/fw/htt_stats.h
@@ -35,7 +35,6 @@
* Max supported stats :- 256.
*/
enum htt_dbg_ext_stats_type {
-
/* HTT_DBG_EXT_STATS_RESET
* PARAM:
* - config_param0 : start_offset (stats type)
@@ -45,7 +44,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - No response sent.
*/
- HTT_DBG_EXT_STATS_RESET = 0,
+ HTT_DBG_EXT_STATS_RESET = 0,
/* HTT_DBG_EXT_STATS_PDEV_TX
* PARAMS:
@@ -53,7 +52,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_pdev_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_TX = 1,
+ HTT_DBG_EXT_STATS_PDEV_TX = 1,
/* HTT_DBG_EXT_STATS_PDEV_RX
* PARAMS:
@@ -61,7 +60,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_rx_pdev_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_RX = 2,
+ HTT_DBG_EXT_STATS_PDEV_RX = 2,
/* HTT_DBG_EXT_STATS_PDEV_TX_HWQ
* PARAMS:
@@ -69,7 +68,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_hwq_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_TX_HWQ = 3,
+ HTT_DBG_EXT_STATS_PDEV_TX_HWQ = 3,
/* HTT_DBG_EXT_STATS_PDEV_TX_SCHED
* PARAMS:
@@ -77,7 +76,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_stats_tx_sched_t
*/
- HTT_DBG_EXT_STATS_PDEV_TX_SCHED = 4,
+ HTT_DBG_EXT_STATS_PDEV_TX_SCHED = 4,
/* HTT_DBG_EXT_STATS_PDEV_ERROR
* PARAMS:
@@ -85,7 +84,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_hw_err_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_ERROR = 5,
+ HTT_DBG_EXT_STATS_PDEV_ERROR = 5,
/* HTT_DBG_EXT_STATS_PDEV_TQM
* PARAMS:
@@ -93,7 +92,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_tqm_pdev_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_TQM = 6,
+ HTT_DBG_EXT_STATS_PDEV_TQM = 6,
/* HTT_DBG_EXT_STATS_TQM_CMDQ
* PARAMS:
@@ -103,7 +102,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_tqm_cmdq_stats_t
*/
- HTT_DBG_EXT_STATS_TQM_CMDQ = 7,
+ HTT_DBG_EXT_STATS_TQM_CMDQ = 7,
/* HTT_DBG_EXT_STATS_TX_DE_INFO
* PARAMS:
@@ -111,7 +110,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_de_stats_t
*/
- HTT_DBG_EXT_STATS_TX_DE_INFO = 8,
+ HTT_DBG_EXT_STATS_TX_DE_INFO = 8,
/* HTT_DBG_EXT_STATS_PDEV_TX_RATE
* PARAMS:
@@ -119,7 +118,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_pdev_rate_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_TX_RATE = 9,
+ HTT_DBG_EXT_STATS_PDEV_TX_RATE = 9,
/* HTT_DBG_EXT_STATS_PDEV_RX_RATE
* PARAMS:
@@ -127,7 +126,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_rx_pdev_rate_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_RX_RATE = 10,
+ HTT_DBG_EXT_STATS_PDEV_RX_RATE = 10,
/* HTT_DBG_EXT_STATS_PEER_INFO
* PARAMS:
@@ -150,7 +149,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_peer_stats_t
*/
- HTT_DBG_EXT_STATS_PEER_INFO = 11,
+ HTT_DBG_EXT_STATS_PEER_INFO = 11,
/* HTT_DBG_EXT_STATS_TX_SELFGEN_INFO
* PARAMS:
@@ -158,7 +157,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_pdev_selfgen_stats_t
*/
- HTT_DBG_EXT_STATS_TX_SELFGEN_INFO = 12,
+ HTT_DBG_EXT_STATS_TX_SELFGEN_INFO = 12,
/* HTT_DBG_EXT_STATS_TX_MU_HWQ
* PARAMS:
@@ -166,7 +165,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_hwq_mu_mimo_stats_t
*/
- HTT_DBG_EXT_STATS_TX_MU_HWQ = 13,
+ HTT_DBG_EXT_STATS_TX_MU_HWQ = 13,
/* HTT_DBG_EXT_STATS_RING_IF_INFO
* PARAMS:
@@ -176,7 +175,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_ring_if_stats_t
*/
- HTT_DBG_EXT_STATS_RING_IF_INFO = 14,
+ HTT_DBG_EXT_STATS_RING_IF_INFO = 14,
/* HTT_DBG_EXT_STATS_SRNG_INFO
* PARAMS:
@@ -187,7 +186,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_sring_stats_t
*/
- HTT_DBG_EXT_STATS_SRNG_INFO = 15,
+ HTT_DBG_EXT_STATS_SRNG_INFO = 15,
/* HTT_DBG_EXT_STATS_SFM_INFO
* PARAMS:
@@ -195,7 +194,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_sfm_stats_t
*/
- HTT_DBG_EXT_STATS_SFM_INFO = 16,
+ HTT_DBG_EXT_STATS_SFM_INFO = 16,
/* HTT_DBG_EXT_STATS_PDEV_TX_MU
* PARAMS:
@@ -203,7 +202,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_pdev_mu_mimo_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_TX_MU = 17,
+ HTT_DBG_EXT_STATS_PDEV_TX_MU = 17,
/* HTT_DBG_EXT_STATS_ACTIVE_PEERS_LIST
* PARAMS:
@@ -214,7 +213,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_active_peer_details_list_t
*/
- HTT_DBG_EXT_STATS_ACTIVE_PEERS_LIST = 18,
+ HTT_DBG_EXT_STATS_ACTIVE_PEERS_LIST = 18,
/* HTT_DBG_EXT_STATS_PDEV_CCA_STATS
* PARAMS:
@@ -225,7 +224,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_pdev_cca_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_CCA_STATS = 19,
+ HTT_DBG_EXT_STATS_PDEV_CCA_STATS = 19,
/* HTT_DBG_EXT_STATS_TWT_SESSIONS
* PARAMS:
@@ -234,7 +233,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_pdev_twt_sessions_stats_t
*/
- HTT_DBG_EXT_STATS_TWT_SESSIONS = 20,
+ HTT_DBG_EXT_STATS_TWT_SESSIONS = 20,
/* HTT_DBG_EXT_STATS_REO_CNTS
* PARAMS:
@@ -243,7 +242,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_soc_reo_resource_stats_t
*/
- HTT_DBG_EXT_STATS_REO_RESOURCE_STATS = 21,
+ HTT_DBG_EXT_STATS_REO_RESOURCE_STATS = 21,
/* HTT_DBG_EXT_STATS_TX_SOUNDING_INFO
* PARAMS:
@@ -257,7 +256,7 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_tx_sounding_stats_t
*/
- HTT_DBG_EXT_STATS_TX_SOUNDING_INFO = 22,
+ HTT_DBG_EXT_STATS_TX_SOUNDING_INFO = 22,
/* HTT_DBG_EXT_STATS_PDEV_OBSS_PD_STATS
* PARAMS:
@@ -266,131 +265,129 @@ enum htt_dbg_ext_stats_type {
* RESP MSG:
* - htt_pdev_obss_pd_stats_t
*/
- HTT_DBG_EXT_STATS_PDEV_OBSS_PD_STATS = 23,
-
+ HTT_DBG_EXT_STATS_PDEV_OBSS_PD_STATS = 23,
/* keep this last */
- HTT_DBG_NUM_EXT_STATS = 256,
+ HTT_DBG_NUM_EXT_STATS = 256,
};
typedef enum {
- HTT_STATS_TX_PDEV_CMN_TAG = 0, /* htt_tx_pdev_stats_cmn_tlv */
- HTT_STATS_TX_PDEV_UNDERRUN_TAG = 1, /* htt_tx_pdev_stats_urrn_tlv_v */
- HTT_STATS_TX_PDEV_SIFS_TAG = 2, /* htt_tx_pdev_stats_sifs_tlv_v */
- HTT_STATS_TX_PDEV_FLUSH_TAG = 3, /* htt_tx_pdev_stats_flush_tlv_v */
- HTT_STATS_TX_PDEV_PHY_ERR_TAG = 4, /* htt_tx_pdev_stats_phy_err_tlv_v */
- HTT_STATS_STRING_TAG = 5, /* htt_stats_string_tlv */
- HTT_STATS_TX_HWQ_CMN_TAG = 6, /* htt_tx_hwq_stats_cmn_tlv */
- HTT_STATS_TX_HWQ_DIFS_LATENCY_TAG = 7, /* htt_tx_hwq_difs_latency_stats_tlv_v */
- HTT_STATS_TX_HWQ_CMD_RESULT_TAG = 8, /* htt_tx_hwq_cmd_result_stats_tlv_v */
- HTT_STATS_TX_HWQ_CMD_STALL_TAG = 9, /* htt_tx_hwq_cmd_stall_stats_tlv_v */
- HTT_STATS_TX_HWQ_FES_STATUS_TAG = 10, /* htt_tx_hwq_fes_result_stats_tlv_v */
- HTT_STATS_TX_TQM_GEN_MPDU_TAG = 11, /* htt_tx_tqm_gen_mpdu_stats_tlv_v */
- HTT_STATS_TX_TQM_LIST_MPDU_TAG = 12, /* htt_tx_tqm_list_mpdu_stats_tlv_v */
- HTT_STATS_TX_TQM_LIST_MPDU_CNT_TAG = 13, /* htt_tx_tqm_list_mpdu_cnt_tlv_v */
- HTT_STATS_TX_TQM_CMN_TAG = 14, /* htt_tx_tqm_cmn_stats_tlv */
- HTT_STATS_TX_TQM_PDEV_TAG = 15, /* htt_tx_tqm_pdev_stats_tlv_v */
- HTT_STATS_TX_TQM_CMDQ_STATUS_TAG = 16, /* htt_tx_tqm_cmdq_status_tlv */
- HTT_STATS_TX_DE_EAPOL_PACKETS_TAG = 17, /* htt_tx_de_eapol_packets_stats_tlv */
- HTT_STATS_TX_DE_CLASSIFY_FAILED_TAG = 18, /* htt_tx_de_classify_failed_stats_tlv */
- HTT_STATS_TX_DE_CLASSIFY_STATS_TAG = 19, /* htt_tx_de_classify_stats_tlv */
- HTT_STATS_TX_DE_CLASSIFY_STATUS_TAG = 20, /* htt_tx_de_classify_status_stats_tlv */
- HTT_STATS_TX_DE_ENQUEUE_PACKETS_TAG = 21, /* htt_tx_de_enqueue_packets_stats_tlv */
- HTT_STATS_TX_DE_ENQUEUE_DISCARD_TAG = 22, /* htt_tx_de_enqueue_discard_stats_tlv */
- HTT_STATS_TX_DE_CMN_TAG = 23, /* htt_tx_de_cmn_stats_tlv */
- HTT_STATS_RING_IF_TAG = 24, /* htt_ring_if_stats_tlv */
- HTT_STATS_TX_PDEV_MU_MIMO_STATS_TAG = 25, /* htt_tx_pdev_mu_mimo_sch_stats_tlv */
- HTT_STATS_SFM_CMN_TAG = 26, /* htt_sfm_cmn_tlv */
- HTT_STATS_SRING_STATS_TAG = 27, /* htt_sring_stats_tlv */
- HTT_STATS_RX_PDEV_FW_STATS_TAG = 28, /* htt_rx_pdev_fw_stats_tlv */
- HTT_STATS_RX_PDEV_FW_RING_MPDU_ERR_TAG = 29, /* htt_rx_pdev_fw_ring_mpdu_err_tlv_v */
- HTT_STATS_RX_PDEV_FW_MPDU_DROP_TAG = 30, /* htt_rx_pdev_fw_mpdu_drop_tlv_v */
- HTT_STATS_RX_SOC_FW_STATS_TAG = 31, /* htt_rx_soc_fw_stats_tlv */
- HTT_STATS_RX_SOC_FW_REFILL_RING_EMPTY_TAG = 32, /* htt_rx_soc_fw_refill_ring_empty_tlv_v */
- HTT_STATS_RX_SOC_FW_REFILL_RING_NUM_REFILL_TAG = 33, /* htt_rx_soc_fw_refill_ring_num_refill_tlv_v */
- HTT_STATS_TX_PDEV_RATE_STATS_TAG = 34, /* htt_tx_pdev_rate_stats_tlv */
- HTT_STATS_RX_PDEV_RATE_STATS_TAG = 35, /* htt_rx_pdev_rate_stats_tlv */
- HTT_STATS_TX_PDEV_SCHEDULER_TXQ_STATS_TAG = 36, /* htt_tx_pdev_stats_sched_per_txq_tlv */
- HTT_STATS_TX_SCHED_CMN_TAG = 37, /* htt_stats_tx_sched_cmn_tlv */
- HTT_STATS_TX_PDEV_MUMIMO_MPDU_STATS_TAG = 38, /* htt_tx_pdev_mu_mimo_mpdu_stats_tlv */
- HTT_STATS_SCHED_TXQ_CMD_POSTED_TAG = 39, /* htt_sched_txq_cmd_posted_tlv_v */
- HTT_STATS_RING_IF_CMN_TAG = 40, /* htt_ring_if_cmn_tlv */
- HTT_STATS_SFM_CLIENT_USER_TAG = 41, /* htt_sfm_client_user_tlv_v */
- HTT_STATS_SFM_CLIENT_TAG = 42, /* htt_sfm_client_tlv */
- HTT_STATS_TX_TQM_ERROR_STATS_TAG = 43, /* htt_tx_tqm_error_stats_tlv */
- HTT_STATS_SCHED_TXQ_CMD_REAPED_TAG = 44, /* htt_sched_txq_cmd_reaped_tlv_v */
- HTT_STATS_SRING_CMN_TAG = 45, /* htt_sring_cmn_tlv */
- HTT_STATS_TX_SELFGEN_AC_ERR_STATS_TAG = 46, /* htt_tx_selfgen_ac_err_stats_tlv */
- HTT_STATS_TX_SELFGEN_CMN_STATS_TAG = 47, /* htt_tx_selfgen_cmn_stats_tlv */
- HTT_STATS_TX_SELFGEN_AC_STATS_TAG = 48, /* htt_tx_selfgen_ac_stats_tlv */
- HTT_STATS_TX_SELFGEN_AX_STATS_TAG = 49, /* htt_tx_selfgen_ax_stats_tlv */
- HTT_STATS_TX_SELFGEN_AX_ERR_STATS_TAG = 50, /* htt_tx_selfgen_ax_err_stats_tlv */
- HTT_STATS_TX_HWQ_MUMIMO_SCH_STATS_TAG = 51, /* htt_tx_hwq_mu_mimo_sch_stats_tlv */
- HTT_STATS_TX_HWQ_MUMIMO_MPDU_STATS_TAG = 52, /* htt_tx_hwq_mu_mimo_mpdu_stats_tlv */
- HTT_STATS_TX_HWQ_MUMIMO_CMN_STATS_TAG = 53, /* htt_tx_hwq_mu_mimo_cmn_stats_tlv */
- HTT_STATS_HW_INTR_MISC_TAG = 54, /* htt_hw_stats_intr_misc_tlv */
- HTT_STATS_HW_WD_TIMEOUT_TAG = 55, /* htt_hw_stats_wd_timeout_tlv */
- HTT_STATS_HW_PDEV_ERRS_TAG = 56, /* htt_hw_stats_pdev_errs_tlv */
- HTT_STATS_COUNTER_NAME_TAG = 57, /* htt_counter_tlv */
- HTT_STATS_TX_TID_DETAILS_TAG = 58, /* htt_tx_tid_stats_tlv */
- HTT_STATS_RX_TID_DETAILS_TAG = 59, /* htt_rx_tid_stats_tlv */
- HTT_STATS_PEER_STATS_CMN_TAG = 60, /* htt_peer_stats_cmn_tlv */
- HTT_STATS_PEER_DETAILS_TAG = 61, /* htt_peer_details_tlv */
- HTT_STATS_PEER_TX_RATE_STATS_TAG = 62, /* htt_tx_peer_rate_stats_tlv */
- HTT_STATS_PEER_RX_RATE_STATS_TAG = 63, /* htt_rx_peer_rate_stats_tlv */
- HTT_STATS_PEER_MSDU_FLOWQ_TAG = 64, /* htt_msdu_flow_stats_tlv */
- HTT_STATS_TX_DE_COMPL_STATS_TAG = 65, /* htt_tx_de_compl_stats_tlv */
- HTT_STATS_WHAL_TX_TAG = 66, /* htt_hw_stats_whal_tx_tlv */
- HTT_STATS_TX_PDEV_SIFS_HIST_TAG = 67, /* htt_tx_pdev_stats_sifs_hist_tlv_v */
- HTT_STATS_RX_PDEV_FW_STATS_PHY_ERR_TAG = 68, /* htt_rx_pdev_fw_stats_phy_err_tlv */
- HTT_STATS_TX_TID_DETAILS_V1_TAG = 69, /* htt_tx_tid_stats_v1_tlv */
- HTT_STATS_PDEV_CCA_1SEC_HIST_TAG = 70, /* htt_pdev_cca_stats_hist_tlv (for 1 sec interval stats) */
- HTT_STATS_PDEV_CCA_100MSEC_HIST_TAG = 71, /* htt_pdev_cca_stats_hist_tlv (for 100 msec interval stats) */
- HTT_STATS_PDEV_CCA_STAT_CUMULATIVE_TAG = 72, /* htt_pdev_stats_cca_stats_tlv */
- HTT_STATS_PDEV_CCA_COUNTERS_TAG = 73, /* htt_pdev_stats_cca_counters_tlv */
- HTT_STATS_TX_PDEV_MPDU_STATS_TAG = 74, /* htt_tx_pdev_mpdu_stats_tlv */
- HTT_STATS_PDEV_TWT_SESSIONS_TAG = 75, /* htt_pdev_stats_twt_sessions_tlv */
- HTT_STATS_PDEV_TWT_SESSION_TAG = 76, /* htt_pdev_stats_twt_session_tlv */
- HTT_STATS_RX_REFILL_RXDMA_ERR_TAG = 77, /* htt_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v */
- HTT_STATS_RX_REFILL_REO_ERR_TAG = 78, /* htt_rx_soc_fw_refill_ring_num_reo_err_tlv_v */
- HTT_STATS_RX_REO_RESOURCE_STATS_TAG = 79, /* htt_rx_reo_debug_stats_tlv_v */
- HTT_STATS_TX_SOUNDING_STATS_TAG = 80, /* htt_tx_sounding_stats_tlv */
- HTT_STATS_TX_PDEV_TX_PPDU_STATS_TAG = 81, /* htt_tx_pdev_stats_tx_ppdu_stats_tlv_v */
- HTT_STATS_TX_PDEV_TRIED_MPDU_CNT_HIST_TAG = 82, /* htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v */
- HTT_STATS_TX_HWQ_TRIED_MPDU_CNT_HIST_TAG = 83, /* htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v */
- HTT_STATS_TX_HWQ_TXOP_USED_CNT_HIST_TAG = 84, /* htt_tx_hwq_txop_used_cnt_hist_tlv_v */
- HTT_STATS_TX_DE_FW2WBM_RING_FULL_HIST_TAG = 85, /* htt_tx_de_fw2wbm_ring_full_hist_tlv */
- HTT_STATS_SCHED_TXQ_SCHED_ORDER_SU_TAG = 86, /* htt_sched_txq_sched_order_su_tlv */
- HTT_STATS_SCHED_TXQ_SCHED_INELIGIBILITY_TAG = 87, /* htt_sched_txq_sched_eligibility_tlv */
- HTT_STATS_PDEV_OBSS_PD_TAG = 88, /* htt_pdev_obss_pd_stats_tlv */
+ HTT_STATS_TX_PDEV_CMN_TAG = 0, /* htt_tx_pdev_stats_cmn_tlv */
+ HTT_STATS_TX_PDEV_UNDERRUN_TAG = 1, /* htt_tx_pdev_stats_urrn_tlv_v */
+ HTT_STATS_TX_PDEV_SIFS_TAG = 2, /* htt_tx_pdev_stats_sifs_tlv_v */
+ HTT_STATS_TX_PDEV_FLUSH_TAG = 3, /* htt_tx_pdev_stats_flush_tlv_v */
+ HTT_STATS_TX_PDEV_PHY_ERR_TAG = 4, /* htt_tx_pdev_stats_phy_err_tlv_v */
+ HTT_STATS_STRING_TAG = 5, /* htt_stats_string_tlv */
+ HTT_STATS_TX_HWQ_CMN_TAG = 6, /* htt_tx_hwq_stats_cmn_tlv */
+ HTT_STATS_TX_HWQ_DIFS_LATENCY_TAG = 7, /* htt_tx_hwq_difs_latency_stats_tlv_v */
+ HTT_STATS_TX_HWQ_CMD_RESULT_TAG = 8, /* htt_tx_hwq_cmd_result_stats_tlv_v */
+ HTT_STATS_TX_HWQ_CMD_STALL_TAG = 9, /* htt_tx_hwq_cmd_stall_stats_tlv_v */
+ HTT_STATS_TX_HWQ_FES_STATUS_TAG = 10, /* htt_tx_hwq_fes_result_stats_tlv_v */
+ HTT_STATS_TX_TQM_GEN_MPDU_TAG = 11, /* htt_tx_tqm_gen_mpdu_stats_tlv_v */
+ HTT_STATS_TX_TQM_LIST_MPDU_TAG = 12, /* htt_tx_tqm_list_mpdu_stats_tlv_v */
+ HTT_STATS_TX_TQM_LIST_MPDU_CNT_TAG = 13, /* htt_tx_tqm_list_mpdu_cnt_tlv_v */
+ HTT_STATS_TX_TQM_CMN_TAG = 14, /* htt_tx_tqm_cmn_stats_tlv */
+ HTT_STATS_TX_TQM_PDEV_TAG = 15, /* htt_tx_tqm_pdev_stats_tlv_v */
+ HTT_STATS_TX_TQM_CMDQ_STATUS_TAG = 16, /* htt_tx_tqm_cmdq_status_tlv */
+ HTT_STATS_TX_DE_EAPOL_PACKETS_TAG = 17, /* htt_tx_de_eapol_packets_stats_tlv */
+ HTT_STATS_TX_DE_CLASSIFY_FAILED_TAG = 18, /* htt_tx_de_classify_failed_stats_tlv */
+ HTT_STATS_TX_DE_CLASSIFY_STATS_TAG = 19, /* htt_tx_de_classify_stats_tlv */
+ HTT_STATS_TX_DE_CLASSIFY_STATUS_TAG = 20, /* htt_tx_de_classify_status_stats_tlv */
+ HTT_STATS_TX_DE_ENQUEUE_PACKETS_TAG = 21, /* htt_tx_de_enqueue_packets_stats_tlv */
+ HTT_STATS_TX_DE_ENQUEUE_DISCARD_TAG = 22, /* htt_tx_de_enqueue_discard_stats_tlv */
+ HTT_STATS_TX_DE_CMN_TAG = 23, /* htt_tx_de_cmn_stats_tlv */
+ HTT_STATS_RING_IF_TAG = 24, /* htt_ring_if_stats_tlv */
+ HTT_STATS_TX_PDEV_MU_MIMO_STATS_TAG = 25, /* htt_tx_pdev_mu_mimo_sch_stats_tlv */
+ HTT_STATS_SFM_CMN_TAG = 26, /* htt_sfm_cmn_tlv */
+ HTT_STATS_SRING_STATS_TAG = 27, /* htt_sring_stats_tlv */
+ HTT_STATS_RX_PDEV_FW_STATS_TAG = 28, /* htt_rx_pdev_fw_stats_tlv */
+ HTT_STATS_RX_PDEV_FW_RING_MPDU_ERR_TAG = 29, /* htt_rx_pdev_fw_ring_mpdu_err_tlv_v */
+ HTT_STATS_RX_PDEV_FW_MPDU_DROP_TAG = 30, /* htt_rx_pdev_fw_mpdu_drop_tlv_v */
+ HTT_STATS_RX_SOC_FW_STATS_TAG = 31, /* htt_rx_soc_fw_stats_tlv */
+ HTT_STATS_RX_SOC_FW_REFILL_RING_EMPTY_TAG = 32, /* htt_rx_soc_fw_refill_ring_empty_tlv_v */
+ HTT_STATS_RX_SOC_FW_REFILL_RING_NUM_REFILL_TAG = 33, /* htt_rx_soc_fw_refill_ring_num_refill_tlv_v */
+ HTT_STATS_TX_PDEV_RATE_STATS_TAG = 34, /* htt_tx_pdev_rate_stats_tlv */
+ HTT_STATS_RX_PDEV_RATE_STATS_TAG = 35, /* htt_rx_pdev_rate_stats_tlv */
+ HTT_STATS_TX_PDEV_SCHEDULER_TXQ_STATS_TAG = 36, /* htt_tx_pdev_stats_sched_per_txq_tlv */
+ HTT_STATS_TX_SCHED_CMN_TAG = 37, /* htt_stats_tx_sched_cmn_tlv */
+ HTT_STATS_TX_PDEV_MUMIMO_MPDU_STATS_TAG = 38, /* htt_tx_pdev_mu_mimo_mpdu_stats_tlv */
+ HTT_STATS_SCHED_TXQ_CMD_POSTED_TAG = 39, /* htt_sched_txq_cmd_posted_tlv_v */
+ HTT_STATS_RING_IF_CMN_TAG = 40, /* htt_ring_if_cmn_tlv */
+ HTT_STATS_SFM_CLIENT_USER_TAG = 41, /* htt_sfm_client_user_tlv_v */
+ HTT_STATS_SFM_CLIENT_TAG = 42, /* htt_sfm_client_tlv */
+ HTT_STATS_TX_TQM_ERROR_STATS_TAG = 43, /* htt_tx_tqm_error_stats_tlv */
+ HTT_STATS_SCHED_TXQ_CMD_REAPED_TAG = 44, /* htt_sched_txq_cmd_reaped_tlv_v */
+ HTT_STATS_SRING_CMN_TAG = 45, /* htt_sring_cmn_tlv */
+ HTT_STATS_TX_SELFGEN_AC_ERR_STATS_TAG = 46, /* htt_tx_selfgen_ac_err_stats_tlv */
+ HTT_STATS_TX_SELFGEN_CMN_STATS_TAG = 47, /* htt_tx_selfgen_cmn_stats_tlv */
+ HTT_STATS_TX_SELFGEN_AC_STATS_TAG = 48, /* htt_tx_selfgen_ac_stats_tlv */
+ HTT_STATS_TX_SELFGEN_AX_STATS_TAG = 49, /* htt_tx_selfgen_ax_stats_tlv */
+ HTT_STATS_TX_SELFGEN_AX_ERR_STATS_TAG = 50, /* htt_tx_selfgen_ax_err_stats_tlv */
+ HTT_STATS_TX_HWQ_MUMIMO_SCH_STATS_TAG = 51, /* htt_tx_hwq_mu_mimo_sch_stats_tlv */
+ HTT_STATS_TX_HWQ_MUMIMO_MPDU_STATS_TAG = 52, /* htt_tx_hwq_mu_mimo_mpdu_stats_tlv */
+ HTT_STATS_TX_HWQ_MUMIMO_CMN_STATS_TAG = 53, /* htt_tx_hwq_mu_mimo_cmn_stats_tlv */
+ HTT_STATS_HW_INTR_MISC_TAG = 54, /* htt_hw_stats_intr_misc_tlv */
+ HTT_STATS_HW_WD_TIMEOUT_TAG = 55, /* htt_hw_stats_wd_timeout_tlv */
+ HTT_STATS_HW_PDEV_ERRS_TAG = 56, /* htt_hw_stats_pdev_errs_tlv */
+ HTT_STATS_COUNTER_NAME_TAG = 57, /* htt_counter_tlv */
+ HTT_STATS_TX_TID_DETAILS_TAG = 58, /* htt_tx_tid_stats_tlv */
+ HTT_STATS_RX_TID_DETAILS_TAG = 59, /* htt_rx_tid_stats_tlv */
+ HTT_STATS_PEER_STATS_CMN_TAG = 60, /* htt_peer_stats_cmn_tlv */
+ HTT_STATS_PEER_DETAILS_TAG = 61, /* htt_peer_details_tlv */
+ HTT_STATS_PEER_TX_RATE_STATS_TAG = 62, /* htt_tx_peer_rate_stats_tlv */
+ HTT_STATS_PEER_RX_RATE_STATS_TAG = 63, /* htt_rx_peer_rate_stats_tlv */
+ HTT_STATS_PEER_MSDU_FLOWQ_TAG = 64, /* htt_msdu_flow_stats_tlv */
+ HTT_STATS_TX_DE_COMPL_STATS_TAG = 65, /* htt_tx_de_compl_stats_tlv */
+ HTT_STATS_WHAL_TX_TAG = 66, /* htt_hw_stats_whal_tx_tlv */
+ HTT_STATS_TX_PDEV_SIFS_HIST_TAG = 67, /* htt_tx_pdev_stats_sifs_hist_tlv_v */
+ HTT_STATS_RX_PDEV_FW_STATS_PHY_ERR_TAG = 68, /* htt_rx_pdev_fw_stats_phy_err_tlv */
+ HTT_STATS_TX_TID_DETAILS_V1_TAG = 69, /* htt_tx_tid_stats_v1_tlv */
+ HTT_STATS_PDEV_CCA_1SEC_HIST_TAG = 70, /* htt_pdev_cca_stats_hist_tlv (for 1 sec interval stats) */
+ HTT_STATS_PDEV_CCA_100MSEC_HIST_TAG = 71, /* htt_pdev_cca_stats_hist_tlv (for 100 msec interval stats) */
+ HTT_STATS_PDEV_CCA_STAT_CUMULATIVE_TAG = 72, /* htt_pdev_stats_cca_stats_tlv */
+ HTT_STATS_PDEV_CCA_COUNTERS_TAG = 73, /* htt_pdev_stats_cca_counters_tlv */
+ HTT_STATS_TX_PDEV_MPDU_STATS_TAG = 74, /* htt_tx_pdev_mpdu_stats_tlv */
+ HTT_STATS_PDEV_TWT_SESSIONS_TAG = 75, /* htt_pdev_stats_twt_sessions_tlv */
+ HTT_STATS_PDEV_TWT_SESSION_TAG = 76, /* htt_pdev_stats_twt_session_tlv */
+ HTT_STATS_RX_REFILL_RXDMA_ERR_TAG = 77, /* htt_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v */
+ HTT_STATS_RX_REFILL_REO_ERR_TAG = 78, /* htt_rx_soc_fw_refill_ring_num_reo_err_tlv_v */
+ HTT_STATS_RX_REO_RESOURCE_STATS_TAG = 79, /* htt_rx_reo_debug_stats_tlv_v */
+ HTT_STATS_TX_SOUNDING_STATS_TAG = 80, /* htt_tx_sounding_stats_tlv */
+ HTT_STATS_TX_PDEV_TX_PPDU_STATS_TAG = 81, /* htt_tx_pdev_stats_tx_ppdu_stats_tlv_v */
+ HTT_STATS_TX_PDEV_TRIED_MPDU_CNT_HIST_TAG = 82, /* htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v */
+ HTT_STATS_TX_HWQ_TRIED_MPDU_CNT_HIST_TAG = 83, /* htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v */
+ HTT_STATS_TX_HWQ_TXOP_USED_CNT_HIST_TAG = 84, /* htt_tx_hwq_txop_used_cnt_hist_tlv_v */
+ HTT_STATS_TX_DE_FW2WBM_RING_FULL_HIST_TAG = 85, /* htt_tx_de_fw2wbm_ring_full_hist_tlv */
+ HTT_STATS_SCHED_TXQ_SCHED_ORDER_SU_TAG = 86, /* htt_sched_txq_sched_order_su_tlv */
+ HTT_STATS_SCHED_TXQ_SCHED_INELIGIBILITY_TAG = 87, /* htt_sched_txq_sched_eligibility_tlv */
+ HTT_STATS_PDEV_OBSS_PD_TAG = 88, /* htt_pdev_obss_pd_stats_tlv */
HTT_STATS_MAX_TAG,
} htt_tlv_tag_t;
-
-#define HTT_STATS_TLV_TAG_M 0x00000fff
-#define HTT_STATS_TLV_TAG_S 0
-#define HTT_STATS_TLV_LENGTH_M 0x00fff000
-#define HTT_STATS_TLV_LENGTH_S 12
+#define HTT_STATS_TLV_TAG_M 0x00000fff
+#define HTT_STATS_TLV_TAG_S 0
+#define HTT_STATS_TLV_LENGTH_M 0x00fff000
+#define HTT_STATS_TLV_LENGTH_S 12
#define HTT_STATS_TLV_TAG_GET(_var) \
(((_var) & HTT_STATS_TLV_TAG_M) >> \
- HTT_STATS_TLV_TAG_S)
+ HTT_STATS_TLV_TAG_S)
#define HTT_STATS_TLV_TAG_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_STATS_TLV_TAG, _val); \
- ((_var) |= ((_val) << HTT_STATS_TLV_TAG_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_STATS_TLV_TAG, _val); \
+ ((_var) |= ((_val) << HTT_STATS_TLV_TAG_S)); \
+ } while (0)
#define HTT_STATS_TLV_LENGTH_GET(_var) \
(((_var) & HTT_STATS_TLV_LENGTH_M) >> \
- HTT_STATS_TLV_LENGTH_S)
+ HTT_STATS_TLV_LENGTH_S)
#define HTT_STATS_TLV_LENGTH_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_STATS_TLV_LENGTH, _val); \
- ((_var) |= ((_val) << HTT_STATS_TLV_LENGTH_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_STATS_TLV_LENGTH, _val); \
+ ((_var) |= ((_val) << HTT_STATS_TLV_LENGTH_S)); \
+ } while (0)
typedef struct {
union {
@@ -407,59 +404,57 @@ typedef struct {
* the tag and length bitfields in an endian-neutral manner.
*/
struct {
- A_UINT32 tag: 12, /* BIT [11 : 0] */
- length: 12, /* BIT [23 : 12] */
- reserved: 8; /* BIT [31 : 24] */
+ A_UINT32 tag : 12, /* BIT [11 : 0] */
+ length : 12, /* BIT [23 : 12] */
+ reserved : 8; /* BIT [31 : 24] */
};
};
} htt_tlv_hdr_t;
-#define HTT_STATS_MAX_STRING_SZ32 4
-#define HTT_STATS_MACID_INVALID 0xff
-#define HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS 10
-#define HTT_TX_HWQ_MAX_CMD_RESULT_STATS 13
-#define HTT_TX_HWQ_MAX_CMD_STALL_STATS 5
-#define HTT_TX_HWQ_MAX_FES_RESULT_STATS 10
+#define HTT_STATS_MAX_STRING_SZ32 4
+#define HTT_STATS_MACID_INVALID 0xff
+#define HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS 10
+#define HTT_TX_HWQ_MAX_CMD_RESULT_STATS 13
+#define HTT_TX_HWQ_MAX_CMD_STALL_STATS 5
+#define HTT_TX_HWQ_MAX_FES_RESULT_STATS 10
typedef enum {
- HTT_STATS_TX_PDEV_NO_DATA_UNDERRUN = 0,
+ HTT_STATS_TX_PDEV_NO_DATA_UNDERRUN = 0,
HTT_STATS_TX_PDEV_DATA_UNDERRUN_BETWEEN_MPDU = 1,
- HTT_STATS_TX_PDEV_DATA_UNDERRUN_WITHIN_MPDU = 2,
- HTT_TX_PDEV_MAX_URRN_STATS = 3,
+ HTT_STATS_TX_PDEV_DATA_UNDERRUN_WITHIN_MPDU = 2,
+ HTT_TX_PDEV_MAX_URRN_STATS = 3,
} htt_tx_pdev_underrun_enum;
-#define HTT_TX_PDEV_MAX_FLUSH_REASON_STATS 71
-#define HTT_TX_PDEV_MAX_SIFS_BURST_STATS 9
-#define HTT_TX_PDEV_MAX_SIFS_BURST_HIST_STATS 10
-#define HTT_TX_PDEV_MAX_PHY_ERR_STATS 18
-#define HTT_TX_PDEV_SCHED_TX_MODE_MAX 4
-#define HTT_TX_PDEV_NUM_SCHED_ORDER_LOG 20
+#define HTT_TX_PDEV_MAX_FLUSH_REASON_STATS 71
+#define HTT_TX_PDEV_MAX_SIFS_BURST_STATS 9
+#define HTT_TX_PDEV_MAX_SIFS_BURST_HIST_STATS 10
+#define HTT_TX_PDEV_MAX_PHY_ERR_STATS 18
+#define HTT_TX_PDEV_SCHED_TX_MODE_MAX 4
+#define HTT_TX_PDEV_NUM_SCHED_ORDER_LOG 20
-#define HTT_RX_STATS_REFILL_MAX_RING 4
-#define HTT_RX_STATS_RXDMA_MAX_ERR 16
-#define HTT_RX_STATS_FW_DROP_REASON_MAX 16
+#define HTT_RX_STATS_REFILL_MAX_RING 4
+#define HTT_RX_STATS_RXDMA_MAX_ERR 16
+#define HTT_RX_STATS_FW_DROP_REASON_MAX 16
/* Bytes stored in little endian order */
/* Length should be multiple of DWORD */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 data[1]; /* Can be variable length */
+ A_UINT32 data[1]; /* Can be variable length */
} htt_stats_string_tlv;
-
-#define HTT_TX_PDEV_STATS_CMN_MAC_ID_M 0x000000ff
-#define HTT_TX_PDEV_STATS_CMN_MAC_ID_S 0
+#define HTT_TX_PDEV_STATS_CMN_MAC_ID_M 0x000000ff
+#define HTT_TX_PDEV_STATS_CMN_MAC_ID_S 0
#define HTT_TX_PDEV_STATS_CMN_MAC_ID_GET(_var) \
(((_var) & HTT_TX_PDEV_STATS_CMN_MAC_ID_M) >> \
- HTT_TX_PDEV_STATS_CMN_MAC_ID_S)
+ HTT_TX_PDEV_STATS_CMN_MAC_ID_S)
#define HTT_TX_PDEV_STATS_CMN_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_PDEV_STATS_CMN_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_PDEV_STATS_CMN_MAC_ID_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_PDEV_STATS_CMN_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_PDEV_STATS_CMN_MAC_ID_S)); \
+ } while (0)
/* == TX PDEV STATS == */
typedef struct {
@@ -583,44 +578,44 @@ typedef struct {
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 urrn_stats[1]; /* HTT_TX_PDEV_MAX_URRN_STATS */
+ A_UINT32 urrn_stats[1]; /* HTT_TX_PDEV_MAX_URRN_STATS */
} htt_tx_pdev_stats_urrn_tlv_v;
#define HTT_TX_PDEV_STATS_FLUSH_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 flush_errs[1]; /* HTT_TX_PDEV_MAX_FLUSH_REASON_STATS */
+ A_UINT32 flush_errs[1]; /* HTT_TX_PDEV_MAX_FLUSH_REASON_STATS */
} htt_tx_pdev_stats_flush_tlv_v;
#define HTT_TX_PDEV_STATS_SIFS_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 sifs_status[1]; /* HTT_TX_PDEV_MAX_SIFS_BURST_STATS */
+ A_UINT32 sifs_status[1]; /* HTT_TX_PDEV_MAX_SIFS_BURST_STATS */
} htt_tx_pdev_stats_sifs_tlv_v;
#define HTT_TX_PDEV_STATS_PHY_ERR_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 phy_errs[1]; /* HTT_TX_PDEV_MAX_PHY_ERR_STATS */
+ A_UINT32 phy_errs[1]; /* HTT_TX_PDEV_MAX_PHY_ERR_STATS */
} htt_tx_pdev_stats_phy_err_tlv_v;
#define HTT_TX_PDEV_STATS_SIFS_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 sifs_hist_status[1]; /* HTT_TX_PDEV_SIFS_BURST_HIST_STATS */
+ A_UINT32 sifs_hist_status[1]; /* HTT_TX_PDEV_SIFS_BURST_HIST_STATS */
} htt_tx_pdev_stats_sifs_hist_tlv_v;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 num_data_ppdus_legacy_su;
- A_UINT32 num_data_ppdus_ac_su;
- A_UINT32 num_data_ppdus_ax_su;
- A_UINT32 num_data_ppdus_ac_su_txbf;
- A_UINT32 num_data_ppdus_ax_su_txbf;
+ A_UINT32 num_data_ppdus_legacy_su;
+ A_UINT32 num_data_ppdus_ac_su;
+ A_UINT32 num_data_ppdus_ax_su;
+ A_UINT32 num_data_ppdus_ac_su_txbf;
+ A_UINT32 num_data_ppdus_ax_su_txbf;
} htt_tx_pdev_stats_tx_ppdu_stats_tlv_v;
#define HTT_TX_PDEV_STATS_TRIED_MPDU_CNT_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
@@ -639,8 +634,8 @@ typedef struct {
*/
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 hist_bin_size;
- A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */
+ A_UINT32 hist_bin_size;
+ A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */
} htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v;
/* STATS_TYPE: HTT_DBG_EXT_STATS_PDEV_TX
@@ -659,13 +654,13 @@ typedef struct {
* Instead, use the constituent TLV structures to fill/parse.
*/
typedef struct _htt_tx_pdev_stats {
- htt_tx_pdev_stats_cmn_tlv cmn_tlv;
- htt_tx_pdev_stats_urrn_tlv_v underrun_tlv;
- htt_tx_pdev_stats_sifs_tlv_v sifs_tlv;
- htt_tx_pdev_stats_flush_tlv_v flush_tlv;
- htt_tx_pdev_stats_phy_err_tlv_v phy_err_tlv;
- htt_tx_pdev_stats_sifs_hist_tlv_v sifs_hist_tlv;
- htt_tx_pdev_stats_tx_ppdu_stats_tlv_v tx_su_tlv;
+ htt_tx_pdev_stats_cmn_tlv cmn_tlv;
+ htt_tx_pdev_stats_urrn_tlv_v underrun_tlv;
+ htt_tx_pdev_stats_sifs_tlv_v sifs_tlv;
+ htt_tx_pdev_stats_flush_tlv_v flush_tlv;
+ htt_tx_pdev_stats_phy_err_tlv_v phy_err_tlv;
+ htt_tx_pdev_stats_sifs_hist_tlv_v sifs_hist_tlv;
+ htt_tx_pdev_stats_tx_ppdu_stats_tlv_v tx_su_tlv;
htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v tried_mpdu_cnt_hist_tlv;
} htt_tx_pdev_stats_t;
@@ -676,7 +671,7 @@ typedef struct _htt_tx_pdev_stats {
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Stored as little endian */
- A_UINT8 hw_intr_name[HTT_STATS_MAX_HW_INTR_NAME_LEN];
+ A_UINT8 hw_intr_name[HTT_STATS_MAX_HW_INTR_NAME_LEN];
A_UINT32 mask;
A_UINT32 count;
} htt_hw_stats_intr_misc_tlv;
@@ -685,24 +680,22 @@ typedef struct {
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Stored as little endian */
- A_UINT8 hw_module_name[HTT_STATS_MAX_HW_MODULE_NAME_LEN];
+ A_UINT8 hw_module_name[HTT_STATS_MAX_HW_MODULE_NAME_LEN];
A_UINT32 count;
} htt_hw_stats_wd_timeout_tlv;
-
-#define HTT_HW_STATS_PDEV_ERRS_MAC_ID_M 0x000000ff
-#define HTT_HW_STATS_PDEV_ERRS_MAC_ID_S 0
+#define HTT_HW_STATS_PDEV_ERRS_MAC_ID_M 0x000000ff
+#define HTT_HW_STATS_PDEV_ERRS_MAC_ID_S 0
#define HTT_HW_STATS_PDEV_ERRS_MAC_ID_GET(_var) \
(((_var) & HTT_HW_STATS_PDEV_ERRS_MAC_ID_M) >> \
- HTT_HW_STATS_PDEV_ERRS_MAC_ID_S)
+ HTT_HW_STATS_PDEV_ERRS_MAC_ID_S)
#define HTT_HW_STATS_PDEV_ERRS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_HW_STATS_PDEV_ERRS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_HW_STATS_PDEV_ERRS_MAC_ID_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_HW_STATS_PDEV_ERRS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_HW_STATS_PDEV_ERRS_MAC_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -710,31 +703,31 @@ typedef struct {
/* BIT [ 7 : 0] :- mac_id
* BIT [31 : 8] :- reserved
*/
- A_UINT32 mac_id__word;
- A_UINT32 tx_abort;
- A_UINT32 tx_abort_fail_count;
- A_UINT32 rx_abort;
- A_UINT32 rx_abort_fail_count;
- A_UINT32 warm_reset;
- A_UINT32 cold_reset;
- A_UINT32 tx_flush;
- A_UINT32 tx_glb_reset;
- A_UINT32 tx_txq_reset;
- A_UINT32 rx_timeout_reset;
- A_UINT32 mac_cold_reset_restore_cal;
- A_UINT32 mac_cold_reset;
- A_UINT32 mac_warm_reset;
- A_UINT32 mac_only_reset;
- A_UINT32 phy_warm_reset;
- A_UINT32 phy_warm_reset_ucode_trig;
- A_UINT32 mac_warm_reset_restore_cal;
- A_UINT32 mac_sfm_reset;
- A_UINT32 phy_warm_reset_m3_ssr;
- A_UINT32 phy_warm_reset_reason_phy_m3;
- A_UINT32 phy_warm_reset_reason_tx_hw_stuck;
- A_UINT32 phy_warm_reset_reason_num_cca_rx_frame_stuck;
- A_UINT32 phy_warm_reset_reason_wal_rx_recovery_rst_rx_busy;
- A_UINT32 phy_warm_reset_reason_wal_rx_recovery_rst_mac_hang;
+ A_UINT32 mac_id__word;
+ A_UINT32 tx_abort;
+ A_UINT32 tx_abort_fail_count;
+ A_UINT32 rx_abort;
+ A_UINT32 rx_abort_fail_count;
+ A_UINT32 warm_reset;
+ A_UINT32 cold_reset;
+ A_UINT32 tx_flush;
+ A_UINT32 tx_glb_reset;
+ A_UINT32 tx_txq_reset;
+ A_UINT32 rx_timeout_reset;
+ A_UINT32 mac_cold_reset_restore_cal;
+ A_UINT32 mac_cold_reset;
+ A_UINT32 mac_warm_reset;
+ A_UINT32 mac_only_reset;
+ A_UINT32 phy_warm_reset;
+ A_UINT32 phy_warm_reset_ucode_trig;
+ A_UINT32 mac_warm_reset_restore_cal;
+ A_UINT32 mac_sfm_reset;
+ A_UINT32 phy_warm_reset_m3_ssr;
+ A_UINT32 phy_warm_reset_reason_phy_m3;
+ A_UINT32 phy_warm_reset_reason_tx_hw_stuck;
+ A_UINT32 phy_warm_reset_reason_num_cca_rx_frame_stuck;
+ A_UINT32 phy_warm_reset_reason_wal_rx_recovery_rst_rx_busy;
+ A_UINT32 phy_warm_reset_reason_wal_rx_recovery_rst_mac_hang;
} htt_hw_stats_pdev_errs_tlv;
typedef struct {
@@ -769,53 +762,54 @@ typedef struct {
* Instead, use the constituent TLV structures to fill/parse.
*/
typedef struct _htt_pdev_err_stats {
- htt_hw_stats_pdev_errs_tlv pdev_errs;
- htt_hw_stats_intr_misc_tlv misc_stats[1];
+ htt_hw_stats_pdev_errs_tlv pdev_errs;
+ htt_hw_stats_intr_misc_tlv misc_stats[1];
htt_hw_stats_wd_timeout_tlv wd_timeout[1];
- htt_hw_stats_whal_tx_tlv whal_tx_stats;
+ htt_hw_stats_whal_tx_tlv whal_tx_stats;
} htt_hw_err_stats_t;
/* ============ PEER STATS ============ */
-#define HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_M 0x0000ffff
-#define HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_S 0
-#define HTT_MSDU_FLOW_STATS_TID_NUM_M 0x000f0000
-#define HTT_MSDU_FLOW_STATS_TID_NUM_S 16
-#define HTT_MSDU_FLOW_STATS_DROP_M 0x00100000
-#define HTT_MSDU_FLOW_STATS_DROP_S 20
+#define HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_M 0x0000ffff
+#define HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_S 0
+#define HTT_MSDU_FLOW_STATS_TID_NUM_M 0x000f0000
+#define HTT_MSDU_FLOW_STATS_TID_NUM_S 16
+#define HTT_MSDU_FLOW_STATS_DROP_M 0x00100000
+#define HTT_MSDU_FLOW_STATS_DROP_S 20
#define HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_GET(_var) \
(((_var) & HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_M) >> \
- HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_S)
+ HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_S)
#define HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_MSDU_FLOW_STATS_TX_FLOW_NUM, _val); \
- ((_var) |= ((_val) << HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_MSDU_FLOW_STATS_TX_FLOW_NUM, _val); \
+ ((_var) |= ((_val) << HTT_MSDU_FLOW_STATS_TX_FLOW_NUM_S)); \
+ } while (0)
#define HTT_MSDU_FLOW_STATS_TID_NUM_GET(_var) \
(((_var) & HTT_MSDU_FLOW_STATS_TID_NUM_M) >> \
- HTT_MSDU_FLOW_STATS_TID_NUM_S)
+ HTT_MSDU_FLOW_STATS_TID_NUM_S)
#define HTT_MSDU_FLOW_STATS_TID_NUM_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_MSDU_FLOW_STATS_TID_NUM, _val); \
- ((_var) |= ((_val) << HTT_MSDU_FLOW_STATS_TID_NUM_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_MSDU_FLOW_STATS_TID_NUM, _val); \
+ ((_var) |= ((_val) << HTT_MSDU_FLOW_STATS_TID_NUM_S)); \
+ } while (0)
#define HTT_MSDU_FLOW_STATS_DROP_GET(_var) \
(((_var) & HTT_MSDU_FLOW_STATS_DROP_M) >> \
- HTT_MSDU_FLOW_STATS_DROP_S)
+ HTT_MSDU_FLOW_STATS_DROP_S)
#define HTT_MSDU_FLOW_STATS_DROP_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_MSDU_FLOW_STATS_DROP, _val); \
- ((_var) |= ((_val) << HTT_MSDU_FLOW_STATS_DROP_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_MSDU_FLOW_STATS_DROP, _val); \
+ ((_var) |= ((_val) << HTT_MSDU_FLOW_STATS_DROP_S)); \
+ } while (0)
typedef struct _htt_msdu_flow_stats_tlv {
htt_tlv_hdr_t tlv_hdr;
+
A_UINT32 last_update_timestamp;
A_UINT32 last_add_timestamp;
A_UINT32 last_remove_timestamp;
@@ -840,65 +834,63 @@ typedef struct _htt_msdu_flow_stats_tlv {
#define MAX_HTT_TID_NAME 8
/* DWORD sw_peer_id__tid_num */
-#define HTT_TX_TID_STATS_SW_PEER_ID_M 0x0000ffff
-#define HTT_TX_TID_STATS_SW_PEER_ID_S 0
-#define HTT_TX_TID_STATS_TID_NUM_M 0xffff0000
-#define HTT_TX_TID_STATS_TID_NUM_S 16
+#define HTT_TX_TID_STATS_SW_PEER_ID_M 0x0000ffff
+#define HTT_TX_TID_STATS_SW_PEER_ID_S 0
+#define HTT_TX_TID_STATS_TID_NUM_M 0xffff0000
+#define HTT_TX_TID_STATS_TID_NUM_S 16
#define HTT_TX_TID_STATS_SW_PEER_ID_GET(_var) \
(((_var) & HTT_TX_TID_STATS_SW_PEER_ID_M) >> \
- HTT_TX_TID_STATS_SW_PEER_ID_S)
+ HTT_TX_TID_STATS_SW_PEER_ID_S)
#define HTT_TX_TID_STATS_SW_PEER_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_SW_PEER_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_TID_STATS_SW_PEER_ID_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_SW_PEER_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_TID_STATS_SW_PEER_ID_S)); \
+ } while (0)
#define HTT_TX_TID_STATS_TID_NUM_GET(_var) \
(((_var) & HTT_TX_TID_STATS_TID_NUM_M) >> \
- HTT_TX_TID_STATS_TID_NUM_S)
+ HTT_TX_TID_STATS_TID_NUM_S)
#define HTT_TX_TID_STATS_TID_NUM_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_TID_NUM, _val); \
- ((_var) |= ((_val) << HTT_TX_TID_STATS_TID_NUM_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_TID_NUM, _val); \
+ ((_var) |= ((_val) << HTT_TX_TID_STATS_TID_NUM_S)); \
+ } while (0)
/* DWORD num_sched_pending__num_ppdu_in_hwq */
-#define HTT_TX_TID_STATS_NUM_SCHED_PENDING_M 0x000000ff
-#define HTT_TX_TID_STATS_NUM_SCHED_PENDING_S 0
-#define HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_M 0x0000ff00
-#define HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_S 8
+#define HTT_TX_TID_STATS_NUM_SCHED_PENDING_M 0x000000ff
+#define HTT_TX_TID_STATS_NUM_SCHED_PENDING_S 0
+#define HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_M 0x0000ff00
+#define HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_S 8
#define HTT_TX_TID_STATS_NUM_SCHED_PENDING_GET(_var) \
(((_var) & HTT_TX_TID_STATS_NUM_SCHED_PENDING_M) >> \
- HTT_TX_TID_STATS_NUM_SCHED_PENDING_S)
+ HTT_TX_TID_STATS_NUM_SCHED_PENDING_S)
#define HTT_TX_TID_STATS_NUM_SCHED_PENDING_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_NUM_SCHED_PENDING, _val); \
- ((_var) |= ((_val) << HTT_TX_TID_STATS_NUM_SCHED_PENDING_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_NUM_SCHED_PENDING, _val); \
+ ((_var) |= ((_val) << HTT_TX_TID_STATS_NUM_SCHED_PENDING_S)); \
+ } while (0)
#define HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_GET(_var) \
(((_var) & HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_M) >> \
- HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_S)
+ HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_S)
#define HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ, _val); \
- ((_var) |= ((_val) << HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ, _val); \
+ ((_var) |= ((_val) << HTT_TX_TID_STATS_NUM_PPDU_IN_HWQ_S)); \
+ } while (0)
/* Tidq stats */
typedef struct _htt_tx_tid_stats_tlv {
htt_tlv_hdr_t tlv_hdr;
+
/* Stored as little endian */
- A_UINT8 tid_name[MAX_HTT_TID_NAME];
+ A_UINT8 tid_name[MAX_HTT_TID_NAME];
/* BIT [15 : 0] :- sw_peer_id
* BIT [31 : 16] :- tid_num
*/
@@ -930,7 +922,7 @@ typedef struct _htt_tx_tid_stats_tlv {
typedef struct _htt_tx_tid_stats_v1_tlv {
htt_tlv_hdr_t tlv_hdr;
/* Stored as little endian */
- A_UINT8 tid_name[MAX_HTT_TID_NAME];
+ A_UINT8 tid_name[MAX_HTT_TID_NAME];
/* BIT [15 : 0] :- sw_peer_id
* BIT [31 : 16] :- tid_num
*/
@@ -963,34 +955,34 @@ typedef struct _htt_tx_tid_stats_v1_tlv {
A_UINT32 sendn_frms_allowed;
} htt_tx_tid_stats_v1_tlv;
-#define HTT_RX_TID_STATS_SW_PEER_ID_M 0x0000ffff
-#define HTT_RX_TID_STATS_SW_PEER_ID_S 0
-#define HTT_RX_TID_STATS_TID_NUM_M 0xffff0000
-#define HTT_RX_TID_STATS_TID_NUM_S 16
+#define HTT_RX_TID_STATS_SW_PEER_ID_M 0x0000ffff
+#define HTT_RX_TID_STATS_SW_PEER_ID_S 0
+#define HTT_RX_TID_STATS_TID_NUM_M 0xffff0000
+#define HTT_RX_TID_STATS_TID_NUM_S 16
#define HTT_RX_TID_STATS_SW_PEER_ID_GET(_var) \
(((_var) & HTT_RX_TID_STATS_SW_PEER_ID_M) >> \
- HTT_RX_TID_STATS_SW_PEER_ID_S)
+ HTT_RX_TID_STATS_SW_PEER_ID_S)
#define HTT_RX_TID_STATS_SW_PEER_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RX_TID_STATS_SW_PEER_ID, _val); \
- ((_var) |= ((_val) << HTT_RX_TID_STATS_SW_PEER_ID_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RX_TID_STATS_SW_PEER_ID, _val); \
+ ((_var) |= ((_val) << HTT_RX_TID_STATS_SW_PEER_ID_S)); \
+ } while (0)
#define HTT_RX_TID_STATS_TID_NUM_GET(_var) \
(((_var) & HTT_RX_TID_STATS_TID_NUM_M) >> \
- HTT_RX_TID_STATS_TID_NUM_S)
+ HTT_RX_TID_STATS_TID_NUM_S)
#define HTT_RX_TID_STATS_TID_NUM_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RX_TID_STATS_TID_NUM, _val); \
- ((_var) |= ((_val) << HTT_RX_TID_STATS_TID_NUM_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RX_TID_STATS_TID_NUM, _val); \
+ ((_var) |= ((_val) << HTT_RX_TID_STATS_TID_NUM_S)); \
+ } while (0)
typedef struct _htt_rx_tid_stats_tlv {
htt_tlv_hdr_t tlv_hdr;
+
/* BIT [15 : 0] : sw_peer_id
* BIT [31 : 16] : tid_num
*/
@@ -998,7 +990,7 @@ typedef struct _htt_rx_tid_stats_tlv {
/* Stored as little endian */
A_UINT8 tid_name[MAX_HTT_TID_NAME];
/* dup_in_reorder not collected per tid for now,
- as there is no wal_peer back ptr in data rx peer. */
+ as there is no wal_peer back ptr in data rx peer. */
A_UINT32 dup_in_reorder;
A_UINT32 dup_past_outside_window;
A_UINT32 dup_past_within_window;
@@ -1012,11 +1004,10 @@ typedef struct _htt_rx_tid_stats_tlv {
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Stored as little endian */
- A_UINT8 counter_name[HTT_MAX_COUNTER_NAME];
- A_UINT32 count;
+ A_UINT8 counter_name[HTT_MAX_COUNTER_NAME];
+ A_UINT32 count;
} htt_counter_tlv;
-
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Number of rx ppdu. */
@@ -1067,10 +1058,10 @@ typedef struct {
* BIT [15 : 8] :- pdev_id
* BIT [31 : 16] :- ast_indx
*/
- A_UINT32 vdev_pdev_ast_idx;
+ A_UINT32 vdev_pdev_ast_idx;
htt_mac_addr mac_addr;
- A_UINT32 peer_flags;
- A_UINT32 qpeer_flags;
+ A_UINT32 peer_flags;
+ A_UINT32 qpeer_flags;
} htt_peer_details_tlv;
typedef enum {
@@ -1085,12 +1076,12 @@ typedef enum {
HTT_STATS_PREAM_COUNT,
} HTT_STATS_PREAM_TYPE;
-#define HTT_TX_PEER_STATS_NUM_MCS_COUNTERS 12
-#define HTT_TX_PEER_STATS_NUM_GI_COUNTERS 4
-#define HTT_TX_PEER_STATS_NUM_DCM_COUNTERS 5
-#define HTT_TX_PEER_STATS_NUM_BW_COUNTERS 4
-#define HTT_TX_PEER_STATS_NUM_SPATIAL_STREAMS 8
-#define HTT_TX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
+#define HTT_TX_PEER_STATS_NUM_MCS_COUNTERS 12
+#define HTT_TX_PEER_STATS_NUM_GI_COUNTERS 4
+#define HTT_TX_PEER_STATS_NUM_DCM_COUNTERS 5
+#define HTT_TX_PEER_STATS_NUM_BW_COUNTERS 4
+#define HTT_TX_PEER_STATS_NUM_SPATIAL_STREAMS 8
+#define HTT_TX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
typedef struct _htt_tx_peer_rate_stats_tlv {
htt_tlv_hdr_t tlv_hdr;
@@ -1106,7 +1097,7 @@ typedef struct _htt_tx_peer_rate_stats_tlv {
A_UINT32 tx_su_mcs[HTT_TX_PEER_STATS_NUM_MCS_COUNTERS];
A_UINT32 tx_mu_mcs[HTT_TX_PEER_STATS_NUM_MCS_COUNTERS];
A_UINT32 tx_nss[HTT_TX_PEER_STATS_NUM_SPATIAL_STREAMS]; /* element 0,1, ...7 -> NSS 1,2, ...8 */
- A_UINT32 tx_bw[HTT_TX_PEER_STATS_NUM_BW_COUNTERS]; /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */
+ A_UINT32 tx_bw[HTT_TX_PEER_STATS_NUM_BW_COUNTERS]; /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */
A_UINT32 tx_stbc[HTT_TX_PEER_STATS_NUM_MCS_COUNTERS];
A_UINT32 tx_pream[HTT_TX_PEER_STATS_NUM_PREAMBLE_TYPES];
@@ -1115,19 +1106,18 @@ typedef struct _htt_tx_peer_rate_stats_tlv {
/* Counters to track packets in dcm mcs (MCS 0, 1, 3, 4) */
A_UINT32 tx_dcm[HTT_TX_PEER_STATS_NUM_DCM_COUNTERS];
-
} htt_tx_peer_rate_stats_tlv;
-#define HTT_RX_PEER_STATS_NUM_MCS_COUNTERS 12
-#define HTT_RX_PEER_STATS_NUM_GI_COUNTERS 4
-#define HTT_RX_PEER_STATS_NUM_DCM_COUNTERS 5
-#define HTT_RX_PEER_STATS_NUM_BW_COUNTERS 4
-#define HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS 8
-#define HTT_RX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
+#define HTT_RX_PEER_STATS_NUM_MCS_COUNTERS 12
+#define HTT_RX_PEER_STATS_NUM_GI_COUNTERS 4
+#define HTT_RX_PEER_STATS_NUM_DCM_COUNTERS 5
+#define HTT_RX_PEER_STATS_NUM_BW_COUNTERS 4
+#define HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS 8
+#define HTT_RX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
typedef struct _htt_rx_peer_rate_stats_tlv {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 nsts;
+ A_UINT32 nsts;
/* Number of rx ldpc packets */
A_UINT32 rx_ldpc;
@@ -1143,16 +1133,16 @@ typedef struct _htt_rx_peer_rate_stats_tlv {
A_UINT32 rx_stbc[HTT_RX_PEER_STATS_NUM_MCS_COUNTERS];
A_UINT32 rx_bw[HTT_RX_PEER_STATS_NUM_BW_COUNTERS]; /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */
A_UINT32 rx_pream[HTT_RX_PEER_STATS_NUM_PREAMBLE_TYPES];
- A_UINT8 rssi_chain[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PEER_STATS_NUM_BW_COUNTERS]; /* units = dB above noise floor */
+ A_UINT8 rssi_chain[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PEER_STATS_NUM_BW_COUNTERS]; /* units = dB above noise floor */
/* Counters to track number of rx packets in each GI in each mcs (0-11) */
A_UINT32 rx_gi[HTT_RX_PEER_STATS_NUM_GI_COUNTERS][HTT_RX_PEER_STATS_NUM_MCS_COUNTERS];
- A_UINT32 rx_ulofdma_non_data_ppdu; /* ppdu level */
- A_UINT32 rx_ulofdma_data_ppdu; /* ppdu level */
- A_UINT32 rx_ulofdma_mpdu_ok; /* mpdu level */
- A_UINT32 rx_ulofdma_mpdu_fail; /* mpdu level */
- A_INT8 rx_ul_fd_rssi[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS];/* dBm unit */
+ A_UINT32 rx_ulofdma_non_data_ppdu; /* ppdu level */
+ A_UINT32 rx_ulofdma_data_ppdu; /* ppdu level */
+ A_UINT32 rx_ulofdma_mpdu_ok; /* mpdu level */
+ A_UINT32 rx_ulofdma_mpdu_fail; /* mpdu level */
+ A_INT8 rx_ul_fd_rssi[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS]; /* dBm unit */
/* per_chain_rssi_pkt_type:
* This field shows what type of rx frame the per-chain RSSI was computed
* on, by recording the frame type and sub-type as bit-fields within this
@@ -1161,8 +1151,8 @@ typedef struct _htt_rx_peer_rate_stats_tlv {
* BIT [7 : 4] :- IEEE80211_FC0_SUBTYPE
* BIT [31 : 8] :- Reserved
*/
- A_UINT32 per_chain_rssi_pkt_type;
- A_INT8 rx_per_chain_rssi_in_dbm[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PEER_STATS_NUM_BW_COUNTERS];
+ A_UINT32 per_chain_rssi_pkt_type;
+ A_INT8 rx_per_chain_rssi_in_dbm[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PEER_STATS_NUM_BW_COUNTERS];
} htt_rx_peer_rate_stats_tlv;
typedef enum {
@@ -1172,55 +1162,54 @@ typedef enum {
} htt_peer_stats_req_mode_t;
typedef enum {
- HTT_PEER_STATS_CMN_TLV = 0,
- HTT_PEER_DETAILS_TLV = 1,
- HTT_TX_PEER_RATE_STATS_TLV = 2,
- HTT_RX_PEER_RATE_STATS_TLV = 3,
- HTT_TX_TID_STATS_TLV = 4,
- HTT_RX_TID_STATS_TLV = 5,
- HTT_MSDU_FLOW_STATS_TLV = 6,
-
- HTT_PEER_STATS_MAX_TLV = 31,
+ HTT_PEER_STATS_CMN_TLV = 0,
+ HTT_PEER_DETAILS_TLV = 1,
+ HTT_TX_PEER_RATE_STATS_TLV = 2,
+ HTT_RX_PEER_RATE_STATS_TLV = 3,
+ HTT_TX_TID_STATS_TLV = 4,
+ HTT_RX_TID_STATS_TLV = 5,
+ HTT_MSDU_FLOW_STATS_TLV = 6,
+
+ HTT_PEER_STATS_MAX_TLV = 31,
} htt_peer_stats_tlv_enum;
/* config_param0 */
-#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_M 0x00000001
-#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_S 0
+#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_M 0x00000001
+#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_S 0
-#define HTT_DBG_EXT_STATS_PEER_REQ_MODE_M 0x0000FFFE
-#define HTT_DBG_EXT_STATS_PEER_REQ_MODE_S 1
+#define HTT_DBG_EXT_STATS_PEER_REQ_MODE_M 0x0000FFFE
+#define HTT_DBG_EXT_STATS_PEER_REQ_MODE_S 1
-#define HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_M 0xFFFF0000
-#define HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_S 16
+#define HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_M 0xFFFF0000
+#define HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_S 16
-#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_SET( _var, _val)\
- do { \
- HTT_CHECK_SET_VAL(HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR, _val); \
- ((_var) |= ((_val) << HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_S)); \
- } while (0)
+#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_SET(_var, _val) \
+ do { \
+ HTT_CHECK_SET_VAL(HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR, _val); \
+ ((_var) |= ((_val) << HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_S)); \
+ } while (0)
#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_GET(_var) \
(((_var) & HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_M) >> \
- HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_S)
-
+ HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_S)
#define HTT_DBG_EXT_STATS_PEER_REQ_MODE_GET(_var) \
(((_var) & HTT_DBG_EXT_STATS_PEER_REQ_MODE_M) >> \
- HTT_DBG_EXT_STATS_PEER_REQ_MODE_S)
+ HTT_DBG_EXT_STATS_PEER_REQ_MODE_S)
#define HTT_DBG_EXT_STATS_PEER_REQ_MODE_SET(_var, _val) \
- do { \
- ((_var) |= ((_val) << HTT_DBG_EXT_STATS_PEER_REQ_MODE_S)); \
- } while (0)
+ do { \
+ ((_var) |= ((_val) << HTT_DBG_EXT_STATS_PEER_REQ_MODE_S)); \
+ } while (0)
#define HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_GET(_var) \
(((_var) & HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_M) >> \
- HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_S)
+ HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_S)
#define HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_SET(_var, _val) \
- do { \
- ((_var) |= ((_val) << HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_S)); \
- } while (0)
+ do { \
+ ((_var) |= ((_val) << HTT_DBG_EXT_STATS_PEER_INFO_SW_PEER_ID_S)); \
+ } while (0)
/* STATS_TYPE : HTT_DBG_EXT_STATS_PEER_INFO
* TLV_TAGS:
@@ -1239,14 +1228,15 @@ typedef enum {
*/
typedef struct _htt_peer_stats {
htt_peer_stats_cmn_tlv cmn_tlv;
+
htt_peer_details_tlv peer_details;
/* from g_rate_info_stats */
htt_tx_peer_rate_stats_tlv tx_rate;
htt_rx_peer_rate_stats_tlv rx_rate;
- htt_tx_tid_stats_tlv tx_tid_stats[1];
- htt_rx_tid_stats_tlv rx_tid_stats[1];
- htt_msdu_flow_stats_tlv msdu_flowq[1];
- htt_tx_tid_stats_v1_tlv tx_tid_stats_v1[1];
+ htt_tx_tid_stats_tlv tx_tid_stats[1];
+ htt_rx_tid_stats_tlv rx_tid_stats[1];
+ htt_msdu_flow_stats_tlv msdu_flowq[1];
+ htt_tx_tid_stats_v1_tlv tx_tid_stats_v1[1];
} htt_peer_stats_t;
/* =========== ACTIVE PEER LIST ========== */
@@ -1263,56 +1253,56 @@ typedef struct {
htt_peer_details_tlv peer_details[1];
} htt_active_peer_details_list_t;
-
/* =========== MUMIMO HWQ stats =========== */
/* MU MIMO stats per hwQ */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 mu_mimo_sch_posted;
- A_UINT32 mu_mimo_sch_failed;
- A_UINT32 mu_mimo_ppdu_posted;
+ A_UINT32 mu_mimo_sch_posted;
+ A_UINT32 mu_mimo_sch_failed;
+ A_UINT32 mu_mimo_ppdu_posted;
} htt_tx_hwq_mu_mimo_sch_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 mu_mimo_mpdus_queued_usr; /* Number of mpdus queued per user */
- A_UINT32 mu_mimo_mpdus_tried_usr; /* Number of mpdus actually transmitted by TxPCU per user */
- A_UINT32 mu_mimo_mpdus_failed_usr; /* Number of mpdus failed per user */
- A_UINT32 mu_mimo_mpdus_requeued_usr; /* Number of mpdus requeued per user */
- A_UINT32 mu_mimo_err_no_ba_usr; /* Number of times BA is not received for a user in MU PPDU */
- A_UINT32 mu_mimo_mpdu_underrun_usr;
- A_UINT32 mu_mimo_ampdu_underrun_usr;
+ A_UINT32 mu_mimo_mpdus_queued_usr; /* Number of mpdus queued per user */
+ A_UINT32 mu_mimo_mpdus_tried_usr; /* Number of mpdus actually transmitted by TxPCU per user */
+ A_UINT32 mu_mimo_mpdus_failed_usr; /* Number of mpdus failed per user */
+ A_UINT32 mu_mimo_mpdus_requeued_usr; /* Number of mpdus requeued per user */
+ A_UINT32 mu_mimo_err_no_ba_usr; /* Number of times BA is not received for a user in MU PPDU */
+ A_UINT32 mu_mimo_mpdu_underrun_usr;
+ A_UINT32 mu_mimo_ampdu_underrun_usr;
} htt_tx_hwq_mu_mimo_mpdu_stats_tlv;
-#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_M 0x000000ff
-#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_S 0
+#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_M 0x000000ff
+#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_S 0
-#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_M 0x0000ff00
-#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_S 8
+#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_M 0x0000ff00
+#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_S 8
#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_M) >> \
- HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_S)
+ HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_S)
#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_HWQ_MU_MIMO_CMN_STATS_MAC_ID_S)); \
+ } while (0)
#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_GET(_var) \
(((_var) & HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_M) >> \
- HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_S)
+ HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_S)
#define HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_HWQ_MU_MIMO_CMN_STATS_HWQ_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
+
/* BIT [ 7 : 0] :- mac_id
* BIT [15 : 8] :- hwq_id
* BIT [31 : 16] :- reserved
@@ -1326,41 +1316,42 @@ typedef struct {
*/
typedef struct {
struct _hwq_mu_mimo_stats {
- htt_tx_hwq_mu_mimo_cmn_stats_tlv cmn_tlv;
- htt_tx_hwq_mu_mimo_sch_stats_tlv mu_mimo_sch_stats_tlv[1]; /* WAL_TX_STATS_MAX_GROUP_SIZE */
+ htt_tx_hwq_mu_mimo_cmn_stats_tlv cmn_tlv;
+ htt_tx_hwq_mu_mimo_sch_stats_tlv mu_mimo_sch_stats_tlv[1]; /* WAL_TX_STATS_MAX_GROUP_SIZE */
htt_tx_hwq_mu_mimo_mpdu_stats_tlv mu_mimo_mpdu_stats_tlv[1]; /* WAL_TX_STATS_TX_MAX_NUM_USERS */
} hwq[1];
} htt_tx_hwq_mu_mimo_stats_t;
/* == TX HWQ STATS == */
-#define HTT_TX_HWQ_STATS_CMN_MAC_ID_M 0x000000ff
-#define HTT_TX_HWQ_STATS_CMN_MAC_ID_S 0
+#define HTT_TX_HWQ_STATS_CMN_MAC_ID_M 0x000000ff
+#define HTT_TX_HWQ_STATS_CMN_MAC_ID_S 0
-#define HTT_TX_HWQ_STATS_CMN_HWQ_ID_M 0x0000ff00
-#define HTT_TX_HWQ_STATS_CMN_HWQ_ID_S 8
+#define HTT_TX_HWQ_STATS_CMN_HWQ_ID_M 0x0000ff00
+#define HTT_TX_HWQ_STATS_CMN_HWQ_ID_S 8
#define HTT_TX_HWQ_STATS_CMN_MAC_ID_GET(_var) \
(((_var) & HTT_TX_HWQ_STATS_CMN_MAC_ID_M) >> \
- HTT_TX_HWQ_STATS_CMN_MAC_ID_S)
+ HTT_TX_HWQ_STATS_CMN_MAC_ID_S)
#define HTT_TX_HWQ_STATS_CMN_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_HWQ_STATS_CMN_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_HWQ_STATS_CMN_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_HWQ_STATS_CMN_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_HWQ_STATS_CMN_MAC_ID_S)); \
+ } while (0)
#define HTT_TX_HWQ_STATS_CMN_HWQ_ID_GET(_var) \
(((_var) & HTT_TX_HWQ_STATS_CMN_HWQ_ID_M) >> \
- HTT_TX_HWQ_STATS_CMN_HWQ_ID_S)
+ HTT_TX_HWQ_STATS_CMN_HWQ_ID_S)
#define HTT_TX_HWQ_STATS_CMN_HWQ_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_HWQ_STATS_CMN_HWQ_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_HWQ_STATS_CMN_HWQ_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_HWQ_STATS_CMN_HWQ_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_HWQ_STATS_CMN_HWQ_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
+
/* BIT [ 7 : 0] :- mac_id
* BIT [15 : 8] :- hwq_id
* BIT [31 : 16] :- reserved
@@ -1368,39 +1359,39 @@ typedef struct {
A_UINT32 mac_id__hwq_id__word;
/* PPDU level stats */
- A_UINT32 xretry; /* Number of times ack is failed for the PPDU scheduled on this txQ */
- A_UINT32 underrun_cnt; /* Number of times sched cmd status reported mpdu underrun */
- A_UINT32 flush_cnt; /* Number of times sched cmd is flushed */
- A_UINT32 filt_cnt; /* Number of times sched cmd is filtered */
- A_UINT32 null_mpdu_bmap; /* Number of times HWSCH uploaded null mpdu bitmap */
- A_UINT32 user_ack_failure; /* Number of time user ack or ba tlv is not seen on FES ring where it is expected to be */
- A_UINT32 ack_tlv_proc; /* Number of times TQM processed ack tlv received from HWSCH */
- A_UINT32 sched_id_proc; /* Cache latest processed scheduler ID received from ack ba tlv */
- A_UINT32 null_mpdu_tx_count; /* Number of times TxPCU reported mpdus transmitted for a user is zero */
- A_UINT32 mpdu_bmap_not_recvd; /* Number of times SW did not see any mpdu info bitmap tlv on FES status ring */
+ A_UINT32 xretry; /* Number of times ack is failed for the PPDU scheduled on this txQ */
+ A_UINT32 underrun_cnt; /* Number of times sched cmd status reported mpdu underrun */
+ A_UINT32 flush_cnt; /* Number of times sched cmd is flushed */
+ A_UINT32 filt_cnt; /* Number of times sched cmd is filtered */
+ A_UINT32 null_mpdu_bmap; /* Number of times HWSCH uploaded null mpdu bitmap */
+ A_UINT32 user_ack_failure; /* Number of time user ack or ba tlv is not seen on FES ring where it is expected to be */
+ A_UINT32 ack_tlv_proc; /* Number of times TQM processed ack tlv received from HWSCH */
+ A_UINT32 sched_id_proc; /* Cache latest processed scheduler ID received from ack ba tlv */
+ A_UINT32 null_mpdu_tx_count; /* Number of times TxPCU reported mpdus transmitted for a user is zero */
+ A_UINT32 mpdu_bmap_not_recvd; /* Number of times SW did not see any mpdu info bitmap tlv on FES status ring */
/* Selfgen stats per hwQ */
- A_UINT32 num_bar; /* Number of SU/MU BAR frames posted to hwQ */
- A_UINT32 rts; /* Number of RTS frames posted to hwQ */
- A_UINT32 cts2self; /* Number of cts2self frames posted to hwQ */
- A_UINT32 qos_null; /* Number of qos null frames posted to hwQ */
+ A_UINT32 num_bar; /* Number of SU/MU BAR frames posted to hwQ */
+ A_UINT32 rts; /* Number of RTS frames posted to hwQ */
+ A_UINT32 cts2self; /* Number of cts2self frames posted to hwQ */
+ A_UINT32 qos_null; /* Number of qos null frames posted to hwQ */
/* MPDU level stats */
- A_UINT32 mpdu_tried_cnt; /* mpdus tried Tx by HWSCH/TQM */
- A_UINT32 mpdu_queued_cnt; /* mpdus queued to HWSCH */
- A_UINT32 mpdu_ack_fail_cnt; /* mpdus tried but ack was not received */
- A_UINT32 mpdu_filt_cnt; /* This will include sched cmd flush and time based discard */
- A_UINT32 false_mpdu_ack_count; /* Number of MPDUs for which ACK was sucessful but no Tx happened */
+ A_UINT32 mpdu_tried_cnt; /* mpdus tried Tx by HWSCH/TQM */
+ A_UINT32 mpdu_queued_cnt; /* mpdus queued to HWSCH */
+ A_UINT32 mpdu_ack_fail_cnt; /* mpdus tried but ack was not received */
+ A_UINT32 mpdu_filt_cnt; /* This will include sched cmd flush and time based discard */
+ A_UINT32 false_mpdu_ack_count; /* Number of MPDUs for which ACK was sucessful but no Tx happened */
- A_UINT32 txq_timeout; /* Number of times txq timeout happened */
+ A_UINT32 txq_timeout; /* Number of times txq timeout happened */
} htt_tx_hwq_stats_cmn_tlv;
-#define HTT_TX_HWQ_DIFS_LATENCY_STATS_TLV_SZ(_num_elems) ( sizeof(A_UINT32) + /* hist_intvl */ \
+#define HTT_TX_HWQ_DIFS_LATENCY_STATS_TLV_SZ(_num_elems) (sizeof(A_UINT32) + /* hist_intvl */ \
(sizeof(A_UINT32) * (_num_elems)))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 hist_intvl;
+ A_UINT32 hist_intvl;
/* histogram of ppdu post to hwsch - > cmd status received */
A_UINT32 difs_latency_hist[1]; /* HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS */
} htt_tx_hwq_difs_latency_stats_tlv_v;
@@ -1448,7 +1439,7 @@ typedef struct {
* */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 hist_bin_size;
+ A_UINT32 hist_bin_size;
/* Histogram of number of mpdus on tried mpdu */
A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_HWQ_TRIED_MPDU_CNT_HIST */
} htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v;
@@ -1492,30 +1483,30 @@ typedef struct {
* HWQ distinctly.
*/
typedef struct _htt_tx_hwq_stats {
- htt_stats_string_tlv hwq_str_tlv;
- htt_tx_hwq_stats_cmn_tlv cmn_tlv;
- htt_tx_hwq_difs_latency_stats_tlv_v difs_tlv;
- htt_tx_hwq_cmd_result_stats_tlv_v cmd_result_tlv;
- htt_tx_hwq_cmd_stall_stats_tlv_v cmd_stall_tlv;
- htt_tx_hwq_fes_result_stats_tlv_v fes_stats_tlv;
+ htt_stats_string_tlv hwq_str_tlv;
+ htt_tx_hwq_stats_cmn_tlv cmn_tlv;
+ htt_tx_hwq_difs_latency_stats_tlv_v difs_tlv;
+ htt_tx_hwq_cmd_result_stats_tlv_v cmd_result_tlv;
+ htt_tx_hwq_cmd_stall_stats_tlv_v cmd_stall_tlv;
+ htt_tx_hwq_fes_result_stats_tlv_v fes_stats_tlv;
htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v tried_mpdu_tlv;
- htt_tx_hwq_txop_used_cnt_hist_tlv_v txop_used_tlv;
+ htt_tx_hwq_txop_used_cnt_hist_tlv_v txop_used_tlv;
} htt_tx_hwq_stats_t;
/* == TX SELFGEN STATS == */
-#define HTT_TX_SELFGEN_CMN_STATS_MAC_ID_M 0x000000ff
-#define HTT_TX_SELFGEN_CMN_STATS_MAC_ID_S 0
+#define HTT_TX_SELFGEN_CMN_STATS_MAC_ID_M 0x000000ff
+#define HTT_TX_SELFGEN_CMN_STATS_MAC_ID_S 0
#define HTT_TX_SELFGEN_CMN_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_TX_SELFGEN_CMN_STATS_MAC_ID_M) >> \
- HTT_TX_SELFGEN_CMN_STATS_MAC_ID_S)
+ HTT_TX_SELFGEN_CMN_STATS_MAC_ID_S)
#define HTT_TX_SELFGEN_CMN_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_SELFGEN_CMN_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_SELFGEN_CMN_STATS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_SELFGEN_CMN_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_SELFGEN_CMN_STATS_MAC_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -1563,10 +1554,11 @@ typedef struct {
A_UINT32 ax_mu_mimo_brpoll_5; /* MU user 5 */
A_UINT32 ax_mu_mimo_brpoll_6; /* MU user 6 */
A_UINT32 ax_mu_mimo_brpoll_7; /* MU user 7 */
- A_UINT32 ax_basic_trigger;
+ A_UINT32 ax_basic_trigger;
A_UINT32 ax_bsr_trigger;
A_UINT32 ax_mu_bar_trigger;
A_UINT32 ax_mu_rts_trigger;
+ A_UINT32 ax_ulmumimo_trigger;
} htt_tx_selfgen_ax_stats_tlv;
typedef struct {
@@ -1595,10 +1587,11 @@ typedef struct {
A_UINT32 ax_mu_mimo_brp5_err;
A_UINT32 ax_mu_mimo_brp6_err;
A_UINT32 ax_mu_mimo_brp7_err;
- A_UINT32 ax_basic_trigger_err;
+ A_UINT32 ax_basic_trigger_err;
A_UINT32 ax_bsr_trigger_err;
A_UINT32 ax_mu_bar_trigger_err;
A_UINT32 ax_mu_rts_trigger_err;
+ A_UINT32 ax_ulmumimo_trigger_err;
} htt_tx_selfgen_ax_err_stats_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SELFGEN_INFO
@@ -1629,7 +1622,7 @@ typedef struct {
#define HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS 4
#define HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS 8
-#define HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS 74
+#define HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS 74
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -1681,8 +1674,8 @@ typedef struct {
A_UINT32 ax_ofdma_ampdu_underrun_usr;
} htt_tx_pdev_mu_mimo_mpdu_stats_tlv;
-#define HTT_STATS_TX_SCHED_MODE_MU_MIMO_AC 1 /* SCHED_TX_MODE_MU_MIMO_AC */
-#define HTT_STATS_TX_SCHED_MODE_MU_MIMO_AX 2 /* SCHED_TX_MODE_MU_MIMO_AX */
+#define HTT_STATS_TX_SCHED_MODE_MU_MIMO_AC 1 /* SCHED_TX_MODE_MU_MIMO_AC */
+#define HTT_STATS_TX_SCHED_MODE_MU_MIMO_AX 2 /* SCHED_TX_MODE_MU_MIMO_AX */
#define HTT_STATS_TX_SCHED_MODE_MU_OFDMA_AX 3 /* SCHED_TX_MODE_MU_OFDMA_AX */
typedef struct {
@@ -1783,31 +1776,31 @@ typedef struct {
A_UINT32 sched_ineligibility[1]; /* indexed by htt_sched_txq_sched_ineligibility_tlv_enum */
} htt_sched_txq_sched_ineligibility_tlv_v;
-#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_M 0x000000ff
-#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_S 0
+#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_M 0x000000ff
+#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_S 0
-#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_M 0x0000ff00
-#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_S 8
+#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_M 0x0000ff00
+#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_S 8
#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_GET(_var) \
(((_var) & HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_M) >> \
- HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_S)
+ HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_S)
#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID_S)); \
+ } while (0)
#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_GET(_var) \
(((_var) & HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_M) >> \
- HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_S)
+ HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_S)
#define HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TXQUEUE_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -1859,21 +1852,22 @@ typedef struct {
A_UINT32 dur_based_sendn_term;
} htt_tx_pdev_stats_sched_per_txq_tlv;
-#define HTT_STATS_TX_SCHED_CMN_MAC_ID_M 0x000000ff
-#define HTT_STATS_TX_SCHED_CMN_MAC_ID_S 0
+#define HTT_STATS_TX_SCHED_CMN_MAC_ID_M 0x000000ff
+#define HTT_STATS_TX_SCHED_CMN_MAC_ID_S 0
#define HTT_STATS_TX_SCHED_CMN_MAC_ID_GET(_var) \
(((_var) & HTT_STATS_TX_SCHED_CMN_MAC_ID_M) >> \
- HTT_STATS_TX_SCHED_CMN_MAC_ID_S)
+ HTT_STATS_TX_SCHED_CMN_MAC_ID_S)
#define HTT_STATS_TX_SCHED_CMN_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_STATS_TX_SCHED_CMN_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_STATS_TX_SCHED_CMN_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_STATS_TX_SCHED_CMN_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_STATS_TX_SCHED_CMN_MAC_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
+
/* BIT [ 7 : 0] :- mac_id
* BIT [31 : 8] :- reserved
*/
@@ -1898,19 +1892,18 @@ typedef struct {
typedef struct {
htt_stats_tx_sched_cmn_tlv cmn_tlv;
struct _txq_tx_sched_stats {
- htt_tx_pdev_stats_sched_per_txq_tlv txq_tlv;
- htt_sched_txq_cmd_posted_tlv_v cmd_posted_tlv;
- htt_sched_txq_cmd_reaped_tlv_v cmd_reaped_tlv;
- htt_sched_txq_sched_order_su_tlv_v sched_order_su_tlv;
+ htt_tx_pdev_stats_sched_per_txq_tlv txq_tlv;
+ htt_sched_txq_cmd_posted_tlv_v cmd_posted_tlv;
+ htt_sched_txq_cmd_reaped_tlv_v cmd_reaped_tlv;
+ htt_sched_txq_sched_order_su_tlv_v sched_order_su_tlv;
htt_sched_txq_sched_ineligibility_tlv_v sched_ineligibility_tlv;
} txq[1];
} htt_stats_tx_sched_t;
-
/* == TQM STATS == */
-#define HTT_TX_TQM_MAX_GEN_MPDU_END_REASON 16
-#define HTT_TX_TQM_MAX_LIST_MPDU_END_REASON 16
+#define HTT_TX_TQM_MAX_GEN_MPDU_END_REASON 16
+#define HTT_TX_TQM_MAX_LIST_MPDU_END_REASON 16
#define HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS 16
#define HTT_TX_TQM_GEN_MPDU_STATS_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
@@ -1918,7 +1911,7 @@ typedef struct {
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 gen_mpdu_end_reason[1]; /* HTT_TX_TQM_MAX_GEN_MPDU_END_REASON */
+ A_UINT32 gen_mpdu_end_reason[1]; /* HTT_TX_TQM_MAX_GEN_MPDU_END_REASON */
} htt_tx_tqm_gen_mpdu_stats_tlv_v;
#define HTT_TX_TQM_LIST_MPDU_STATS_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
@@ -1926,7 +1919,7 @@ typedef struct {
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 list_mpdu_end_reason[1]; /* HTT_TX_TQM_MAX_LIST_MPDU_END_REASON */
+ A_UINT32 list_mpdu_end_reason[1]; /* HTT_TX_TQM_MAX_LIST_MPDU_END_REASON */
} htt_tx_tqm_list_mpdu_stats_tlv_v;
#define HTT_TX_TQM_LIST_MPDU_CNT_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
@@ -1934,38 +1927,38 @@ typedef struct {
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 list_mpdu_cnt_hist[1]; /* HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS */
+ A_UINT32 list_mpdu_cnt_hist[1]; /* HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS */
} htt_tx_tqm_list_mpdu_cnt_tlv_v;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 msdu_count;
- A_UINT32 mpdu_count;
- A_UINT32 remove_msdu;
- A_UINT32 remove_mpdu;
- A_UINT32 remove_msdu_ttl;
- A_UINT32 send_bar;
- A_UINT32 bar_sync;
- A_UINT32 notify_mpdu;
- A_UINT32 sync_cmd;
- A_UINT32 write_cmd;
- A_UINT32 hwsch_trigger;
- A_UINT32 ack_tlv_proc;
- A_UINT32 gen_mpdu_cmd;
- A_UINT32 gen_list_cmd;
- A_UINT32 remove_mpdu_cmd;
- A_UINT32 remove_mpdu_tried_cmd;
- A_UINT32 mpdu_queue_stats_cmd;
- A_UINT32 mpdu_head_info_cmd;
- A_UINT32 msdu_flow_stats_cmd;
- A_UINT32 remove_msdu_cmd;
- A_UINT32 remove_msdu_ttl_cmd;
- A_UINT32 flush_cache_cmd;
- A_UINT32 update_mpduq_cmd;
- A_UINT32 enqueue;
- A_UINT32 enqueue_notify;
- A_UINT32 notify_mpdu_at_head;
- A_UINT32 notify_mpdu_state_valid;
+ A_UINT32 msdu_count;
+ A_UINT32 mpdu_count;
+ A_UINT32 remove_msdu;
+ A_UINT32 remove_mpdu;
+ A_UINT32 remove_msdu_ttl;
+ A_UINT32 send_bar;
+ A_UINT32 bar_sync;
+ A_UINT32 notify_mpdu;
+ A_UINT32 sync_cmd;
+ A_UINT32 write_cmd;
+ A_UINT32 hwsch_trigger;
+ A_UINT32 ack_tlv_proc;
+ A_UINT32 gen_mpdu_cmd;
+ A_UINT32 gen_list_cmd;
+ A_UINT32 remove_mpdu_cmd;
+ A_UINT32 remove_mpdu_tried_cmd;
+ A_UINT32 mpdu_queue_stats_cmd;
+ A_UINT32 mpdu_head_info_cmd;
+ A_UINT32 msdu_flow_stats_cmd;
+ A_UINT32 remove_msdu_cmd;
+ A_UINT32 remove_msdu_ttl_cmd;
+ A_UINT32 flush_cache_cmd;
+ A_UINT32 update_mpduq_cmd;
+ A_UINT32 enqueue;
+ A_UINT32 enqueue_notify;
+ A_UINT32 notify_mpdu_at_head;
+ A_UINT32 notify_mpdu_state_valid;
/*
* On receiving TQM_FLOW_NOT_EMPTY_STATUS from TQM, (on MSDUs being enqueued
* the flow is non empty), if the number of MSDUs is greater than the threshold,
@@ -1984,18 +1977,18 @@ typedef struct {
A_UINT32 sched_nonudp_notify2;
} htt_tx_tqm_pdev_stats_tlv_v;
-#define HTT_TX_TQM_CMN_STATS_MAC_ID_M 0x000000ff
-#define HTT_TX_TQM_CMN_STATS_MAC_ID_S 0
+#define HTT_TX_TQM_CMN_STATS_MAC_ID_M 0x000000ff
+#define HTT_TX_TQM_CMN_STATS_MAC_ID_S 0
#define HTT_TX_TQM_CMN_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_TX_TQM_CMN_STATS_MAC_ID_M) >> \
- HTT_TX_TQM_CMN_STATS_MAC_ID_S)
+ HTT_TX_TQM_CMN_STATS_MAC_ID_S)
#define HTT_TX_TQM_CMN_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_TQM_CMN_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_TQM_CMN_STATS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_TQM_CMN_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_TQM_CMN_STATS_MAC_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -2037,40 +2030,40 @@ typedef struct {
* Instead, use the constituent TLV structures to fill/parse.
*/
typedef struct {
- htt_tx_tqm_cmn_stats_tlv cmn_tlv;
- htt_tx_tqm_error_stats_tlv err_tlv;
- htt_tx_tqm_gen_mpdu_stats_tlv_v gen_mpdu_stats_tlv;
+ htt_tx_tqm_cmn_stats_tlv cmn_tlv;
+ htt_tx_tqm_error_stats_tlv err_tlv;
+ htt_tx_tqm_gen_mpdu_stats_tlv_v gen_mpdu_stats_tlv;
htt_tx_tqm_list_mpdu_stats_tlv_v list_mpdu_stats_tlv;
- htt_tx_tqm_list_mpdu_cnt_tlv_v list_mpdu_cnt_tlv;
- htt_tx_tqm_pdev_stats_tlv_v tqm_pdev_stats_tlv;
+ htt_tx_tqm_list_mpdu_cnt_tlv_v list_mpdu_cnt_tlv;
+ htt_tx_tqm_pdev_stats_tlv_v tqm_pdev_stats_tlv;
} htt_tx_tqm_pdev_stats_t;
/* == TQM CMDQ stats == */
-#define HTT_TX_TQM_CMDQ_STATUS_MAC_ID_M 0x000000ff
-#define HTT_TX_TQM_CMDQ_STATUS_MAC_ID_S 0
+#define HTT_TX_TQM_CMDQ_STATUS_MAC_ID_M 0x000000ff
+#define HTT_TX_TQM_CMDQ_STATUS_MAC_ID_S 0
-#define HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_M 0x0000ff00
-#define HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_S 8
+#define HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_M 0x0000ff00
+#define HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_S 8
#define HTT_TX_TQM_CMDQ_STATUS_MAC_ID_GET(_var) \
(((_var) & HTT_TX_TQM_CMDQ_STATUS_MAC_ID_M) >> \
- HTT_TX_TQM_CMDQ_STATUS_MAC_ID_S)
+ HTT_TX_TQM_CMDQ_STATUS_MAC_ID_S)
#define HTT_TX_TQM_CMDQ_STATUS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_TQM_CMDQ_STATUS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_TQM_CMDQ_STATUS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_TQM_CMDQ_STATUS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_TQM_CMDQ_STATUS_MAC_ID_S)); \
+ } while (0)
#define HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_GET(_var) \
(((_var) & HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_M) >> \
- HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_S)
+ HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_S)
#define HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_TQM_CMDQ_STATUS_CMDQ_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -2104,7 +2097,7 @@ typedef struct {
*/
typedef struct {
struct _cmdq_stats {
- htt_stats_string_tlv cmdq_str_tlv;
+ htt_stats_string_tlv cmdq_str_tlv;
htt_tx_tqm_cmdq_status_tlv status_tlv;
} q[1];
} htt_tx_tqm_cmdq_stats_t;
@@ -2114,120 +2107,120 @@ typedef struct {
/* Structures for tx de stats */
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 m1_packets;
- A_UINT32 m2_packets;
- A_UINT32 m3_packets;
- A_UINT32 m4_packets;
- A_UINT32 g1_packets;
- A_UINT32 g2_packets;
+ A_UINT32 m1_packets;
+ A_UINT32 m2_packets;
+ A_UINT32 m3_packets;
+ A_UINT32 m4_packets;
+ A_UINT32 g1_packets;
+ A_UINT32 g2_packets;
} htt_tx_de_eapol_packets_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 ap_bss_peer_not_found;
- A_UINT32 ap_bcast_mcast_no_peer;
- A_UINT32 sta_delete_in_progress;
- A_UINT32 ibss_no_bss_peer;
- A_UINT32 invaild_vdev_type;
- A_UINT32 invalid_ast_peer_entry;
- A_UINT32 peer_entry_invalid;
- A_UINT32 ethertype_not_ip;
- A_UINT32 eapol_lookup_failed;
- A_UINT32 qpeer_not_allow_data;
- A_UINT32 fse_tid_override;
- A_UINT32 ipv6_jumbogram_zero_length;
- A_UINT32 qos_to_non_qos_in_prog;
+ A_UINT32 ap_bss_peer_not_found;
+ A_UINT32 ap_bcast_mcast_no_peer;
+ A_UINT32 sta_delete_in_progress;
+ A_UINT32 ibss_no_bss_peer;
+ A_UINT32 invaild_vdev_type;
+ A_UINT32 invalid_ast_peer_entry;
+ A_UINT32 peer_entry_invalid;
+ A_UINT32 ethertype_not_ip;
+ A_UINT32 eapol_lookup_failed;
+ A_UINT32 qpeer_not_allow_data;
+ A_UINT32 fse_tid_override;
+ A_UINT32 ipv6_jumbogram_zero_length;
+ A_UINT32 qos_to_non_qos_in_prog;
} htt_tx_de_classify_failed_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 arp_packets;
- A_UINT32 igmp_packets;
- A_UINT32 dhcp_packets;
- A_UINT32 host_inspected;
- A_UINT32 htt_included;
- A_UINT32 htt_valid_mcs;
- A_UINT32 htt_valid_nss;
- A_UINT32 htt_valid_preamble_type;
- A_UINT32 htt_valid_chainmask;
- A_UINT32 htt_valid_guard_interval;
- A_UINT32 htt_valid_retries;
- A_UINT32 htt_valid_bw_info;
- A_UINT32 htt_valid_power;
- A_UINT32 htt_valid_key_flags;
- A_UINT32 htt_valid_no_encryption;
- A_UINT32 fse_entry_count;
- A_UINT32 fse_priority_be;
- A_UINT32 fse_priority_high;
- A_UINT32 fse_priority_low;
- A_UINT32 fse_traffic_ptrn_be;
- A_UINT32 fse_traffic_ptrn_over_sub;
- A_UINT32 fse_traffic_ptrn_bursty;
- A_UINT32 fse_traffic_ptrn_interactive;
- A_UINT32 fse_traffic_ptrn_periodic;
- A_UINT32 fse_hwqueue_alloc;
- A_UINT32 fse_hwqueue_created;
- A_UINT32 fse_hwqueue_send_to_host;
- A_UINT32 mcast_entry;
- A_UINT32 bcast_entry;
- A_UINT32 htt_update_peer_cache;
- A_UINT32 htt_learning_frame;
- A_UINT32 fse_invalid_peer;
+ A_UINT32 arp_packets;
+ A_UINT32 igmp_packets;
+ A_UINT32 dhcp_packets;
+ A_UINT32 host_inspected;
+ A_UINT32 htt_included;
+ A_UINT32 htt_valid_mcs;
+ A_UINT32 htt_valid_nss;
+ A_UINT32 htt_valid_preamble_type;
+ A_UINT32 htt_valid_chainmask;
+ A_UINT32 htt_valid_guard_interval;
+ A_UINT32 htt_valid_retries;
+ A_UINT32 htt_valid_bw_info;
+ A_UINT32 htt_valid_power;
+ A_UINT32 htt_valid_key_flags;
+ A_UINT32 htt_valid_no_encryption;
+ A_UINT32 fse_entry_count;
+ A_UINT32 fse_priority_be;
+ A_UINT32 fse_priority_high;
+ A_UINT32 fse_priority_low;
+ A_UINT32 fse_traffic_ptrn_be;
+ A_UINT32 fse_traffic_ptrn_over_sub;
+ A_UINT32 fse_traffic_ptrn_bursty;
+ A_UINT32 fse_traffic_ptrn_interactive;
+ A_UINT32 fse_traffic_ptrn_periodic;
+ A_UINT32 fse_hwqueue_alloc;
+ A_UINT32 fse_hwqueue_created;
+ A_UINT32 fse_hwqueue_send_to_host;
+ A_UINT32 mcast_entry;
+ A_UINT32 bcast_entry;
+ A_UINT32 htt_update_peer_cache;
+ A_UINT32 htt_learning_frame;
+ A_UINT32 fse_invalid_peer;
/*
* mec_notify is HTT TX WBM multicast echo check notification
* from firmware to host. FW sends SA addresses to host for all
* multicast/broadcast packets received on STA side.
*/
- A_UINT32 mec_notify;
+ A_UINT32 mec_notify;
} htt_tx_de_classify_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 eok;
- A_UINT32 classify_done;
- A_UINT32 lookup_failed;
- A_UINT32 send_host_dhcp;
- A_UINT32 send_host_mcast;
- A_UINT32 send_host_unknown_dest;
- A_UINT32 send_host;
- A_UINT32 status_invalid;
+ A_UINT32 eok;
+ A_UINT32 classify_done;
+ A_UINT32 lookup_failed;
+ A_UINT32 send_host_dhcp;
+ A_UINT32 send_host_mcast;
+ A_UINT32 send_host_unknown_dest;
+ A_UINT32 send_host;
+ A_UINT32 status_invalid;
} htt_tx_de_classify_status_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 enqueued_pkts;
- A_UINT32 to_tqm;
- A_UINT32 to_tqm_bypass;
+ A_UINT32 enqueued_pkts;
+ A_UINT32 to_tqm;
+ A_UINT32 to_tqm_bypass;
} htt_tx_de_enqueue_packets_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 discarded_pkts;
- A_UINT32 local_frames;
- A_UINT32 is_ext_msdu;
+ A_UINT32 discarded_pkts;
+ A_UINT32 local_frames;
+ A_UINT32 is_ext_msdu;
} htt_tx_de_enqueue_discard_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 tcl_dummy_frame;
- A_UINT32 tqm_dummy_frame;
- A_UINT32 tqm_notify_frame;
- A_UINT32 fw2wbm_enq;
- A_UINT32 tqm_bypass_frame;
+ A_UINT32 tcl_dummy_frame;
+ A_UINT32 tqm_dummy_frame;
+ A_UINT32 tqm_notify_frame;
+ A_UINT32 fw2wbm_enq;
+ A_UINT32 tqm_bypass_frame;
} htt_tx_de_compl_stats_tlv;
-#define HTT_TX_DE_CMN_STATS_MAC_ID_M 0x000000ff
-#define HTT_TX_DE_CMN_STATS_MAC_ID_S 0
+#define HTT_TX_DE_CMN_STATS_MAC_ID_M 0x000000ff
+#define HTT_TX_DE_CMN_STATS_MAC_ID_S 0
#define HTT_TX_DE_CMN_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_TX_DE_CMN_STATS_MAC_ID_M) >> \
- HTT_TX_DE_CMN_STATS_MAC_ID_S)
+ HTT_TX_DE_CMN_STATS_MAC_ID_S)
#define HTT_TX_DE_CMN_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_DE_CMN_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_DE_CMN_STATS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_DE_CMN_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_DE_CMN_STATS_MAC_ID_S)); \
+ } while (0)
/*
* The htt_tx_de_fw2wbm_ring_full_hist_tlv is a histogram of time we waited
@@ -2241,8 +2234,9 @@ typedef struct {
* ENTRIES_PER_BIN_COUNT)
*/
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
- A_UINT32 fw2wbm_ring_full_hist[1];
+ htt_tlv_hdr_t tlv_hdr;
+
+ A_UINT32 fw2wbm_ring_full_hist[1];
} htt_tx_de_fw2wbm_ring_full_hist_tlv;
typedef struct {
@@ -2250,15 +2244,15 @@ typedef struct {
/* BIT [ 7 : 0] :- mac_id
* BIT [31 : 8] :- reserved
*/
- A_UINT32 mac_id__word;
+ A_UINT32 mac_id__word;
/* Global Stats */
- A_UINT32 tcl2fw_entry_count;
- A_UINT32 not_to_fw;
- A_UINT32 invalid_pdev_vdev_peer;
- A_UINT32 tcl_res_invalid_addrx;
- A_UINT32 wbm2fw_entry_count;
- A_UINT32 invalid_pdev;
+ A_UINT32 tcl2fw_entry_count;
+ A_UINT32 not_to_fw;
+ A_UINT32 invalid_pdev_vdev_peer;
+ A_UINT32 tcl_res_invalid_addrx;
+ A_UINT32 wbm2fw_entry_count;
+ A_UINT32 invalid_pdev;
} htt_tx_de_cmn_stats_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_TX_DE_INFO
@@ -2291,119 +2285,119 @@ typedef struct {
/* == RING-IF STATS == */
/* DWORD num_elems__prefetch_tail_idx */
-#define HTT_RING_IF_STATS_NUM_ELEMS_M 0x0000ffff
-#define HTT_RING_IF_STATS_NUM_ELEMS_S 0
+#define HTT_RING_IF_STATS_NUM_ELEMS_M 0x0000ffff
+#define HTT_RING_IF_STATS_NUM_ELEMS_S 0
-#define HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_M 0xffff0000
-#define HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_S 16
+#define HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_M 0xffff0000
+#define HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_S 16
#define HTT_RING_IF_STATS_NUM_ELEMS_GET(_var) \
(((_var) & HTT_RING_IF_STATS_NUM_ELEMS_M) >> \
- HTT_RING_IF_STATS_NUM_ELEMS_S)
+ HTT_RING_IF_STATS_NUM_ELEMS_S)
#define HTT_RING_IF_STATS_NUM_ELEMS_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_NUM_ELEMS, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_NUM_ELEMS_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_NUM_ELEMS, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_NUM_ELEMS_S)); \
+ } while (0)
#define HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_GET(_var) \
(((_var) & HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_M) >> \
- HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_S)
+ HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_S)
#define HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_PREFETCH_TAIL_IDX, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_PREFETCH_TAIL_IDX, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_PREFETCH_TAIL_IDX_S)); \
+ } while (0)
/* DWORD head_idx__tail_idx */
-#define HTT_RING_IF_STATS_HEAD_IDX_M 0x0000ffff
-#define HTT_RING_IF_STATS_HEAD_IDX_S 0
+#define HTT_RING_IF_STATS_HEAD_IDX_M 0x0000ffff
+#define HTT_RING_IF_STATS_HEAD_IDX_S 0
-#define HTT_RING_IF_STATS_TAIL_IDX_M 0xffff0000
-#define HTT_RING_IF_STATS_TAIL_IDX_S 16
+#define HTT_RING_IF_STATS_TAIL_IDX_M 0xffff0000
+#define HTT_RING_IF_STATS_TAIL_IDX_S 16
#define HTT_RING_IF_STATS_HEAD_IDX_GET(_var) \
(((_var) & HTT_RING_IF_STATS_HEAD_IDX_M) >> \
- HTT_RING_IF_STATS_HEAD_IDX_S)
+ HTT_RING_IF_STATS_HEAD_IDX_S)
#define HTT_RING_IF_STATS_HEAD_IDX_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_HEAD_IDX, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_HEAD_IDX_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_HEAD_IDX, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_HEAD_IDX_S)); \
+ } while (0)
#define HTT_RING_IF_STATS_TAIL_IDX_GET(_var) \
(((_var) & HTT_RING_IF_STATS_TAIL_IDX_M) >> \
- HTT_RING_IF_STATS_TAIL_IDX_S)
+ HTT_RING_IF_STATS_TAIL_IDX_S)
#define HTT_RING_IF_STATS_TAIL_IDX_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_TAIL_IDX, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_TAIL_IDX_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_TAIL_IDX, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_TAIL_IDX_S)); \
+ } while (0)
/* DWORD shadow_head_idx__shadow_tail_idx */
-#define HTT_RING_IF_STATS_SHADOW_HEAD_IDX_M 0x0000ffff
-#define HTT_RING_IF_STATS_SHADOW_HEAD_IDX_S 0
+#define HTT_RING_IF_STATS_SHADOW_HEAD_IDX_M 0x0000ffff
+#define HTT_RING_IF_STATS_SHADOW_HEAD_IDX_S 0
-#define HTT_RING_IF_STATS_SHADOW_TAIL_IDX_M 0xffff0000
-#define HTT_RING_IF_STATS_SHADOW_TAIL_IDX_S 16
+#define HTT_RING_IF_STATS_SHADOW_TAIL_IDX_M 0xffff0000
+#define HTT_RING_IF_STATS_SHADOW_TAIL_IDX_S 16
#define HTT_RING_IF_STATS_SHADOW_HEAD_IDX_GET(_var) \
(((_var) & HTT_RING_IF_STATS_SHADOW_HEAD_IDX_M) >> \
- HTT_RING_IF_STATS_SHADOW_HEAD_IDX_S)
+ HTT_RING_IF_STATS_SHADOW_HEAD_IDX_S)
#define HTT_RING_IF_STATS_SHADOW_HEAD_IDX_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_SHADOW_HEAD_IDX, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_SHADOW_HEAD_IDX_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_SHADOW_HEAD_IDX, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_SHADOW_HEAD_IDX_S)); \
+ } while (0)
#define HTT_RING_IF_STATS_SHADOW_TAIL_IDX_GET(_var) \
(((_var) & HTT_RING_IF_STATS_SHADOW_TAIL_IDX_M) >> \
- HTT_RING_IF_STATS_SHADOW_TAIL_IDX_S)
+ HTT_RING_IF_STATS_SHADOW_TAIL_IDX_S)
#define HTT_RING_IF_STATS_SHADOW_TAIL_IDX_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_SHADOW_TAIL_IDX, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_SHADOW_TAIL_IDX_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_SHADOW_TAIL_IDX, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_SHADOW_TAIL_IDX_S)); \
+ } while (0)
/* DWORD lwm_thresh__hwm_thresh */
-#define HTT_RING_IF_STATS_LWM_THRESHOLD_M 0x0000ffff
-#define HTT_RING_IF_STATS_LWM_THRESHOLD_S 0
+#define HTT_RING_IF_STATS_LWM_THRESHOLD_M 0x0000ffff
+#define HTT_RING_IF_STATS_LWM_THRESHOLD_S 0
-#define HTT_RING_IF_STATS_HWM_THRESHOLD_M 0xffff0000
-#define HTT_RING_IF_STATS_HWM_THRESHOLD_S 16
+#define HTT_RING_IF_STATS_HWM_THRESHOLD_M 0xffff0000
+#define HTT_RING_IF_STATS_HWM_THRESHOLD_S 16
#define HTT_RING_IF_STATS_LWM_THRESHOLD_GET(_var) \
(((_var) & HTT_RING_IF_STATS_LWM_THRESHOLD_M) >> \
- HTT_RING_IF_STATS_LWM_THRESHOLD_S)
+ HTT_RING_IF_STATS_LWM_THRESHOLD_S)
#define HTT_RING_IF_STATS_LWM_THRESHOLD_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_LWM_THRESHOLD, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_LWM_THRESHOLD_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_LWM_THRESHOLD, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_LWM_THRESHOLD_S)); \
+ } while (0)
#define HTT_RING_IF_STATS_HWM_THRESHOLD_GET(_var) \
(((_var) & HTT_RING_IF_STATS_HWM_THRESHOLD_M) >> \
- HTT_RING_IF_STATS_HWM_THRESHOLD_S)
+ HTT_RING_IF_STATS_HWM_THRESHOLD_S)
#define HTT_RING_IF_STATS_HWM_THRESHOLD_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_HWM_THRESHOLD, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_STATS_HWM_THRESHOLD_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_STATS_HWM_THRESHOLD, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_STATS_HWM_THRESHOLD_S)); \
+ } while (0)
-
-#define HTT_STATS_LOW_WM_BINS 5
-#define HTT_STATS_HIGH_WM_BINS 5
+#define HTT_STATS_LOW_WM_BINS 5
+#define HTT_STATS_HIGH_WM_BINS 5
typedef struct {
A_UINT32 base_addr; /* DWORD aligned base memory address of the ring */
+
A_UINT32 elem_size; /* size of each ring element */
/* BIT [15 : 0] :- num_elems
@@ -2427,25 +2421,25 @@ typedef struct {
A_UINT32 underrun_hit_count;
A_UINT32 prod_blockwait_count;
A_UINT32 cons_blockwait_count;
- A_UINT32 low_wm_hit_count[HTT_STATS_LOW_WM_BINS]; /* FIX THIS: explain what each array element is for */
+ A_UINT32 low_wm_hit_count[HTT_STATS_LOW_WM_BINS]; /* FIX THIS: explain what each array element is for */
A_UINT32 high_wm_hit_count[HTT_STATS_HIGH_WM_BINS]; /* FIX THIS: explain what each array element is for */
} htt_ring_if_stats_tlv;
-#define HTT_RING_IF_CMN_MAC_ID_M 0x000000ff
-#define HTT_RING_IF_CMN_MAC_ID_S 0
+#define HTT_RING_IF_CMN_MAC_ID_M 0x000000ff
+#define HTT_RING_IF_CMN_MAC_ID_S 0
#define HTT_RING_IF_CMN_MAC_ID_GET(_var) \
(((_var) & HTT_RING_IF_CMN_MAC_ID_M) >> \
- HTT_RING_IF_CMN_MAC_ID_S)
+ HTT_RING_IF_CMN_MAC_ID_S)
#define HTT_RING_IF_CMN_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RING_IF_CMN_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_RING_IF_CMN_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RING_IF_CMN_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_RING_IF_CMN_MAC_ID_S)); \
+ } while (0)
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
/* BIT [ 7 : 0] :- mac_id
* BIT [31 : 8] :- reserved
@@ -2468,7 +2462,7 @@ typedef struct {
htt_ring_if_cmn_tlv cmn_tlv;
/* Variable based on the Number of records. */
struct _ring_if {
- htt_stats_string_tlv ring_str_tlv;
+ htt_stats_string_tlv ring_str_tlv;
htt_ring_if_stats_tlv ring_tlv;
} r[1];
} htt_ring_if_stats_t;
@@ -2479,13 +2473,13 @@ typedef struct {
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
/* Number of DWORDS used per user and per client */
A_UINT32 dwords_used_by_user_n[1];
} htt_sfm_client_user_tlv_v;
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
/* Client ID */
A_UINT32 client_id;
/* Minimum number of buffers */
@@ -2502,21 +2496,21 @@ typedef struct {
A_UINT32 num_users;
} htt_sfm_client_tlv;
-#define HTT_SFM_CMN_MAC_ID_M 0x000000ff
-#define HTT_SFM_CMN_MAC_ID_S 0
+#define HTT_SFM_CMN_MAC_ID_M 0x000000ff
+#define HTT_SFM_CMN_MAC_ID_S 0
#define HTT_SFM_CMN_MAC_ID_GET(_var) \
(((_var) & HTT_SFM_CMN_MAC_ID_M) >> \
- HTT_SFM_CMN_MAC_ID_S)
+ HTT_SFM_CMN_MAC_ID_S)
#define HTT_SFM_CMN_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SFM_CMN_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_SFM_CMN_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SFM_CMN_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_SFM_CMN_MAC_ID_S)); \
+ } while (0)
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
/* BIT [ 7 : 0] :- mac_id
* BIT [31 : 8] :- reserved
@@ -2529,7 +2523,7 @@ typedef struct {
/* DEALLOCATE_BUFFERS, refer to register SFM_R0_DEALLOCATE_BUFFERS */
A_UINT32 deallocate_bufs;
/* Number of Records */
- A_UINT32 num_records;
+ A_UINT32 num_records;
} htt_sfm_cmn_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_RING_IF_INFO
@@ -2547,177 +2541,176 @@ typedef struct {
htt_sfm_cmn_tlv cmn_tlv;
/* Variable based on the Number of records. */
struct _sfm_client {
- htt_stats_string_tlv client_str_tlv;
- htt_sfm_client_tlv client_tlv;
+ htt_stats_string_tlv client_str_tlv;
+ htt_sfm_client_tlv client_tlv;
htt_sfm_client_user_tlv_v user_tlv;
} r[1];
} htt_sfm_stats_t;
/* == SRNG STATS == */
/* DWORD mac_id__ring_id__arena__ep */
-#define HTT_SRING_STATS_MAC_ID_M 0x000000ff
-#define HTT_SRING_STATS_MAC_ID_S 0
+#define HTT_SRING_STATS_MAC_ID_M 0x000000ff
+#define HTT_SRING_STATS_MAC_ID_S 0
-#define HTT_SRING_STATS_RING_ID_M 0x0000ff00
-#define HTT_SRING_STATS_RING_ID_S 8
+#define HTT_SRING_STATS_RING_ID_M 0x0000ff00
+#define HTT_SRING_STATS_RING_ID_S 8
-#define HTT_SRING_STATS_ARENA_M 0x00ff0000
-#define HTT_SRING_STATS_ARENA_S 16
+#define HTT_SRING_STATS_ARENA_M 0x00ff0000
+#define HTT_SRING_STATS_ARENA_S 16
-#define HTT_SRING_STATS_EP_TYPE_M 0x01000000
-#define HTT_SRING_STATS_EP_TYPE_S 24
+#define HTT_SRING_STATS_EP_TYPE_M 0x01000000
+#define HTT_SRING_STATS_EP_TYPE_S 24
#define HTT_SRING_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_SRING_STATS_MAC_ID_M) >> \
- HTT_SRING_STATS_MAC_ID_S)
+ HTT_SRING_STATS_MAC_ID_S)
#define HTT_SRING_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_MAC_ID_S)); \
+ } while (0)
#define HTT_SRING_STATS_RING_ID_GET(_var) \
(((_var) & HTT_SRING_STATS_RING_ID_M) >> \
- HTT_SRING_STATS_RING_ID_S)
+ HTT_SRING_STATS_RING_ID_S)
#define HTT_SRING_STATS_RING_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_RING_ID, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_RING_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_RING_ID, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_RING_ID_S)); \
+ } while (0)
#define HTT_SRING_STATS_ARENA_GET(_var) \
(((_var) & HTT_SRING_STATS_ARENA_M) >> \
- HTT_SRING_STATS_ARENA_S)
+ HTT_SRING_STATS_ARENA_S)
#define HTT_SRING_STATS_ARENA_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_ARENA, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_ARENA_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_ARENA, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_ARENA_S)); \
+ } while (0)
#define HTT_SRING_STATS_EP_TYPE_GET(_var) \
(((_var) & HTT_SRING_STATS_EP_TYPE_M) >> \
- HTT_SRING_STATS_EP_TYPE_S)
+ HTT_SRING_STATS_EP_TYPE_S)
#define HTT_SRING_STATS_EP_TYPE_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_EP_TYPE, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_EP_TYPE_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_EP_TYPE, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_EP_TYPE_S)); \
+ } while (0)
/* DWORD num_avail_words__num_valid_words */
-#define HTT_SRING_STATS_NUM_AVAIL_WORDS_M 0x0000ffff
-#define HTT_SRING_STATS_NUM_AVAIL_WORDS_S 0
+#define HTT_SRING_STATS_NUM_AVAIL_WORDS_M 0x0000ffff
+#define HTT_SRING_STATS_NUM_AVAIL_WORDS_S 0
-#define HTT_SRING_STATS_NUM_VALID_WORDS_M 0xffff0000
-#define HTT_SRING_STATS_NUM_VALID_WORDS_S 16
+#define HTT_SRING_STATS_NUM_VALID_WORDS_M 0xffff0000
+#define HTT_SRING_STATS_NUM_VALID_WORDS_S 16
#define HTT_SRING_STATS_NUM_AVAIL_WORDS_GET(_var) \
(((_var) & HTT_SRING_STATS_NUM_AVAIL_WORDS_M) >> \
- HTT_SRING_STATS_NUM_AVAIL_WORDS_S)
+ HTT_SRING_STATS_NUM_AVAIL_WORDS_S)
#define HTT_SRING_STATS_NUM_AVAIL_WORDS_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_NUM_AVAIL_WORDS, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_NUM_AVAIL_WORDS_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_NUM_AVAIL_WORDS, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_NUM_AVAIL_WORDS_S)); \
+ } while (0)
#define HTT_SRING_STATS_NUM_VALID_WORDS_GET(_var) \
(((_var) & HTT_SRING_STATS_NUM_VALID_WORDS_M) >> \
- HTT_SRING_STATS_NUM_VALID_WORDS_S)
+ HTT_SRING_STATS_NUM_VALID_WORDS_S)
#define HTT_SRING_STATS_NUM_VALID_WORDS_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_NUM_VALID_WORDS, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_NUM_VALID_WORDS_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_NUM_VALID_WORDS, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_NUM_VALID_WORDS_S)); \
+ } while (0)
/* DWORD head_ptr__tail_ptr */
-#define HTT_SRING_STATS_HEAD_PTR_M 0x0000ffff
-#define HTT_SRING_STATS_HEAD_PTR_S 0
+#define HTT_SRING_STATS_HEAD_PTR_M 0x0000ffff
+#define HTT_SRING_STATS_HEAD_PTR_S 0
-#define HTT_SRING_STATS_TAIL_PTR_M 0xffff0000
-#define HTT_SRING_STATS_TAIL_PTR_S 16
+#define HTT_SRING_STATS_TAIL_PTR_M 0xffff0000
+#define HTT_SRING_STATS_TAIL_PTR_S 16
#define HTT_SRING_STATS_HEAD_PTR_GET(_var) \
(((_var) & HTT_SRING_STATS_HEAD_PTR_M) >> \
- HTT_SRING_STATS_HEAD_PTR_S)
+ HTT_SRING_STATS_HEAD_PTR_S)
#define HTT_SRING_STATS_HEAD_PTR_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_HEAD_PTR, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_HEAD_PTR_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_HEAD_PTR, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_HEAD_PTR_S)); \
+ } while (0)
#define HTT_SRING_STATS_TAIL_PTR_GET(_var) \
(((_var) & HTT_SRING_STATS_TAIL_PTR_M) >> \
- HTT_SRING_STATS_TAIL_PTR_S)
+ HTT_SRING_STATS_TAIL_PTR_S)
#define HTT_SRING_STATS_TAIL_PTR_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_TAIL_PTR, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_TAIL_PTR_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_TAIL_PTR, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_TAIL_PTR_S)); \
+ } while (0)
/* DWORD consumer_empty__producer_full */
-#define HTT_SRING_STATS_CONSUMER_EMPTY_M 0x0000ffff
-#define HTT_SRING_STATS_CONSUMER_EMPTY_S 0
+#define HTT_SRING_STATS_CONSUMER_EMPTY_M 0x0000ffff
+#define HTT_SRING_STATS_CONSUMER_EMPTY_S 0
-#define HTT_SRING_STATS_PRODUCER_FULL_M 0xffff0000
-#define HTT_SRING_STATS_PRODUCER_FULL_S 16
+#define HTT_SRING_STATS_PRODUCER_FULL_M 0xffff0000
+#define HTT_SRING_STATS_PRODUCER_FULL_S 16
#define HTT_SRING_STATS_CONSUMER_EMPTY_GET(_var) \
(((_var) & HTT_SRING_STATS_CONSUMER_EMPTY_M) >> \
- HTT_SRING_STATS_CONSUMER_EMPTY_S)
+ HTT_SRING_STATS_CONSUMER_EMPTY_S)
#define HTT_SRING_STATS_CONSUMER_EMPTY_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_CONSUMER_EMPTY, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_CONSUMER_EMPTY_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_CONSUMER_EMPTY, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_CONSUMER_EMPTY_S)); \
+ } while (0)
#define HTT_SRING_STATS_PRODUCER_FULL_GET(_var) \
(((_var) & HTT_SRING_STATS_PRODUCER_FULL_M) >> \
- HTT_SRING_STATS_PRODUCER_FULL_S)
+ HTT_SRING_STATS_PRODUCER_FULL_S)
#define HTT_SRING_STATS_PRODUCER_FULL_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_PRODUCER_FULL, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_PRODUCER_FULL_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_PRODUCER_FULL, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_PRODUCER_FULL_S)); \
+ } while (0)
/* DWORD prefetch_count__internal_tail_ptr */
-#define HTT_SRING_STATS_PREFETCH_COUNT_M 0x0000ffff
-#define HTT_SRING_STATS_PREFETCH_COUNT_S 0
+#define HTT_SRING_STATS_PREFETCH_COUNT_M 0x0000ffff
+#define HTT_SRING_STATS_PREFETCH_COUNT_S 0
-#define HTT_SRING_STATS_INTERNAL_TP_M 0xffff0000
-#define HTT_SRING_STATS_INTERNAL_TP_S 16
+#define HTT_SRING_STATS_INTERNAL_TP_M 0xffff0000
+#define HTT_SRING_STATS_INTERNAL_TP_S 16
#define HTT_SRING_STATS_PREFETCH_COUNT_GET(_var) \
(((_var) & HTT_SRING_STATS_PREFETCH_COUNT_M) >> \
- HTT_SRING_STATS_PREFETCH_COUNT_S)
+ HTT_SRING_STATS_PREFETCH_COUNT_S)
#define HTT_SRING_STATS_PREFETCH_COUNT_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_PREFETCH_COUNT, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_PREFETCH_COUNT_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_PREFETCH_COUNT, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_PREFETCH_COUNT_S)); \
+ } while (0)
#define HTT_SRING_STATS_INTERNAL_TP_GET(_var) \
(((_var) & HTT_SRING_STATS_INTERNAL_TP_M) >> \
- HTT_SRING_STATS_INTERNAL_TP_S)
+ HTT_SRING_STATS_INTERNAL_TP_S)
#define HTT_SRING_STATS_INTERNAL_TP_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_SRING_STATS_INTERNAL_TP, _val); \
- ((_var) |= ((_val) << HTT_SRING_STATS_INTERNAL_TP_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_SRING_STATS_INTERNAL_TP, _val); \
+ ((_var) |= ((_val) << HTT_SRING_STATS_INTERNAL_TP_S)); \
+ } while (0)
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
/* BIT [ 7 : 0] :- mac_id
* BIT [15 : 8] :- ring_id
@@ -2757,8 +2750,8 @@ typedef struct {
} htt_sring_stats_tlv;
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
- A_UINT32 num_records;
+ htt_tlv_hdr_t tlv_hdr;
+ A_UINT32 num_records;
} htt_sring_cmn_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_SRNG_INFO
@@ -2776,39 +2769,38 @@ typedef struct {
/* Variable based on the Number of records. */
struct _sring_stats {
htt_stats_string_tlv sring_str_tlv;
- htt_sring_stats_tlv sring_stats_tlv;
+ htt_sring_stats_tlv sring_stats_tlv;
} r[1];
} htt_sring_stats_t;
-
/* == PDEV TX RATE CTRL STATS == */
-#define HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS 12
-#define HTT_TX_PDEV_STATS_NUM_GI_COUNTERS 4
-#define HTT_TX_PDEV_STATS_NUM_DCM_COUNTERS 5
-#define HTT_TX_PDEV_STATS_NUM_BW_COUNTERS 4
-#define HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS 8
-#define HTT_TX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
-#define HTT_TX_PDEV_STATS_NUM_LEGACY_CCK_STATS 4
-#define HTT_TX_PDEV_STATS_NUM_LEGACY_OFDM_STATS 8
-#define HTT_TX_PDEV_STATS_NUM_LTF 4
-#define HTT_TX_PDEV_STATS_NUM_11AX_TRIGGER_TYPES 6
+#define HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS 12
+#define HTT_TX_PDEV_STATS_NUM_GI_COUNTERS 4
+#define HTT_TX_PDEV_STATS_NUM_DCM_COUNTERS 5
+#define HTT_TX_PDEV_STATS_NUM_BW_COUNTERS 4
+#define HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS 8
+#define HTT_TX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
+#define HTT_TX_PDEV_STATS_NUM_LEGACY_CCK_STATS 4
+#define HTT_TX_PDEV_STATS_NUM_LEGACY_OFDM_STATS 8
+#define HTT_TX_PDEV_STATS_NUM_LTF 4
+#define HTT_TX_PDEV_STATS_NUM_11AX_TRIGGER_TYPES 6
#define HTT_TX_NUM_OF_SOUNDING_STATS_WORDS \
(HTT_TX_PDEV_STATS_NUM_BW_COUNTERS * \
- HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS)
+ HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS)
-#define HTT_TX_PDEV_RATE_STATS_MAC_ID_M 0x000000ff
-#define HTT_TX_PDEV_RATE_STATS_MAC_ID_S 0
+#define HTT_TX_PDEV_RATE_STATS_MAC_ID_M 0x000000ff
+#define HTT_TX_PDEV_RATE_STATS_MAC_ID_S 0
#define HTT_TX_PDEV_RATE_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_TX_PDEV_RATE_STATS_MAC_ID_M) >> \
- HTT_TX_PDEV_RATE_STATS_MAC_ID_S)
+ HTT_TX_PDEV_RATE_STATS_MAC_ID_S)
#define HTT_TX_PDEV_RATE_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TX_PDEV_RATE_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_TX_PDEV_RATE_STATS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TX_PDEV_RATE_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_TX_PDEV_RATE_STATS_MAC_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -2831,7 +2823,7 @@ typedef struct {
A_UINT32 tx_mu_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
A_UINT32 tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS]; /* element 0,1, ...7 -> NSS 1,2, ...8 */
- A_UINT32 tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */
+ A_UINT32 tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */
A_UINT32 tx_stbc[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
A_UINT32 tx_pream[HTT_TX_PDEV_STATS_NUM_PREAMBLE_TYPES];
@@ -2899,37 +2891,36 @@ typedef struct {
htt_tx_pdev_rate_stats_tlv rate_tlv;
} htt_tx_pdev_rate_stats_t;
-
/* == PDEV RX RATE CTRL STATS == */
-#define HTT_RX_PDEV_STATS_NUM_LEGACY_CCK_STATS 4
-#define HTT_RX_PDEV_STATS_NUM_LEGACY_OFDM_STATS 8
-#define HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS 12
-#define HTT_RX_PDEV_STATS_NUM_GI_COUNTERS 4
-#define HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS 5
-#define HTT_RX_PDEV_STATS_NUM_BW_COUNTERS 4
-#define HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS 8
-#define HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
-#define HTT_RX_PDEV_MAX_OFDMA_NUM_USER 8
+#define HTT_RX_PDEV_STATS_NUM_LEGACY_CCK_STATS 4
+#define HTT_RX_PDEV_STATS_NUM_LEGACY_OFDM_STATS 8
+#define HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS 12
+#define HTT_RX_PDEV_STATS_NUM_GI_COUNTERS 4
+#define HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS 5
+#define HTT_RX_PDEV_STATS_NUM_BW_COUNTERS 4
+#define HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS 8
+#define HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
+#define HTT_RX_PDEV_MAX_OFDMA_NUM_USER 8
#define HTT_RX_PDEV_STATS_RXEVM_MAX_PILOTS_PER_NSS 16
-#define HTT_RX_PDEV_STATS_NUM_RU_SIZE_COUNTERS 6
+#define HTT_RX_PDEV_STATS_NUM_RU_SIZE_COUNTERS 6
-#define HTT_RX_PDEV_RATE_STATS_MAC_ID_M 0x000000ff
-#define HTT_RX_PDEV_RATE_STATS_MAC_ID_S 0
+#define HTT_RX_PDEV_RATE_STATS_MAC_ID_M 0x000000ff
+#define HTT_RX_PDEV_RATE_STATS_MAC_ID_S 0
#define HTT_RX_PDEV_RATE_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_RX_PDEV_RATE_STATS_MAC_ID_M) >> \
- HTT_RX_PDEV_RATE_STATS_MAC_ID_S)
+ HTT_RX_PDEV_RATE_STATS_MAC_ID_S)
#define HTT_RX_PDEV_RATE_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RX_PDEV_RATE_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_RX_PDEV_RATE_STATS_MAC_ID_S)); \
- } while (0)
-
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RX_PDEV_RATE_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_RX_PDEV_RATE_STATS_MAC_ID_S)); \
+ } while (0)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
+
/* BIT [ 7 : 0] :- mac_id
* BIT [31 : 8] :- reserved
*/
@@ -2950,11 +2941,11 @@ typedef struct {
A_UINT32 rx_stbc[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
A_UINT32 rx_bw[HTT_RX_PDEV_STATS_NUM_BW_COUNTERS]; /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */
A_UINT32 rx_pream[HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES];
- A_UINT8 rssi_chain[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS]; /* units = dB above noise floor */
+ A_UINT8 rssi_chain[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS]; /* units = dB above noise floor */
/* Counters to track number of rx packets in each GI in each mcs (0-11) */
A_UINT32 rx_gi[HTT_RX_PDEV_STATS_NUM_GI_COUNTERS][HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
- A_INT32 rssi_in_dbm; /* rx Signal Strength value in dBm unit */
+ A_INT32 rssi_in_dbm; /* rx Signal Strength value in dBm unit */
A_UINT32 rx_11ax_su_ext;
A_UINT32 rx_11ac_mumimo;
@@ -2984,7 +2975,7 @@ typedef struct {
A_UINT32 nss_count;
A_UINT32 pilot_count;
/* RxEVM stats in dB */
- A_INT32 rx_pilot_evm_dB[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_RXEVM_MAX_PILOTS_PER_NSS];
+ A_INT32 rx_pilot_evm_dB[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_RXEVM_MAX_PILOTS_PER_NSS];
/* rx_pilot_evm_dB_mean:
* EVM mean across pilots, computed as
* mean(10*log10(rx_pilot_evm_linear)) = mean(rx_pilot_evm_dB)
@@ -2999,8 +2990,8 @@ typedef struct {
* BIT [7 : 4] :- IEEE80211_FC0_SUBTYPE
* BIT [31 : 8] :- Reserved
*/
- A_UINT32 per_chain_rssi_pkt_type;
- A_INT8 rx_per_chain_rssi_in_dbm[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
+ A_UINT32 per_chain_rssi_pkt_type;
+ A_INT8 rx_per_chain_rssi_in_dbm[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
A_UINT32 rx_su_ndpa;
A_UINT32 rx_11ax_su_txbf_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
A_UINT32 rx_mu_ndpa;
@@ -3010,7 +3001,6 @@ typedef struct {
A_UINT32 rx_11ax_dl_ofdma_ru[HTT_RX_PDEV_STATS_NUM_RU_SIZE_COUNTERS];
} htt_rx_pdev_rate_stats_tlv;
-
/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_RX_RATE
* TLV_TAGS:
* - HTT_STATS_RX_PDEV_RATE_STATS_TAG
@@ -3023,7 +3013,6 @@ typedef struct {
htt_rx_pdev_rate_stats_tlv rate_tlv;
} htt_rx_pdev_rate_stats_t;
-
/* == RX PDEV/SOC STATS == */
typedef struct {
@@ -3064,7 +3053,6 @@ typedef struct {
A_UINT32 refill_ring_empty_cnt[1]; /* HTT_RX_STATS_REFILL_MAX_RING */
} htt_rx_soc_fw_refill_ring_empty_tlv_v;
-
#define HTT_RX_SOC_FW_REFILL_RING_EMPTY_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
@@ -3076,22 +3064,22 @@ typedef struct {
/* RXDMA error code from WBM released packets */
typedef enum {
- HTT_RX_RXDMA_OVERFLOW_ERR = 0,
- HTT_RX_RXDMA_MPDU_LENGTH_ERR = 1,
- HTT_RX_RXDMA_FCS_ERR = 2,
- HTT_RX_RXDMA_DECRYPT_ERR = 3,
- HTT_RX_RXDMA_TKIP_MIC_ERR = 4,
- HTT_RX_RXDMA_UNECRYPTED_ERR = 5,
- HTT_RX_RXDMA_MSDU_LEN_ERR = 6,
- HTT_RX_RXDMA_MSDU_LIMIT_ERR = 7,
- HTT_RX_RXDMA_WIFI_PARSE_ERR = 8,
- HTT_RX_RXDMA_AMSDU_PARSE_ERR = 9,
- HTT_RX_RXDMA_SA_TIMEOUT_ERR = 10,
- HTT_RX_RXDMA_DA_TIMEOUT_ERR = 11,
- HTT_RX_RXDMA_FLOW_TIMEOUT_ERR = 12,
- HTT_RX_RXDMA_FLUSH_REQUEST = 13,
- HTT_RX_RXDMA_ERR_CODE_RVSD0 = 14,
- HTT_RX_RXDMA_ERR_CODE_RVSD1 = 15,
+ HTT_RX_RXDMA_OVERFLOW_ERR = 0,
+ HTT_RX_RXDMA_MPDU_LENGTH_ERR = 1,
+ HTT_RX_RXDMA_FCS_ERR = 2,
+ HTT_RX_RXDMA_DECRYPT_ERR = 3,
+ HTT_RX_RXDMA_TKIP_MIC_ERR = 4,
+ HTT_RX_RXDMA_UNECRYPTED_ERR = 5,
+ HTT_RX_RXDMA_MSDU_LEN_ERR = 6,
+ HTT_RX_RXDMA_MSDU_LIMIT_ERR = 7,
+ HTT_RX_RXDMA_WIFI_PARSE_ERR = 8,
+ HTT_RX_RXDMA_AMSDU_PARSE_ERR = 9,
+ HTT_RX_RXDMA_SA_TIMEOUT_ERR = 10,
+ HTT_RX_RXDMA_DA_TIMEOUT_ERR = 11,
+ HTT_RX_RXDMA_FLOW_TIMEOUT_ERR = 12,
+ HTT_RX_RXDMA_FLUSH_REQUEST = 13,
+ HTT_RX_RXDMA_ERR_CODE_RVSD0 = 14,
+ HTT_RX_RXDMA_ERR_CODE_RVSD1 = 15,
/*
* This MAX_ERR_CODE should not be used in any host/target messages,
@@ -3107,33 +3095,33 @@ typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* NOTE:
- * The mapping of RXDMA error types to rxdma_err array elements is HW dependent.
- * It is expected but not required that the target will provide a rxdma_err element
- * for each of the htt_rx_rxdma_error_code_enum values, up to but not including
- * MAX_ERR_CODE. The host should ignore any array elements whose
- * indices are >= the MAX_ERR_CODE value the host was compiled with.
- */
+ * The mapping of RXDMA error types to rxdma_err array elements is HW dependent.
+ * It is expected but not required that the target will provide a rxdma_err element
+ * for each of the htt_rx_rxdma_error_code_enum values, up to but not including
+ * MAX_ERR_CODE. The host should ignore any array elements whose
+ * indices are >= the MAX_ERR_CODE value the host was compiled with.
+ */
A_UINT32 rxdma_err[1]; /* HTT_RX_RXDMA_MAX_ERR_CODE */
} htt_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v;
/* REO error code from WBM released packets */
typedef enum {
- HTT_RX_REO_QUEUE_DESC_ADDR_ZERO = 0,
- HTT_RX_REO_QUEUE_DESC_NOT_VALID = 1,
- HTT_RX_AMPDU_IN_NON_BA = 2,
- HTT_RX_NON_BA_DUPLICATE = 3,
- HTT_RX_BA_DUPLICATE = 4,
- HTT_RX_REGULAR_FRAME_2K_JUMP = 5,
- HTT_RX_BAR_FRAME_2K_JUMP = 6,
- HTT_RX_REGULAR_FRAME_OOR = 7,
- HTT_RX_BAR_FRAME_OOR = 8,
- HTT_RX_BAR_FRAME_NO_BA_SESSION = 9,
- HTT_RX_BAR_FRAME_SN_EQUALS_SSN = 10,
- HTT_RX_PN_CHECK_FAILED = 11,
- HTT_RX_2K_ERROR_HANDLING_FLAG_SET = 12,
- HTT_RX_PN_ERROR_HANDLING_FLAG_SET = 13,
- HTT_RX_QUEUE_DESCRIPTOR_BLOCKED_SET = 14,
- HTT_RX_REO_ERR_CODE_RVSD = 15,
+ HTT_RX_REO_QUEUE_DESC_ADDR_ZERO = 0,
+ HTT_RX_REO_QUEUE_DESC_NOT_VALID = 1,
+ HTT_RX_AMPDU_IN_NON_BA = 2,
+ HTT_RX_NON_BA_DUPLICATE = 3,
+ HTT_RX_BA_DUPLICATE = 4,
+ HTT_RX_REGULAR_FRAME_2K_JUMP = 5,
+ HTT_RX_BAR_FRAME_2K_JUMP = 6,
+ HTT_RX_REGULAR_FRAME_OOR = 7,
+ HTT_RX_BAR_FRAME_OOR = 8,
+ HTT_RX_BAR_FRAME_NO_BA_SESSION = 9,
+ HTT_RX_BAR_FRAME_SN_EQUALS_SSN = 10,
+ HTT_RX_PN_CHECK_FAILED = 11,
+ HTT_RX_2K_ERROR_HANDLING_FLAG_SET = 12,
+ HTT_RX_PN_ERROR_HANDLING_FLAG_SET = 13,
+ HTT_RX_QUEUE_DESCRIPTOR_BLOCKED_SET = 14,
+ HTT_RX_REO_ERR_CODE_RVSD = 15,
/*
* This MAX_ERR_CODE should not be used in any host/target messages,
@@ -3149,12 +3137,12 @@ typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* NOTE:
- * The mapping of REO error types to reo_err array elements is HW dependent.
- * It is expected but not required that the target will provide a rxdma_err element
- * for each of the htt_rx_reo_error_code_enum values, up to but not including
- * MAX_ERR_CODE. The host should ignore any array elements whose
- * indices are >= the MAX_ERR_CODE value the host was compiled with.
- */
+ * The mapping of REO error types to reo_err array elements is HW dependent.
+ * It is expected but not required that the target will provide a rxdma_err element
+ * for each of the htt_rx_reo_error_code_enum values, up to but not including
+ * MAX_ERR_CODE. The host should ignore any array elements whose
+ * indices are >= the MAX_ERR_CODE value the host was compiled with.
+ */
A_UINT32 reo_err[1]; /* HTT_RX_REO_MAX_ERR_CODE */
} htt_rx_soc_fw_refill_ring_num_reo_err_tlv_v;
@@ -3163,28 +3151,28 @@ typedef struct {
* Instead, use the constituent TLV structures to fill/parse.
*/
typedef struct {
- htt_rx_soc_fw_stats_tlv fw_tlv;
- htt_rx_soc_fw_refill_ring_empty_tlv_v fw_refill_ring_empty_tlv;
- htt_rx_soc_fw_refill_ring_num_refill_tlv_v fw_refill_ring_num_refill_tlv;
+ htt_rx_soc_fw_stats_tlv fw_tlv;
+ htt_rx_soc_fw_refill_ring_empty_tlv_v fw_refill_ring_empty_tlv;
+ htt_rx_soc_fw_refill_ring_num_refill_tlv_v fw_refill_ring_num_refill_tlv;
htt_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v fw_refill_ring_num_rxdma_err_tlv;
- htt_rx_soc_fw_refill_ring_num_reo_err_tlv_v fw_refill_ring_num_reo_err_tlv;
+ htt_rx_soc_fw_refill_ring_num_reo_err_tlv_v fw_refill_ring_num_reo_err_tlv;
} htt_rx_soc_stats_t;
/* == RX PDEV STATS == */
-#define HTT_RX_PDEV_FW_STATS_MAC_ID_M 0x000000ff
-#define HTT_RX_PDEV_FW_STATS_MAC_ID_S 0
+#define HTT_RX_PDEV_FW_STATS_MAC_ID_M 0x000000ff
+#define HTT_RX_PDEV_FW_STATS_MAC_ID_S 0
#define HTT_RX_PDEV_FW_STATS_MAC_ID_GET(_var) \
(((_var) & HTT_RX_PDEV_FW_STATS_MAC_ID_M) >> \
- HTT_RX_PDEV_FW_STATS_MAC_ID_S)
+ HTT_RX_PDEV_FW_STATS_MAC_ID_S)
#define HTT_RX_PDEV_FW_STATS_MAC_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_RX_PDEV_FW_STATS_MAC_ID, _val); \
- ((_var) |= ((_val) << HTT_RX_PDEV_FW_STATS_MAC_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_RX_PDEV_FW_STATS_MAC_ID, _val); \
+ ((_var) |= ((_val) << HTT_RX_PDEV_FW_STATS_MAC_ID_S)); \
+ } while (0)
-#define HTT_STATS_SUBTYPE_MAX 16
+#define HTT_STATS_SUBTYPE_MAX 16
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@@ -3383,34 +3371,34 @@ typedef struct {
* Instead, use the constituent TLV structures to fill/parse.
*/
typedef struct {
- htt_rx_soc_stats_t soc_stats;
- htt_rx_pdev_fw_stats_tlv fw_stats_tlv;
+ htt_rx_soc_stats_t soc_stats;
+ htt_rx_pdev_fw_stats_tlv fw_stats_tlv;
htt_rx_pdev_fw_ring_mpdu_err_tlv_v fw_ring_mpdu_err_tlv;
- htt_rx_pdev_fw_mpdu_drop_tlv_v fw_ring_mpdu_drop;
- htt_rx_pdev_fw_stats_phy_err_tlv fw_stats_phy_err_tlv;
+ htt_rx_pdev_fw_mpdu_drop_tlv_v fw_ring_mpdu_drop;
+ htt_rx_pdev_fw_stats_phy_err_tlv fw_stats_phy_err_tlv;
} htt_rx_pdev_stats_t;
-#define HTT_PDEV_CCA_STATS_TX_FRAME_INFO_PRESENT (0x1)
-#define HTT_PDEV_CCA_STATS_RX_FRAME_INFO_PRESENT (0x2)
-#define HTT_PDEV_CCA_STATS_RX_CLEAR_INFO_PRESENT (0x4)
-#define HTT_PDEV_CCA_STATS_MY_RX_FRAME_INFO_PRESENT (0x8)
-#define HTT_PDEV_CCA_STATS_USEC_CNT_INFO_PRESENT (0x10)
-#define HTT_PDEV_CCA_STATS_MED_RX_IDLE_INFO_PRESENT (0x20)
-#define HTT_PDEV_CCA_STATS_MED_TX_IDLE_GLOBAL_INFO_PRESENT (0x40)
-#define HTT_PDEV_CCA_STATS_CCA_OBBS_USEC_INFO_PRESENT (0x80)
+#define HTT_PDEV_CCA_STATS_TX_FRAME_INFO_PRESENT (0x1)
+#define HTT_PDEV_CCA_STATS_RX_FRAME_INFO_PRESENT (0x2)
+#define HTT_PDEV_CCA_STATS_RX_CLEAR_INFO_PRESENT (0x4)
+#define HTT_PDEV_CCA_STATS_MY_RX_FRAME_INFO_PRESENT (0x8)
+#define HTT_PDEV_CCA_STATS_USEC_CNT_INFO_PRESENT (0x10)
+#define HTT_PDEV_CCA_STATS_MED_RX_IDLE_INFO_PRESENT (0x20)
+#define HTT_PDEV_CCA_STATS_MED_TX_IDLE_GLOBAL_INFO_PRESENT (0x40)
+#define HTT_PDEV_CCA_STATS_CCA_OBBS_USEC_INFO_PRESENT (0x80)
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Below values are obtained from the HW Cycles counter registers */
- A_UINT32 tx_frame_usec;
- A_UINT32 rx_frame_usec;
- A_UINT32 rx_clear_usec;
- A_UINT32 my_rx_frame_usec;
- A_UINT32 usec_cnt;
- A_UINT32 med_rx_idle_usec;
- A_UINT32 med_tx_idle_global_usec;
- A_UINT32 cca_obss_usec;
+ A_UINT32 tx_frame_usec;
+ A_UINT32 rx_frame_usec;
+ A_UINT32 rx_clear_usec;
+ A_UINT32 my_rx_frame_usec;
+ A_UINT32 usec_cnt;
+ A_UINT32 med_rx_idle_usec;
+ A_UINT32 med_tx_idle_global_usec;
+ A_UINT32 cca_obss_usec;
} htt_pdev_stats_cca_counters_tlv;
/* NOTE: THIS htt_pdev_cca_stats_hist_tlv STRUCTURE IS DEPRECATED,
@@ -3421,10 +3409,10 @@ typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* The channel number on which these stats were collected */
- A_UINT32 chan_num;
+ A_UINT32 chan_num;
/* num of CCA records (Num of htt_pdev_stats_cca_counters_tlv)*/
- A_UINT32 num_records;
+ A_UINT32 num_records;
/*
* Bit map of valid CCA counters
@@ -3439,7 +3427,7 @@ typedef struct {
*
* See HTT_PDEV_CCA_STATS_xxx_INFO_PRESENT defs
*/
- A_UINT32 valid_cca_counters_bitmap;
+ A_UINT32 valid_cca_counters_bitmap;
/* Indicates the stats collection interval
* Valid Values:
@@ -3447,7 +3435,7 @@ typedef struct {
* 1000 - For 1sec interval CCA histogram
* 0xFFFFFFFF - For Cumulative CCA Stats
*/
- A_UINT32 collection_interval;
+ A_UINT32 collection_interval;
/**
* This will be followed by an array which contains the CCA stats
@@ -3463,10 +3451,10 @@ typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* The channel number on which these stats were collected */
- A_UINT32 chan_num;
+ A_UINT32 chan_num;
/* num of CCA records (Num of htt_pdev_stats_cca_counters_tlv)*/
- A_UINT32 num_records;
+ A_UINT32 num_records;
/*
* Bit map of valid CCA counters
@@ -3481,7 +3469,7 @@ typedef struct {
*
* See HTT_PDEV_CCA_STATS_xxx_INFO_PRESENT defs
*/
- A_UINT32 valid_cca_counters_bitmap;
+ A_UINT32 valid_cca_counters_bitmap;
/* Indicates the stats collection interval
* Valid Values:
@@ -3489,7 +3477,7 @@ typedef struct {
* 1000 - For 1sec interval CCA histogram
* 0xFFFFFFFF - For Cumulative CCA Stats
*/
- A_UINT32 collection_interval;
+ A_UINT32 collection_interval;
/**
* This will be followed by an array which contains the CCA stats
@@ -3501,77 +3489,77 @@ typedef struct {
*/
} htt_pdev_cca_stats_hist_v1_tlv;
-#define HTT_TWT_SESSION_FLAG_FLOW_ID_M 0x0000ffff
-#define HTT_TWT_SESSION_FLAG_FLOW_ID_S 0
+#define HTT_TWT_SESSION_FLAG_FLOW_ID_M 0x0000ffff
+#define HTT_TWT_SESSION_FLAG_FLOW_ID_S 0
-#define HTT_TWT_SESSION_FLAG_BCAST_TWT_M 0x00010000
-#define HTT_TWT_SESSION_FLAG_BCAST_TWT_S 16
+#define HTT_TWT_SESSION_FLAG_BCAST_TWT_M 0x00010000
+#define HTT_TWT_SESSION_FLAG_BCAST_TWT_S 16
-#define HTT_TWT_SESSION_FLAG_TRIGGER_TWT_M 0x00020000
-#define HTT_TWT_SESSION_FLAG_TRIGGER_TWT_S 17
+#define HTT_TWT_SESSION_FLAG_TRIGGER_TWT_M 0x00020000
+#define HTT_TWT_SESSION_FLAG_TRIGGER_TWT_S 17
-#define HTT_TWT_SESSION_FLAG_ANNOUN_TWT_M 0x00040000
-#define HTT_TWT_SESSION_FLAG_ANNOUN_TWT_S 18
+#define HTT_TWT_SESSION_FLAG_ANNOUN_TWT_M 0x00040000
+#define HTT_TWT_SESSION_FLAG_ANNOUN_TWT_S 18
#define HTT_TWT_SESSION_FLAG_FLOW_ID_GET(_var) \
- (((_var) & HTT_TWT_SESSION_FLAG_FLOW_ID_M) >> \
- HTT_TWT_SESSION_FLAG_FLOW_ID_S)
+ (((_var) & HTT_TWT_SESSION_FLAG_FLOW_ID_M) >> \
+ HTT_TWT_SESSION_FLAG_FLOW_ID_S)
#define HTT_TWT_SESSION_FLAG_FLOW_ID_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_FLOW_ID, _val); \
- ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_FLOW_ID_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_FLOW_ID, _val); \
+ ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_FLOW_ID_S)); \
+ } while (0)
#define HTT_TWT_SESSION_FLAG_BCAST_TWT_GET(_var) \
- (((_var) & HTT_TWT_SESSION_FLAG_BCAST_TWT_M) >> \
- HTT_TWT_SESSION_FLAG_BCAST_TWT_S)
+ (((_var) & HTT_TWT_SESSION_FLAG_BCAST_TWT_M) >> \
+ HTT_TWT_SESSION_FLAG_BCAST_TWT_S)
#define HTT_TWT_SESSION_FLAG_BCAST_TWT_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_BCAST_TWT, _val); \
- ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_BCAST_TWT_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_BCAST_TWT, _val); \
+ ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_BCAST_TWT_S)); \
+ } while (0)
#define HTT_TWT_SESSION_FLAG_TRIGGER_TWT_GET(_var) \
- (((_var) & HTT_TWT_SESSION_FLAG_TRIGGER_TWT_M) >> \
- HTT_TWT_SESSION_FLAG_TRIGGER_TWT_S)
+ (((_var) & HTT_TWT_SESSION_FLAG_TRIGGER_TWT_M) >> \
+ HTT_TWT_SESSION_FLAG_TRIGGER_TWT_S)
#define HTT_TWT_SESSION_FLAG_TRIGGER_TWT_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_TRIGGER_TWT, _val); \
- ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_TRIGGER_TWT_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_TRIGGER_TWT, _val); \
+ ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_TRIGGER_TWT_S)); \
+ } while (0)
#define HTT_TWT_SESSION_FLAG_ANNOUN_TWT_GET(_var) \
- (((_var) & HTT_TWT_SESSION_FLAG_ANNOUN_TWT_M) >> \
- HTT_TWT_SESSION_FLAG_ANNOUN_TWT_S)
+ (((_var) & HTT_TWT_SESSION_FLAG_ANNOUN_TWT_M) >> \
+ HTT_TWT_SESSION_FLAG_ANNOUN_TWT_S)
#define HTT_TWT_SESSION_FLAG_ANNOUN_TWT_SET(_var, _val) \
- do { \
- HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_ANNOUN_TWT, _val); \
- ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_ANNOUN_TWT_S)); \
- } while (0)
+ do { \
+ HTT_CHECK_SET_VAL(HTT_TWT_SESSION_FLAG_ANNOUN_TWT, _val); \
+ ((_var) |= ((_val) << HTT_TWT_SESSION_FLAG_ANNOUN_TWT_S)); \
+ } while (0)
-#define TWT_DIALOG_ID_UNAVAILABLE 0xFFFFFFFF
+#define TWT_DIALOG_ID_UNAVAILABLE 0xFFFFFFFF
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
- A_UINT32 vdev_id;
- htt_mac_addr peer_mac;
- A_UINT32 flow_id_flags;
- A_UINT32 dialog_id; /* TWT_DIALOG_ID_UNAVAILABLE is used when TWT session is not initiated by host */
- A_UINT32 wake_dura_us;
- A_UINT32 wake_intvl_us;
- A_UINT32 sp_offset_us;
+ A_UINT32 vdev_id;
+ htt_mac_addr peer_mac;
+ A_UINT32 flow_id_flags;
+ A_UINT32 dialog_id; /* TWT_DIALOG_ID_UNAVAILABLE is used when TWT session is not initiated by host */
+ A_UINT32 wake_dura_us;
+ A_UINT32 wake_intvl_us;
+ A_UINT32 sp_offset_us;
} htt_pdev_stats_twt_session_tlv;
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
- A_UINT32 pdev_id;
- A_UINT32 num_sessions;
+ A_UINT32 pdev_id;
+ A_UINT32 num_sessions;
htt_pdev_stats_twt_session_tlv twt_session[1];
} htt_pdev_stats_twt_sessions_tlv;
@@ -3591,21 +3579,21 @@ typedef struct {
typedef enum {
/* Global link descriptor queued in REO */
- HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_0 = 0,
- HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_1 = 1,
- HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_2 = 2,
+ HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_0 = 0,
+ HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_1 = 1,
+ HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_2 = 2,
/*Number of queue descriptors of this aging group */
- HTT_RX_REO_RESOURCE_BUFFERS_USED_AC0 = 3,
- HTT_RX_REO_RESOURCE_BUFFERS_USED_AC1 = 4,
- HTT_RX_REO_RESOURCE_BUFFERS_USED_AC2 = 5,
- HTT_RX_REO_RESOURCE_BUFFERS_USED_AC3 = 6,
+ HTT_RX_REO_RESOURCE_BUFFERS_USED_AC0 = 3,
+ HTT_RX_REO_RESOURCE_BUFFERS_USED_AC1 = 4,
+ HTT_RX_REO_RESOURCE_BUFFERS_USED_AC2 = 5,
+ HTT_RX_REO_RESOURCE_BUFFERS_USED_AC3 = 6,
/* Total number of MSDUs buffered in AC */
- HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC0 = 7,
- HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC1 = 8,
- HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC2 = 9,
- HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC3 = 10,
+ HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC0 = 7,
+ HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC1 = 8,
+ HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC2 = 9,
+ HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC3 = 10,
- HTT_RX_REO_RESOURCE_STATS_MAX = 16
+ HTT_RX_REO_RESOURCE_STATS_MAX = 16
} htt_rx_reo_resource_sample_id_enum;
typedef struct {
@@ -3649,33 +3637,33 @@ typedef struct {
/* config_param0 */
-#define HTT_DBG_EXT_STATS_SET_VDEV_MASK(_var) ((_var << 1) | 0x1)
+#define HTT_DBG_EXT_STATS_SET_VDEV_MASK(_var) ((_var << 1) | 0x1)
#define HTT_DBG_EXT_STATS_GET_VDEV_ID_FROM_VDEV_MASK(_var) ((_var >> 1) & 0xFF)
-#define HTT_DBG_EXT_STATS_IS_VDEV_ID_SET(_var) ((_var) & 0x1)
+#define HTT_DBG_EXT_STATS_IS_VDEV_ID_SET(_var) ((_var) & 0x1)
typedef enum {
/* Implicit beamforming stats */
- HTT_IMPLICIT_TXBF_STEER_STATS = 0,
+ HTT_IMPLICIT_TXBF_STEER_STATS = 0,
/* Single user short inter frame sequence steer stats */
- HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS = 1,
+ HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS = 1,
/* Single user random back off steer stats */
- HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS = 2,
+ HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS = 2,
/* Multi user short inter frame sequence steer stats */
- HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS = 3,
+ HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS = 3,
/* Multi user random back off steer stats */
- HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS = 4,
+ HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS = 4,
/* For backward compatability new modes cannot be added */
- HTT_TXBF_MAX_NUM_OF_MODES = 5
+ HTT_TXBF_MAX_NUM_OF_MODES = 5
} htt_txbf_sound_steer_modes;
typedef enum {
- HTT_TX_AC_SOUNDING_MODE = 0,
- HTT_TX_AX_SOUNDING_MODE = 1,
+ HTT_TX_AC_SOUNDING_MODE = 0,
+ HTT_TX_AX_SOUNDING_MODE = 1,
} htt_stats_sounding_tx_mode;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
- A_UINT32 tx_sounding_mode; /* HTT_TX_XX_SOUNDING_MODE */
+ A_UINT32 tx_sounding_mode; /* HTT_TX_XX_SOUNDING_MODE */
/* Counts number of soundings for all steering modes in each bw */
A_UINT32 cbf_20[HTT_TXBF_MAX_NUM_OF_MODES];
A_UINT32 cbf_40[HTT_TXBF_MAX_NUM_OF_MODES];
@@ -3706,10 +3694,10 @@ typedef struct {
} htt_tx_sounding_stats_t;
typedef struct {
- htt_tlv_hdr_t tlv_hdr;
+ htt_tlv_hdr_t tlv_hdr;
- A_UINT32 num_obss_tx_ppdu_success;
- A_UINT32 num_obss_tx_ppdu_failure;
+ A_UINT32 num_obss_tx_ppdu_success;
+ A_UINT32 num_obss_tx_ppdu_failure;
} htt_pdev_obss_pd_stats_tlv;
/* NOTE: