diff options
| -rw-r--r-- | fw/htt_stats.h | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/fw/htt_stats.h b/fw/htt_stats.h index e8a168eefb3a..cd11e7da7232 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -319,6 +319,16 @@ enum htt_dbg_ext_stats_type { */ HTT_DBG_EXT_STATS_FSE_RX = 28, + /* HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS + * PARAMS: + * - config_param0: [Bit0] : [1] for mac_addr based request + * - config_param1: [Bit31 : Bit0] mac_addr31to0 + * - config_param2: [Bit15 : Bit0] mac_addr47to32 + * RESP MSG: + * - htt_ctrl_path_txrx_stats_t + */ + HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS = 29, + /* keep this last */ HTT_DBG_NUM_EXT_STATS = 256, }; @@ -340,6 +350,8 @@ enum htt_dbg_ext_stats_type { ((_var) |= ((_val) << HTT_DBG_EXT_PEER_STATS_RESET_S)); \ } while (0) +#define HTT_STATS_SUBTYPE_MAX 16 + 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 */ @@ -442,6 +454,8 @@ typedef enum { HTT_STATS_RX_FSE_STATS_TAG = 98, /* htt_rx_fse_stats_tlv */ HTT_STATS_PEER_SCHED_STATS_TAG = 99, /* htt_peer_sched_stats_tlv */ HTT_STATS_SCHED_TXQ_SUPERCYCLE_TRIGGER_TAG = 100, /* htt_sched_txq_supercycle_triggers_tlv_v */ + HTT_STATS_PEER_CTRL_PATH_TXRX_STATS_TAG = 101, /* htt_peer_ctrl_path_txrx_stats_tlv */ + HTT_STATS_PDEV_CTRL_PATH_TX_STATS_TAG = 102, /* htt_pdev_ctrl_path_tx_stats_tlv */ HTT_STATS_MAX_TAG, } htt_tlv_tag_t; @@ -746,6 +760,12 @@ typedef struct { A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */ } htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v; +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /* Num MGMT MPDU transmitted by the target */ + A_UINT32 fw_tx_mgmt_subtype[HTT_STATS_SUBTYPE_MAX]; +} htt_pdev_ctrl_path_tx_stats_tlv_v; + /* STATS_TYPE: HTT_DBG_EXT_STATS_PDEV_TX * TLV_TAGS: * - HTT_STATS_TX_PDEV_CMN_TAG @@ -756,6 +776,7 @@ typedef struct { * - HTT_STATS_TX_PDEV_SIFS_HIST_TAG * - HTT_STATS_TX_PDEV_TX_PPDU_STATS_TAG * - HTT_STATS_TX_PDEV_TRIED_MPDU_CNT_HIST_TAG + * - HTT_STATS_PDEV_CTRL_PATH_TX_STATS_TAG */ /* NOTE: * This structure is for documentation, and cannot be safely used directly. @@ -770,6 +791,7 @@ typedef struct _htt_tx_pdev_stats { 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_pdev_ctrl_path_tx_stats_tlv_v ctrl_path_tx_tlv; } htt_tx_pdev_stats_t; /* == SOC ERROR STATS == */ @@ -1365,6 +1387,20 @@ typedef struct { } htt_peer_sched_stats_tlv; /* config_param0 */ + +#define HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR_M 0x00000001 +#define HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR_S 0 + +#define HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR_GET(_var) \ + (((_var) & HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR_M) >> \ + HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR_S) + +#define HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_peer_MAC_ADDR_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR, _val); \ + ((_var) |= ((_val) << HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR_S)); \ + } while (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 @@ -3596,8 +3632,6 @@ typedef struct { ((_var) |= ((_val) << HTT_RX_PDEV_FW_STATS_MAC_ID_S)); \ } while (0) -#define HTT_STATS_SUBTYPE_MAX 16 - typedef struct { htt_tlv_hdr_t tlv_hdr; @@ -3701,6 +3735,16 @@ typedef struct { A_UINT32 rx_recovery_reset_cnt; } htt_rx_pdev_fw_stats_tlv; +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /* peer mac address */ + htt_mac_addr peer_mac_addr; + /* Num of tx mgmt frames with subtype on peer level */ + A_UINT32 peer_tx_mgmt_subtype[HTT_STATS_SUBTYPE_MAX]; + /* Num of rx mgmt frames with subtype on peer level */ + A_UINT32 peer_rx_mgmt_subtype[HTT_STATS_SUBTYPE_MAX]; +} htt_peer_ctrl_path_txrx_stats_tlv; + #define HTT_STATS_PHY_ERR_MAX 43 typedef struct { @@ -3802,6 +3846,15 @@ typedef struct { htt_rx_pdev_fw_stats_phy_err_tlv fw_stats_phy_err_tlv; } htt_rx_pdev_stats_t; +/* STATS_TYPE : HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS + * TLV_TAGS: + * - HTT_STATS_PEER_CTRL_PATH_TXRX_STATS_TAG + * + */ +typedef struct { + htt_peer_ctrl_path_txrx_stats_tlv peer_ctrl_path_txrx_stats_tlv; +} htt_ctrl_path_txrx_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) |
