diff options
| author | spuligil <spuligil@codeaurora.org> | 2018-04-11 09:00:53 -0700 |
|---|---|---|
| committer | spuligil <spuligil@codeaurora.org> | 2018-04-11 09:00:53 -0700 |
| commit | cff1e0e0dd0f15aaa67692db016c5e9f771fadac (patch) | |
| tree | 5c720c7cd6e83959a75677ac330a9bf2f05c0ba4 | |
| parent | 84295cdb76ce00f19781b6376d547151c7215167 (diff) | |
fw-api: CL 4436259 - update fw common interface files
Change-Id: Ia770cd60d561833a80097457e5d4b9a7fcd28f5a
HTT: add stats for counting txbf / sounding events
CRs-Fixed: 1107600
| -rw-r--r-- | fw/htt_stats.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 1229e43dd92c..d343aa0242f6 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -245,6 +245,21 @@ enum htt_dbg_ext_stats_type { */ HTT_DBG_EXT_STATS_REO_RESOURCE_STATS = 21, + /* HTT_DBG_EXT_STATS_TX_SOUNDING_INFO + * PARAMS: + * - config_param0: + * [Bit0] vdev_id_set:1 + * set to 1 if vdev_id is set and vdev stats are requested + * [Bit8 : Bit1] vdev_id:8 + * note:0xFF to get all active vdevs based on pdev_mask. + * [Bit31 : Bit9] rsvd:22 + + * RESP MSG: + * - htt_tx_sounding_stats_t + */ + HTT_DBG_EXT_STATS_TX_SOUNDING_INFO = 22, + + /* keep this last */ HTT_DBG_NUM_EXT_STATS = 256, }; @@ -330,6 +345,7 @@ typedef enum { 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_MAX_TAG, } htt_tlv_tag_t; @@ -2517,6 +2533,9 @@ typedef struct { #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_NUM_OF_SOUNDING_STATS_WORDS \ + (HTT_TX_PDEV_STATS_NUM_BW_COUNTERS * \ + 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 @@ -3307,4 +3326,65 @@ typedef struct { htt_rx_reo_resource_stats_tlv_v reo_resource_stats; } htt_soc_reo_resource_stats_t; +/* == TX SOUNDING STATS == */ + +/* config_param0 */ + +#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) + +typedef enum { + /* Implicit beamforming stats */ + HTT_IMPLICIT_TXBF_STEER_STATS = 0, + /* Single user short inter frame sequence steer stats */ + HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS = 1, + /* Single user random back off steer stats */ + HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS = 2, + /* Multi user short inter frame sequence steer stats */ + HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS = 3, + /* Multi user random back off steer stats */ + 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_sound_steer_modes; + +typedef enum { + 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 */ + /* 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]; + A_UINT32 cbf_80[HTT_TXBF_MAX_NUM_OF_MODES]; + A_UINT32 cbf_160[HTT_TXBF_MAX_NUM_OF_MODES]; + /* + * The sounding array is a 2-D array stored as an 1-D array of + * A_UINT32. The stats for a particular user/bw combination is + * referenced with the following: + * + * sounding[(user* max_bw) + bw] + * + * ... where max_bw == 4 for 160mhz + */ + A_UINT32 sounding[HTT_TX_NUM_OF_SOUNDING_STATS_WORDS]; +} htt_tx_sounding_stats_tlv; + +/* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO + * TLV_TAGS: + * - HTT_STATS_TX_SOUNDING_STATS_TAG + */ +/* NOTE: + * This structure is for documentation, and cannot be safely used directly. + * Instead, use the constituent TLV structures to fill/parse. + */ +typedef struct { + htt_tx_sounding_stats_tlv sounding_tlv; +} htt_tx_sounding_stats_t; + + #endif /* __HTT_STATS_H__ */ |
