summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fw/htt_stats.h57
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)