Преглед изворни кода

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

HTT stats: add control path txrx stats

Change-Id: I3c582aa2f79dced8f747b06ef8b9be943ae9b3d2
CRs-Fixed: 2262693
spuligil пре 5 година
родитељ
комит
86027d45ad
1 измењених фајлова са 55 додато и 2 уклоњено
  1. 55 2
      fw/htt_stats.h

+ 55 - 2
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)