diff options
| -rw-r--r-- | fw/htt_stats.h | 1948 |
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: |
