Loading fw/htt.h +94 −52 Original line number Diff line number Diff line Loading @@ -338,6 +338,8 @@ enum HTT_OPTION_TLV_TAGS { HTT_OPTION_TLV_TAG_TCL_METADATA_VER = 0x5, }; #define HTT_TCL_METADATA_VER_SZ 4 PREPACK struct htt_option_tlv_header_t { A_UINT8 tag; A_UINT8 length; Loading Loading @@ -5682,10 +5684,11 @@ enum htt_srng_ring_id { * phyrx_abort_request_reason enum definition. * dword14- b'0:15 - rx_mpdu_start_word_mask: word mask for rx mpdu start, * applicable if word mask enabled * - b'16:31 - rx_mpdu_end_word_mask: word mask value for rx mpdu end, * - b'16:18 - rx_mpdu_end_word_mask: word mask value for rx mpdu end, * applicable if word mask enabled * - b'19:31 - rsvd7 * dword15- b'0:16 - rx_msdu_end_word_mask b'17:31 - rsvd5 * - b'17:31 - rsvd5 * dword17- b'0 - en_rx_tlv_pkt_offset: * 0: RX_PKT TLV logging at offset 0 for the subsequent * buffer Loading Loading @@ -5738,7 +5741,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t { A_UINT32 phy_err_mask; A_UINT32 phy_err_mask_cont; A_UINT32 rx_mpdu_start_word_mask:16, rx_mpdu_end_word_mask: 16; rx_mpdu_end_word_mask: 3, rsvd7: 13; A_UINT32 rx_msdu_end_word_mask: 17, rsvd5: 15; A_UINT32 en_rx_tlv_pkt_offset: 1, Loading Loading @@ -6182,15 +6186,15 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M 0xFFFF0000 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M 0x00070000 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S 16 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_SET(_var, _val) \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_M 0x0001FFFF Loading Loading @@ -9355,7 +9359,7 @@ PREPACK struct htt_h2t_sawf_def_queues_map_req { * dword0 - b'7:0 - msg_type: This will be set to * 0x1d (HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ) * b'15:8 - service class ID * dword1 - b'31:16 - peer ID * b'31:16 - peer ID * A HTT_H2T_SAWF_DEF_QUEUES_UNMAP_PEER_ID_WILDCARD * value for peer ID indicates that the target should * apply the UNMAP_REQ to all peers. Loading @@ -9371,27 +9375,26 @@ PREPACK struct htt_h2t_sawf_def_queues_unmap_req { #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_M 0x0000FF00 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S 8 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S) #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S)); \ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S)); \ } while (0) #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M 0xFFFF0000 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S 16 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S) #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S)); \ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S)); \ } while (0) /* * MSG_TYPE => HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ * Loading @@ -9403,45 +9406,74 @@ PREPACK struct htt_h2t_sawf_def_queues_unmap_req { * to report what service class (if any) the default MSDU queues for * each of the specified TIDs are linked to. * * |31 16|15 8|7 0| * |31 16|15 8|7 1| 0| * |------------------------------+--------------+--------------| * | peer ID | TID mask | msg type | * |------------------------------------------------------------| * | reserved |ETO| * |------------------------------------------------------------| * Header fields: * dword0 - b'7:0 - msg_type: This will be set to * 0x1e (HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ) * b'15:8 - TID mask * dword1 - b'31:16 - peer ID * b'31:16 - peer ID * dword1 - b'0 - "Existing Tids Only" flag * If this flag is set, the DEF_QUEUES_MAP_REPORT_CONF * message generated by this REQ will only show the * mapping for TIDs that actually exist in the target's * peer object. * Any TIDs that are covered by a MAP_REQ but which * do not actually exist will be shown as being * unmapped (i.e. svc class ID 0xff). * If this flag is cleared, the MAP_REPORT_CONF message * will consider not only the mapping of TIDs currently * existing in the peer, but also the mapping that will * be applied for any TID objects created within this * peer in the future. * b'31:1 - reserved for future use */ PREPACK struct htt_h2t_sawf_def_queues_map_report_req { A_UINT32 msg_type :8, tid_mask :8, peer_id :16; A_UINT32 existing_tids_only:1, reserved :31; } POSTPACK; #define HTT_SAWF_DEF_QUEUES_MAP_REPORT_REQ_BYTES 4 #define HTT_SAWF_DEF_QUEUES_MAP_REPORT_REQ_BYTES 8 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_M 0x0000FF00 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S 8 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S) #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S));\ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S));\ } while (0) #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M 0xFFFF0000 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S 16 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S) #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S)); \ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S)); \ } while (0) #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_M 0x00000001 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S 0 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_GET(word1) \ (((word1) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S) #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_SET(word1, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY, _val); \ ((word1) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S)); \ } while (0) Loading Loading @@ -18060,15 +18092,15 @@ PREPACK struct htt_t2h_sawf_def_queues_map_report_conf { * of the newly created MSDUQ and some other identifiers to uniquely identity * the newly created MSDUQ * * |31 27| 24|23 16|15 11|10|9 8|7 4|3 0| * |------------------------------+----------------------+--------------| * |31 27| 24|23 16|15|14 11|10|9 8|7 4|3 0| * |------------------------------+------------------------+--------------| * | peer ID | HTT qtype | msg type | * |--------+---------------------+---------------+--+---+-------+------| * |reserved| Ast Index |FO|WC | HLOS | remap| * |---------------------------------+--------------+--+---+-------+------| * | reserved |AST list index|FO|WC | HLOS | remap| * | | | | | TID | TID | * |---------------------+----------------------------------------------| * |---------------------+------------------------------------------------| * | reserved1 | tgt_opaque_id | * |---------------------+----------------------------------------------| * |---------------------+------------------------------------------------| * * Header fields: * Loading @@ -18084,10 +18116,20 @@ PREPACK struct htt_t2h_sawf_def_queues_map_report_conf { * TCL Data Command : Beryllium * b10 - flow_override (FO), as sent by host in * TCL Data Command: Beryllium * b11:26 - ast_index * Dummy AST Index in case of Lithium, * Default AST Index in case of Beryllium * b27:32 - reserved * b11:14 - ast_list_idx * Array index into the list of extension AST entries * (not the actual AST 16-bit index). * The ast_list_idx is one-based, with the following * range of values: * - legacy targets supporting 16 user-defined * MSDU queues: 1-2 * - legacy targets supporting 48 user-defined * MSDU queues: 1-6 * - new targets: 0 (peer_id is used instead) * Note that since ast_list_idx is one-based, * the host will need to subtract 1 to use it as an * index into a list of extension AST entries. * b15:31 - reserved * * dword2 - b'23:0 - tgt_opaque_id Opaque Tx flow number which is a * unique MSDUQ id in firmware Loading @@ -18102,8 +18144,8 @@ PREPACK struct htt_t2h_sawf_msduq_event { hlos_tid : 4, who_classify_info_sel : 2, flow_override : 1, ast_index :16, reserved : 5; ast_list_idx : 4, reserved :17; A_UINT32 tgt_opaque_id :24, reserved1 : 8; Loading Loading @@ -18178,15 +18220,15 @@ PREPACK struct htt_t2h_sawf_msduq_event { ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_S)); \ } while (0) #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_M 0x07FFF800 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S 11 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_GET(_var) \ (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_M) >> \ HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S) #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_SET(_var, _val) \ #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_M 0x00007800 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_S 11 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_GET(_var) \ (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_M) >> \ HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_S) #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX, _val); \ ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S)); \ HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX, _val); \ ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_S)); \ } while (0) fw/htt_stats.h +88 −0 Original line number Diff line number Diff line Loading @@ -534,6 +534,26 @@ typedef enum { HTT_RX_UL_TRIGGER_STATS_UPLOAD_11BE_OFDMA, } htt_rx_ul_trigger_stats_upload_t; /* * The htt_rx_ul_mumimo_trigger_stats_upload_t enum values are * provided by the host as one of the config param elements in * the HTT_H2T EXT_STATS_REQ message, for stats type == * HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_TRIG_STATS. */ typedef enum { /* * Upload 11ax UL MUMIMO RX Trigger stats * TLV: htt_rx_pdev_ul_mumimo_trig_stats_tlv */ HTT_RX_UL_MUMIMO_TRIGGER_STATS_UPLOAD_11AX, /* * Upload 11be UL MUMIMO RX Trigger stats * TLV: htt_rx_pdev_ul_mumimo_trig_be_stats_tlv */ HTT_RX_UL_MUMIMO_TRIGGER_STATS_UPLOAD_11BE, } htt_rx_ul_mumimo_trigger_stats_upload_t; #define HTT_STATS_MAX_STRING_SZ32 4 #define HTT_STATS_MACID_INVALID 0xff #define HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS 10 Loading Loading @@ -4129,6 +4149,40 @@ typedef enum { #define HTT_TX_PDEV_STATS_NUM_BE_MCS_COUNTERS 16 /* 0...13,-2,-1 */ #define HTT_TX_PDEV_STATS_NUM_BE_BW_COUNTERS 5 /* 20,40,80,160,320 MHz */ #define HTT_TX_PDEV_STATS_NUM_HE_SIG_B_MCS_COUNTERS 6 #define HTT_TX_PDEV_STATS_NUM_EHT_SIG_MCS_COUNTERS 4 typedef enum { HTT_TX_PDEV_STATS_AX_RU_SIZE_26, HTT_TX_PDEV_STATS_AX_RU_SIZE_52, HTT_TX_PDEV_STATS_AX_RU_SIZE_106, HTT_TX_PDEV_STATS_AX_RU_SIZE_242, HTT_TX_PDEV_STATS_AX_RU_SIZE_484, HTT_TX_PDEV_STATS_AX_RU_SIZE_996, HTT_TX_PDEV_STATS_AX_RU_SIZE_996x2, HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS, } HTT_TX_PDEV_STATS_AX_RU_SIZE; typedef enum { HTT_TX_PDEV_STATS_BE_RU_SIZE_26, HTT_TX_PDEV_STATS_BE_RU_SIZE_52, HTT_TX_PDEV_STATS_BE_RU_SIZE_52_26, HTT_TX_PDEV_STATS_BE_RU_SIZE_106, HTT_TX_PDEV_STATS_BE_RU_SIZE_106_26, HTT_TX_PDEV_STATS_BE_RU_SIZE_242, HTT_TX_PDEV_STATS_BE_RU_SIZE_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_484_242, HTT_TX_PDEV_STATS_BE_RU_SIZE_996, HTT_TX_PDEV_STATS_BE_RU_SIZE_996_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_996_484_242, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x2, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x2_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x3, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x3_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x4, HTT_TX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS, } HTT_TX_PDEV_STATS_BE_RU_SIZE; typedef struct { htt_tlv_hdr_t tlv_hdr; Loading Loading @@ -4251,6 +4305,10 @@ typedef struct { A_UINT32 reduced_ax_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; /** 11AX HE DL MU OFDMA TX BW stats at reduced channel config */ A_UINT32 reduced_ax_mu_ofdma_tx_bw[HTT_TX_PDEV_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; /** 11AX HE DL MU OFDMA TX RU Size stats */ A_UINT32 ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS]; /** 11AX HE DL MU OFDMA HE-SIG-B MCS stats */ A_UINT32 ofdma_he_sig_b_mcs[HTT_TX_PDEV_STATS_NUM_HE_SIG_B_MCS_COUNTERS]; } htt_tx_pdev_rate_stats_tlv; typedef struct { Loading Loading @@ -4329,6 +4387,10 @@ typedef struct { A_UINT32 be_ofdma_tx_bw[HTT_TX_PDEV_STATS_NUM_BE_BW_COUNTERS]; /** 11BE EHT DL MU OFDMA TX guard interval stats */ A_UINT32 be_ofdma_tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_BE_MCS_COUNTERS]; /** 11BE EHT DL MU OFDMA TX RU Size stats */ A_UINT32 be_ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS]; /** 11BE EHT DL MU OFDMA EHT-SIG MCS stats */ A_UINT32 be_ofdma_eht_sig_mcs[HTT_TX_PDEV_STATS_NUM_EHT_SIG_MCS_COUNTERS]; } htt_tx_pdev_rate_stats_be_ofdma_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE Loading Loading @@ -5640,26 +5702,49 @@ typedef struct { A_UINT32 cv_dma_not_done_err; A_UINT32 cv_update_failed; /* cv query stats */ /** total times CV query happened */ A_UINT32 cv_total_query; /** total pattern based CV query */ A_UINT32 cv_total_pattern_query; /** total BW based CV query */ A_UINT32 cv_total_bw_query; /** incorrect encoding in CV flags */ A_UINT32 cv_invalid_bw_coding; /** forced sounding enabled for the peer */ A_UINT32 cv_forced_sounding; /** standalone sounding sequence on-going */ A_UINT32 cv_standalone_sounding; /** NC of available CV lower than expected */ A_UINT32 cv_nc_mismatch; /** feedback type different from expected */ A_UINT32 cv_fb_type_mismatch; /** CV BW not equal to expected BW for OFDMA */ A_UINT32 cv_ofdma_bw_mismatch; /** CV BW not greater than or equal to expected BW */ A_UINT32 cv_bw_mismatch; /** CV pattern not matching with the expected pattern */ A_UINT32 cv_pattern_mismatch; /** CV available is of different preamble type than expected. */ A_UINT32 cv_preamble_mismatch; /** NR of available CV is lower than expected. */ A_UINT32 cv_nr_mismatch; /** CV in use count has exceeded threshold and cannot be used further. */ A_UINT32 cv_in_use_cnt_exceeded; /** A valid CV has been found. */ A_UINT32 cv_found; /** No valid CV was found. */ A_UINT32 cv_not_found; /** Sounding per user in 320MHz bandwidth */ A_UINT32 sounding_320[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS]; /** Counts number of soundings for all steering modes in 320MHz bandwidth */ A_UINT32 cbf_320[HTT_TXBF_MAX_NUM_OF_MODES]; /* This part can be used for new counters added for CV query/upload. */ /** non-trigger based ranging sequence on-going */ A_UINT32 cv_ntbr_sounding; /** CV found, but upload is in progress. */ A_UINT32 cv_found_upload_in_progress; /** Expired CV found during query. */ A_UINT32 cv_expired_during_query; } htt_tx_sounding_stats_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO Loading Loading @@ -6094,6 +6179,9 @@ typedef struct { htt_tx_rate_stats_t per_mcs[HTT_TX_TXBF_RATE_STATS_NUM_MCS_COUNTERS]; /** 320MHz extension for PER */ htt_tx_rate_stats_t per_bw320; } htt_tx_rate_stats_per_tlv; /* NOTE: Loading fw/wmi.h +1 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ typedef enum { GROUP_USAGE = 0x01, TX_USAGE = 0x02, /* default Tx Key - Static WEP only */ PMK_USAGE = 0x04, /* PMK cache */ PASN_USAGE = 0x08, /* is PASN based key */ LTF_USAGE = 0x08, /* LTF key seed */ } KEY_USAGE; /* * List of Events (target to host) Loading fw/wmi_services.h +3 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,9 @@ typedef enum { WMI_SERVICE_AFC_RESET_SUPPORT = 323, /* Indicates FW supports AFC reset */ WMI_SERVICE_FP_PHY_ERR_FILTER_SUPPORT = 324, /* FW supports monitor ring configurations for filtering in PHY error packets */ WMI_IS_RADAR_FOUND_CHAN_FREQ_IS_CENTER_FREQ = 325, /* FW Supporting radar event on the actual center frequency radar was detected */ WMI_SERVICE_BIOS_SAR_SUPPORT = 326, /* FW support for SAR parameter stored in BIOS */ WMI_SERVICE_REO_QREF_SUPPORT = 327, /* FW supports REO QREF */ WMI_SERVICE_DELETE_ALL_PEER_BITMAP_SUPPORT = 328, /* target supports cmd to delete all specific peer type within a vdev */ WMI_MAX_EXT2_SERVICE Loading Loading
fw/htt.h +94 −52 Original line number Diff line number Diff line Loading @@ -338,6 +338,8 @@ enum HTT_OPTION_TLV_TAGS { HTT_OPTION_TLV_TAG_TCL_METADATA_VER = 0x5, }; #define HTT_TCL_METADATA_VER_SZ 4 PREPACK struct htt_option_tlv_header_t { A_UINT8 tag; A_UINT8 length; Loading Loading @@ -5682,10 +5684,11 @@ enum htt_srng_ring_id { * phyrx_abort_request_reason enum definition. * dword14- b'0:15 - rx_mpdu_start_word_mask: word mask for rx mpdu start, * applicable if word mask enabled * - b'16:31 - rx_mpdu_end_word_mask: word mask value for rx mpdu end, * - b'16:18 - rx_mpdu_end_word_mask: word mask value for rx mpdu end, * applicable if word mask enabled * - b'19:31 - rsvd7 * dword15- b'0:16 - rx_msdu_end_word_mask b'17:31 - rsvd5 * - b'17:31 - rsvd5 * dword17- b'0 - en_rx_tlv_pkt_offset: * 0: RX_PKT TLV logging at offset 0 for the subsequent * buffer Loading Loading @@ -5738,7 +5741,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t { A_UINT32 phy_err_mask; A_UINT32 phy_err_mask_cont; A_UINT32 rx_mpdu_start_word_mask:16, rx_mpdu_end_word_mask: 16; rx_mpdu_end_word_mask: 3, rsvd7: 13; A_UINT32 rx_msdu_end_word_mask: 17, rsvd5: 15; A_UINT32 en_rx_tlv_pkt_offset: 1, Loading Loading @@ -6182,15 +6186,15 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M 0xFFFF0000 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M 0x00070000 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S 16 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_SET(_var, _val) \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_M 0x0001FFFF Loading Loading @@ -9355,7 +9359,7 @@ PREPACK struct htt_h2t_sawf_def_queues_map_req { * dword0 - b'7:0 - msg_type: This will be set to * 0x1d (HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ) * b'15:8 - service class ID * dword1 - b'31:16 - peer ID * b'31:16 - peer ID * A HTT_H2T_SAWF_DEF_QUEUES_UNMAP_PEER_ID_WILDCARD * value for peer ID indicates that the target should * apply the UNMAP_REQ to all peers. Loading @@ -9371,27 +9375,26 @@ PREPACK struct htt_h2t_sawf_def_queues_unmap_req { #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_M 0x0000FF00 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S 8 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S) #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S)); \ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_SVC_CLASS_ID_S)); \ } while (0) #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M 0xFFFF0000 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S 16 #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S) #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S)); \ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ_PEER_ID_S)); \ } while (0) /* * MSG_TYPE => HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ * Loading @@ -9403,45 +9406,74 @@ PREPACK struct htt_h2t_sawf_def_queues_unmap_req { * to report what service class (if any) the default MSDU queues for * each of the specified TIDs are linked to. * * |31 16|15 8|7 0| * |31 16|15 8|7 1| 0| * |------------------------------+--------------+--------------| * | peer ID | TID mask | msg type | * |------------------------------------------------------------| * | reserved |ETO| * |------------------------------------------------------------| * Header fields: * dword0 - b'7:0 - msg_type: This will be set to * 0x1e (HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ) * b'15:8 - TID mask * dword1 - b'31:16 - peer ID * b'31:16 - peer ID * dword1 - b'0 - "Existing Tids Only" flag * If this flag is set, the DEF_QUEUES_MAP_REPORT_CONF * message generated by this REQ will only show the * mapping for TIDs that actually exist in the target's * peer object. * Any TIDs that are covered by a MAP_REQ but which * do not actually exist will be shown as being * unmapped (i.e. svc class ID 0xff). * If this flag is cleared, the MAP_REPORT_CONF message * will consider not only the mapping of TIDs currently * existing in the peer, but also the mapping that will * be applied for any TID objects created within this * peer in the future. * b'31:1 - reserved for future use */ PREPACK struct htt_h2t_sawf_def_queues_map_report_req { A_UINT32 msg_type :8, tid_mask :8, peer_id :16; A_UINT32 existing_tids_only:1, reserved :31; } POSTPACK; #define HTT_SAWF_DEF_QUEUES_MAP_REPORT_REQ_BYTES 4 #define HTT_SAWF_DEF_QUEUES_MAP_REPORT_REQ_BYTES 8 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_M 0x0000FF00 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S 8 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S) #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S));\ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_TID_MASK_S));\ } while (0) #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M 0xFFFF0000 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S 16 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_GET(_var) \ (((_var) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M) >> \ #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_GET(word0) \ (((word0) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S) #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_SET(_var, _val) \ #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_SET(word0, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID, _val); \ ((_var) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S)); \ ((word0) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_PEER_ID_S)); \ } while (0) #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_M 0x00000001 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S 0 #define HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_GET(word1) \ (((word1) & HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_M) >> \ HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S) #define HTT_RX_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_SET(word1, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY, _val); \ ((word1) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S)); \ } while (0) Loading Loading @@ -18060,15 +18092,15 @@ PREPACK struct htt_t2h_sawf_def_queues_map_report_conf { * of the newly created MSDUQ and some other identifiers to uniquely identity * the newly created MSDUQ * * |31 27| 24|23 16|15 11|10|9 8|7 4|3 0| * |------------------------------+----------------------+--------------| * |31 27| 24|23 16|15|14 11|10|9 8|7 4|3 0| * |------------------------------+------------------------+--------------| * | peer ID | HTT qtype | msg type | * |--------+---------------------+---------------+--+---+-------+------| * |reserved| Ast Index |FO|WC | HLOS | remap| * |---------------------------------+--------------+--+---+-------+------| * | reserved |AST list index|FO|WC | HLOS | remap| * | | | | | TID | TID | * |---------------------+----------------------------------------------| * |---------------------+------------------------------------------------| * | reserved1 | tgt_opaque_id | * |---------------------+----------------------------------------------| * |---------------------+------------------------------------------------| * * Header fields: * Loading @@ -18084,10 +18116,20 @@ PREPACK struct htt_t2h_sawf_def_queues_map_report_conf { * TCL Data Command : Beryllium * b10 - flow_override (FO), as sent by host in * TCL Data Command: Beryllium * b11:26 - ast_index * Dummy AST Index in case of Lithium, * Default AST Index in case of Beryllium * b27:32 - reserved * b11:14 - ast_list_idx * Array index into the list of extension AST entries * (not the actual AST 16-bit index). * The ast_list_idx is one-based, with the following * range of values: * - legacy targets supporting 16 user-defined * MSDU queues: 1-2 * - legacy targets supporting 48 user-defined * MSDU queues: 1-6 * - new targets: 0 (peer_id is used instead) * Note that since ast_list_idx is one-based, * the host will need to subtract 1 to use it as an * index into a list of extension AST entries. * b15:31 - reserved * * dword2 - b'23:0 - tgt_opaque_id Opaque Tx flow number which is a * unique MSDUQ id in firmware Loading @@ -18102,8 +18144,8 @@ PREPACK struct htt_t2h_sawf_msduq_event { hlos_tid : 4, who_classify_info_sel : 2, flow_override : 1, ast_index :16, reserved : 5; ast_list_idx : 4, reserved :17; A_UINT32 tgt_opaque_id :24, reserved1 : 8; Loading Loading @@ -18178,15 +18220,15 @@ PREPACK struct htt_t2h_sawf_msduq_event { ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_S)); \ } while (0) #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_M 0x07FFF800 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S 11 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_GET(_var) \ (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_M) >> \ HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S) #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_SET(_var, _val) \ #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_M 0x00007800 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_S 11 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_GET(_var) \ (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_M) >> \ HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_S) #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX, _val); \ ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S)); \ HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX, _val); \ ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_LIST_IDX_S)); \ } while (0)
fw/htt_stats.h +88 −0 Original line number Diff line number Diff line Loading @@ -534,6 +534,26 @@ typedef enum { HTT_RX_UL_TRIGGER_STATS_UPLOAD_11BE_OFDMA, } htt_rx_ul_trigger_stats_upload_t; /* * The htt_rx_ul_mumimo_trigger_stats_upload_t enum values are * provided by the host as one of the config param elements in * the HTT_H2T EXT_STATS_REQ message, for stats type == * HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_TRIG_STATS. */ typedef enum { /* * Upload 11ax UL MUMIMO RX Trigger stats * TLV: htt_rx_pdev_ul_mumimo_trig_stats_tlv */ HTT_RX_UL_MUMIMO_TRIGGER_STATS_UPLOAD_11AX, /* * Upload 11be UL MUMIMO RX Trigger stats * TLV: htt_rx_pdev_ul_mumimo_trig_be_stats_tlv */ HTT_RX_UL_MUMIMO_TRIGGER_STATS_UPLOAD_11BE, } htt_rx_ul_mumimo_trigger_stats_upload_t; #define HTT_STATS_MAX_STRING_SZ32 4 #define HTT_STATS_MACID_INVALID 0xff #define HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS 10 Loading Loading @@ -4129,6 +4149,40 @@ typedef enum { #define HTT_TX_PDEV_STATS_NUM_BE_MCS_COUNTERS 16 /* 0...13,-2,-1 */ #define HTT_TX_PDEV_STATS_NUM_BE_BW_COUNTERS 5 /* 20,40,80,160,320 MHz */ #define HTT_TX_PDEV_STATS_NUM_HE_SIG_B_MCS_COUNTERS 6 #define HTT_TX_PDEV_STATS_NUM_EHT_SIG_MCS_COUNTERS 4 typedef enum { HTT_TX_PDEV_STATS_AX_RU_SIZE_26, HTT_TX_PDEV_STATS_AX_RU_SIZE_52, HTT_TX_PDEV_STATS_AX_RU_SIZE_106, HTT_TX_PDEV_STATS_AX_RU_SIZE_242, HTT_TX_PDEV_STATS_AX_RU_SIZE_484, HTT_TX_PDEV_STATS_AX_RU_SIZE_996, HTT_TX_PDEV_STATS_AX_RU_SIZE_996x2, HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS, } HTT_TX_PDEV_STATS_AX_RU_SIZE; typedef enum { HTT_TX_PDEV_STATS_BE_RU_SIZE_26, HTT_TX_PDEV_STATS_BE_RU_SIZE_52, HTT_TX_PDEV_STATS_BE_RU_SIZE_52_26, HTT_TX_PDEV_STATS_BE_RU_SIZE_106, HTT_TX_PDEV_STATS_BE_RU_SIZE_106_26, HTT_TX_PDEV_STATS_BE_RU_SIZE_242, HTT_TX_PDEV_STATS_BE_RU_SIZE_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_484_242, HTT_TX_PDEV_STATS_BE_RU_SIZE_996, HTT_TX_PDEV_STATS_BE_RU_SIZE_996_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_996_484_242, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x2, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x2_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x3, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x3_484, HTT_TX_PDEV_STATS_BE_RU_SIZE_996x4, HTT_TX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS, } HTT_TX_PDEV_STATS_BE_RU_SIZE; typedef struct { htt_tlv_hdr_t tlv_hdr; Loading Loading @@ -4251,6 +4305,10 @@ typedef struct { A_UINT32 reduced_ax_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; /** 11AX HE DL MU OFDMA TX BW stats at reduced channel config */ A_UINT32 reduced_ax_mu_ofdma_tx_bw[HTT_TX_PDEV_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; /** 11AX HE DL MU OFDMA TX RU Size stats */ A_UINT32 ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS]; /** 11AX HE DL MU OFDMA HE-SIG-B MCS stats */ A_UINT32 ofdma_he_sig_b_mcs[HTT_TX_PDEV_STATS_NUM_HE_SIG_B_MCS_COUNTERS]; } htt_tx_pdev_rate_stats_tlv; typedef struct { Loading Loading @@ -4329,6 +4387,10 @@ typedef struct { A_UINT32 be_ofdma_tx_bw[HTT_TX_PDEV_STATS_NUM_BE_BW_COUNTERS]; /** 11BE EHT DL MU OFDMA TX guard interval stats */ A_UINT32 be_ofdma_tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_BE_MCS_COUNTERS]; /** 11BE EHT DL MU OFDMA TX RU Size stats */ A_UINT32 be_ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS]; /** 11BE EHT DL MU OFDMA EHT-SIG MCS stats */ A_UINT32 be_ofdma_eht_sig_mcs[HTT_TX_PDEV_STATS_NUM_EHT_SIG_MCS_COUNTERS]; } htt_tx_pdev_rate_stats_be_ofdma_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE Loading Loading @@ -5640,26 +5702,49 @@ typedef struct { A_UINT32 cv_dma_not_done_err; A_UINT32 cv_update_failed; /* cv query stats */ /** total times CV query happened */ A_UINT32 cv_total_query; /** total pattern based CV query */ A_UINT32 cv_total_pattern_query; /** total BW based CV query */ A_UINT32 cv_total_bw_query; /** incorrect encoding in CV flags */ A_UINT32 cv_invalid_bw_coding; /** forced sounding enabled for the peer */ A_UINT32 cv_forced_sounding; /** standalone sounding sequence on-going */ A_UINT32 cv_standalone_sounding; /** NC of available CV lower than expected */ A_UINT32 cv_nc_mismatch; /** feedback type different from expected */ A_UINT32 cv_fb_type_mismatch; /** CV BW not equal to expected BW for OFDMA */ A_UINT32 cv_ofdma_bw_mismatch; /** CV BW not greater than or equal to expected BW */ A_UINT32 cv_bw_mismatch; /** CV pattern not matching with the expected pattern */ A_UINT32 cv_pattern_mismatch; /** CV available is of different preamble type than expected. */ A_UINT32 cv_preamble_mismatch; /** NR of available CV is lower than expected. */ A_UINT32 cv_nr_mismatch; /** CV in use count has exceeded threshold and cannot be used further. */ A_UINT32 cv_in_use_cnt_exceeded; /** A valid CV has been found. */ A_UINT32 cv_found; /** No valid CV was found. */ A_UINT32 cv_not_found; /** Sounding per user in 320MHz bandwidth */ A_UINT32 sounding_320[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS]; /** Counts number of soundings for all steering modes in 320MHz bandwidth */ A_UINT32 cbf_320[HTT_TXBF_MAX_NUM_OF_MODES]; /* This part can be used for new counters added for CV query/upload. */ /** non-trigger based ranging sequence on-going */ A_UINT32 cv_ntbr_sounding; /** CV found, but upload is in progress. */ A_UINT32 cv_found_upload_in_progress; /** Expired CV found during query. */ A_UINT32 cv_expired_during_query; } htt_tx_sounding_stats_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO Loading Loading @@ -6094,6 +6179,9 @@ typedef struct { htt_tx_rate_stats_t per_mcs[HTT_TX_TXBF_RATE_STATS_NUM_MCS_COUNTERS]; /** 320MHz extension for PER */ htt_tx_rate_stats_t per_bw320; } htt_tx_rate_stats_per_tlv; /* NOTE: Loading
fw/wmi.h +1 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ typedef enum { GROUP_USAGE = 0x01, TX_USAGE = 0x02, /* default Tx Key - Static WEP only */ PMK_USAGE = 0x04, /* PMK cache */ PASN_USAGE = 0x08, /* is PASN based key */ LTF_USAGE = 0x08, /* LTF key seed */ } KEY_USAGE; /* * List of Events (target to host) Loading
fw/wmi_services.h +3 −0 Original line number Diff line number Diff line Loading @@ -576,6 +576,9 @@ typedef enum { WMI_SERVICE_AFC_RESET_SUPPORT = 323, /* Indicates FW supports AFC reset */ WMI_SERVICE_FP_PHY_ERR_FILTER_SUPPORT = 324, /* FW supports monitor ring configurations for filtering in PHY error packets */ WMI_IS_RADAR_FOUND_CHAN_FREQ_IS_CENTER_FREQ = 325, /* FW Supporting radar event on the actual center frequency radar was detected */ WMI_SERVICE_BIOS_SAR_SUPPORT = 326, /* FW support for SAR parameter stored in BIOS */ WMI_SERVICE_REO_QREF_SUPPORT = 327, /* FW supports REO QREF */ WMI_SERVICE_DELETE_ALL_PEER_BITMAP_SUPPORT = 328, /* target supports cmd to delete all specific peer type within a vdev */ WMI_MAX_EXT2_SERVICE Loading