Merge "fw-api: CL 32280322 - update fw common interface files"

This commit is contained in:
QCTECMDR Service 2026-04-17 19:32:56 -07:00 • committed by Gerrit - the friendly Code Review server
commit 5849225fe6
4 changed files with 341 additions and 55 deletions

258
fw/htt.h
View file

@ -284,9 +284,10 @@
* 3.154 Add T2H PEER_DEL_ALL_GLOBAL_VDEV_ID_UNMAP msg def.
* 3.155 Add rxmon hdrlen specs in rx_ring_selection_cfg_t.
* 3.156 Add qdata_consent_pkt flag in rx_peer_metadata_v1a and v2.
* 3.157 Add TCL_METADATA_V3 defs.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 156
#define HTT_CURRENT_VERSION_MINOR 157
#define HTT_NUM_TX_FRAG_DESC 1024
@ -583,6 +584,7 @@ PREPACK struct htt_option_tlv_support_tx_msdu_desc_ext_t {
* should be used:
* V1 -> use htt_tx_tcl_metadata struct
* V2 -> use htt_tx_tcl_metadata_v2 struct
* V3 -> use htt_tx_tcl_metadata_v3 struct
* Old FW will only support V1.
* New FW will support V2. New FW will still support V1, at least during
* a transition period.
@ -608,11 +610,17 @@ PREPACK struct htt_option_tlv_support_tx_msdu_desc_ext_t {
* and the FW will crash in wal_tx_de_fast.c. For version 2.1 and
* above we will use htt_tx_tcl_svc_class_id_metadata.ast_index
* in TCLV2 command and do the dynamic AST allocations.
*
* Apr 2026: Added HTT_OPTION_TLV_TCL_METADATA_V3.
* This version supports the updated tcl_data_cmd introduced in Boron.
* All fields are identical to V2; however, the field ordering has been
* modified to accommodate MAC requirements.
*/
enum HTT_OPTION_TLV_TCL_METADATA_VER_VALUES {
HTT_OPTION_TLV_TCL_METADATA_V1 = 1,
HTT_OPTION_TLV_TCL_METADATA_V2 = 2,
/* values 3-20 reserved */
HTT_OPTION_TLV_TCL_METADATA_V3 = 3,
/* values 4-20 reserved */
HTT_OPTION_TLV_TCL_METADATA_V21 = 21,
};
@ -865,13 +873,16 @@ typedef enum {
HTT_STATS_PDEV_RTT_DELAY_TAG = 205, /* htt_stats_pdev_rtt_delay_tlv */
HTT_STATS_PDEV_AOA_TAG = 206, /* htt_stats_pdev_aoa_tlv */
HTT_STATS_PDEV_FTM_TPCCAL_TAG = 207, /* htt_stats_pdev_ftm_tpccal_tlv */
HTT_STATS_PDEV_UL_MUMIMO_GRP_STATS_TAG = 208, /* htt_stats_pdev_ulmumimo_grp_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_DENYLIST_STATS_TAG = 209, /* htt_stats_pdev_ulmumimo_denylist_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_SEQ_TERM_STATS_TAG = 210, /* htt_stats_pdev_ulmumimo_seq_term_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_HIST_INELIGIBILITY_TAG = 211, /* htt_stats_pdev_ulmumimo_hist_ineligibility_tlv */
HTT_STATS_PDEV_UL_MUMIMO_GRP_STATS_TAG = 208, /* htt_stats_pdev_ul_mumimo_grp_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_DENYLIST_STATS_TAG = 209, /* htt_stats_pdev_ul_mumimo_denylist_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_SEQ_TERM_STATS_TAG = 210, /* htt_stats_pdev_ul__mumimo_seq_term_stats_tlv */
HTT_STATS_PDEV_UL_MUMIMO_HIST_INELIGIBILITY_TAG = 211, /* htt_stats_pdev_ul_mumimo_hist_ineligibility_tlv */
HTT_STATS_PHY_PAPRD_PB_TAG = 212, /* htt_stats_phy_paprd_pb_tlv */
HTT_STATS_HDS_PROF_STATS_TAG = 213, /* htt_stat_hds_prof_stats_tlv */
HTT_STATS_TX_PDEV_MDSB_NUM_USERS_HISTOGRAM_TLV_TAG = 214, /* htt_stats_tx_pdev_mdsb_num_users_histogram_tlv */
HTT_STATS_TX_PDEV_MDSB_NUM_USERS_HISTOGRAM_TAG = 214, /* htt_stats_tx_pdev_mdsb_num_users_histogram_tlv */
/* preserve old name as an alias for the corrected name */
HTT_STATS_TX_PDEV_MDSB_NUM_USERS_HISTOGRAM_TLV_TAG =
HTT_STATS_TX_PDEV_MDSB_NUM_USERS_HISTOGRAM_TAG,
HTT_STATS_TX_PDEV_PENDING_SEQ_CNT_ON_SCHED_POST_HIST_TAG = 215, /* htt_stats_tx_pdev_pending_seq_cnt_on_sched_post_hist_tlv */
HTT_STATS_TX_PDEV_PENDING_SEQ_CNT_IN_HWQ_HIST_TAG = 216, /* htt_stats_tx_pdev_pending_seq_cnt_in_hwq_hist_tlv */
HTT_STATS_TX_PDEV_PENDING_SEQ_CNT_IN_TXQ_HIST_TAG = 217, /* htt_stats_tx_pdev_pending_seq_cnt_in_txq_hist_tlv */
@ -880,8 +891,8 @@ typedef enum {
HTT_STATS_TX_SELFGEN_BN_ERR_TAG = 220, /* htt_stats_tx_selfgen_bn_err_tlv, TOPIC=advanced */
HTT_STATS_TX_SELFGEN_BN_TAG = 221, /* htt_stats_tx_selfgen_bn_tlv, TOPIC=advanced */
HTT_STATS_TX_SELFGEN_BN_SCHED_STATUS_TAG = 222, /* htt_stats_tx_selfgen_bn_sched_status_tlv, TOPIC=advanced */
HTT_STATS_TX_PDEV_BN_DL_MU_OFDMA_STATS_TAG = 223, /* htt_stats_tx_pdev_bn_dl_mu_ofdma_tlv, TOPIC=advanced */
HTT_STATS_TX_PDEV_BN_UL_MU_OFDMA_STATS_TAG = 224, /* htt_stats_tx_pdev_bn_ul_mu_ofdma_tlv, TOPIC=advanced */
HTT_STATS_TX_PDEV_BN_DL_MU_OFDMA_STATS_TAG = 223, /* htt_stats_tx_pdev_bn_dl_mu_ofdma_stats_tlv, TOPIC=advanced */
HTT_STATS_TX_PDEV_BN_UL_MU_OFDMA_STATS_TAG = 224, /* htt_stats_tx_pdev_bn_ul_mu_ofdma_stats_tlv, TOPIC=advanced */
HTT_STATS_RX_PEER_TID_REO_QUEUE_BA_TAG = 225, /* htt_stats_rx_peer_tid_reo_queue_ba_tlv */
HTT_STATS_TXBF_OFDMA_BN_NDPA_TAG = 226, /* htt_stats_txbf_ofdma_bn_ndpa_tlv */
HTT_STATS_TXBF_OFDMA_BN_NDP_TAG = 227, /* htt_stats_txbf_ofdma_bn_ndp_tlv */
@ -915,14 +926,14 @@ typedef enum {
HTT_STATS_REGDB_CTRY_TAG = 247, /* htt_stats_regdb_ctry_tlv */
HTT_STATS_REGDB_REGDOMAIN_TAG = 248, /* htt_stats_regdb_regdomain_tlv */
HTT_STATS_REG_6G_TAG = 249, /* htt_stats_reg_6g_tlv*/
HTT_STATS_REG_6G_CH_PWR_INFO_TAG = 250, /* htt_stats_reg_6g_ch_power_info_tlv*/
HTT_STATS_REG_6G_CH_PWR_INFO_TAG = 250, /* htt_stats_reg_6g_ch_power_info_tlv */
HTT_STATS_REG_6G_OOBE_TAG = 251, /* htt_stats_reg_6g_oobe_tlv*/
HTT_STATS_TX_SELFGEN_RESP_FRAME_STATS_TAG = 252, /* htt_stats_tx_selfgen_resp_frame_stats_tlv */
HTT_STATS_DPD_HALPHY_TAG = 253, /* htt_stats_dpd_halphy_tlv */
HTT_STATS_DPD_HW_CAL_PARAMS_TAG = 254, /* htt_stats_dpd_hw_cal_params_tlv */
HTT_STATS_DPD_HW_CAL_RESULTS_TAG = 255, /* htt_stats_dpd_hw_cal_results_tlv */
HTT_STATS_TX_PDEV_TXOP_DUR_TAG = 256, /* htt_stats_tx_pdev_txop_dur_tlv */
HTT_STATS_TXQ_COMBINED_SEQ_STATE_TAG = 257, /* htt_stats_sched_txq_combined_seq_state_tlv */
HTT_STATS_TXQ_COMBINED_SEQ_STATE_TAG = 257, /* htt_stats_txq_combined_seq_state_tlv */
HTT_STATS_CTL_TAG = 258, /* htt_stats_ctl_tlv */
HTT_STATS_ENHANCED_CTL_TAG = 259, /* htt_stats_enhanced_ctl_tlv */
@ -2947,6 +2958,231 @@ PREPACK struct htt_tx_tcl_metadata_v2 {
* End V2 Version of TCL Data Command
*-----------------------------------------------------------------*/
/*------------------------------------------------------------------
* V3 Version of TCL Data Command
* V3 Version to support peer_id, vdev_id, svc_class_id and
* MLO global_seq all flavours of TCL Data Cmd. same fields as V2,
* but the ordering of the fields changes.
*-----------------------------------------------------------------*/
typedef struct {
A_UINT32
valid_htt_ext: 1, /* If set, tcl_exit_base->host_meta_info is valid */
vdev_id: 8,
pdev_id: 2,
host_inspected:1,
rsvd: 2,
/* type: vdev_id based or peer_id or svc_id or global seq based */
type: 2,
/* padding: these 16 bits cannot be used by FW for the tcl command */
padding: 16;
} htt_tx_tcl_vdev_metadata_v3;
typedef struct {
A_UINT32
valid_htt_ext: 1, /* If set, tcl_exit_base->host_meta_info is valid */
peer_id: 13,
/* type: vdev_id based or peer_id or svc_id or global seq based */
type: 2,
/* padding: these 16 bits cannot be used by FW for the tcl command */
padding: 16;
} htt_tx_tcl_peer_metadata_v3;
typedef struct {
A_UINT32
valid_htt_ext: 1, /* If set, tcl_exit_base->host_meta_info is valid */
svc_class_id: 8,
/* ast_index:
* Indicates to firmware the AST index to be used for AST Override
*/
ast_index: 3,
rsvd: 2,
/* type: vdev_id based or peer_id or svc_id or global seq based */
type: 2,
/* padding: these 16 bits cannot be used by FW for the tcl command */
padding: 16;
} htt_tx_tcl_svc_class_id_metadata_v3;
typedef struct {
A_UINT32
global_seq_no: 12,
host_inspected: 1,
htt_ext_present:1,
/* type: vdev_id based or peer_id or svc_id or global seq based */
type: 2,
/* padding: these 16 bits cannot be used by FW for the tcl command */
padding: 16;
} htt_tx_tcl_global_seq_metadata_v3;
PREPACK struct htt_tx_tcl_metadata_v3 {
union {
htt_tx_tcl_vdev_metadata_v3 vdev_meta_v3;
htt_tx_tcl_peer_metadata_v3 peer_meta_v3;
htt_tx_tcl_svc_class_id_metadata_v3 svc_class_id_meta_v3;
htt_tx_tcl_global_seq_metadata_v3 global_seq_meta_v3;
};
} POSTPACK;
/* =====================================================================
* Common fields
* ===================================================================== */
/* type field */
#define HTT_TX_TCL_METADATA_TYPE_V3_M 0x0000C000
#define HTT_TX_TCL_METADATA_TYPE_V3_S 14
/* valid htt ext (used by VDEV / PEER / SVC metadata) */
#define HTT_TX_TCL_METADATA_V3_VALID_HTT_EXT_ID_M 0x00000001
#define HTT_TX_TCL_METADATA_V3_VALID_HTT_EXT_ID_S 0
/* =====================================================================
* VDEV V3 metadata
* ===================================================================== */
#define HTT_TX_TCL_METADATA_V3_VDEV_ID_M 0x000001FE
#define HTT_TX_TCL_METADATA_V3_VDEV_ID_S 1
#define HTT_TX_TCL_METADATA_V3_PDEV_ID_M 0x00000600
#define HTT_TX_TCL_METADATA_V3_PDEV_ID_S 9
#define HTT_TX_TCL_METADATA_V3_HOST_INSPECTED_M 0x00000800
#define HTT_TX_TCL_METADATA_V3_HOST_INSPECTED_S 11
/* =====================================================================
* PEER V3 metadata
* ===================================================================== */
#define HTT_TX_TCL_METADATA_V3_PEER_ID_M 0x00003FFE
#define HTT_TX_TCL_METADATA_V3_PEER_ID_S 1
/* =====================================================================
* SVC CLASS ID metadata
* ===================================================================== */
#define HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID_M 0x000001FE
#define HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID_S 1
#define HTT_TX_TCL_METADATA_AST_INDEX_M 0x00000E00
#define HTT_TX_TCL_METADATA_AST_INDEX_S 9
/* =====================================================================
* Global Sequence Number metadata
* ===================================================================== */
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO_M 0x00000FFF
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO_S 0
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED_M 0x00001000
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED_S 12
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT_M 0x00002000
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT_S 13
/*----- Get and Set V3 type field in Vdev, Peer, Svc_Class_Id, Global_seq_no */
#define HTT_TX_TCL_METADATA_TYPE_V3_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_TYPE_V3_M) >> \
HTT_TX_TCL_METADATA_TYPE_V3_S)
#define HTT_TX_TCL_METADATA_TYPE_V3_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_TYPE_V3, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_TYPE_V3_S)); \
} while (0)
#define HTT_TX_TCL_METADATA_V3_VALID_HTT_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_VALID_HTT_EXT_ID_M) >> \
HTT_TX_TCL_METADATA_V3_VALID_HTT_EXT_ID_S)
#define HTT_TX_TCL_METADATA_V3_VALID_HTT_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_VALID_HTT_EXT_ID, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_VALID_HTT_EXT_ID_S)); \
} while (0)
/*----- Get and Set V3 type field in Vdev meta fields ----*/
#define HTT_TX_TCL_METADATA_V3_VDEV_ID_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_VDEV_ID_M) >> \
HTT_TX_TCL_METADATA_V3_VDEV_ID_S)
#define HTT_TX_TCL_METADATA_V3_VDEV_ID_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_VDEV_ID, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_VDEV_ID_S)); \
} while (0)
#define HTT_TX_TCL_METADATA_V3_PDEV_ID_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_PDEV_ID_M) >> \
HTT_TX_TCL_METADATA_V3_PDEV_ID_S)
#define HTT_TX_TCL_METADATA_V3_PDEV_ID_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_PDEV_ID, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_PDEV_ID_S)); \
} while (0)
#define HTT_TX_TCL_METADATA_V3_HOST_INSPECTED_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_HOST_INSPECTED_M) >> \
HTT_TX_TCL_METADATA_V3_HOST_INSPECTED_S)
#define HTT_TX_TCL_METADATA_V3_HOST_INSPECTED_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_HOST_INSPECTED, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_HOST_INSPECTED_S)); \
} while (0)
/*----- Get and Set V3 type field in Peer meta fields ----*/
#define HTT_TX_TCL_METADATA_V3_PEER_ID_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_PEER_ID_M) >> \
HTT_TX_TCL_METADATA_V3_PEER_ID_S)
#define HTT_TX_TCL_METADATA_V3_PEER_ID_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_PEER_ID, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_PEER_ID_S)); \
} while (0)
/*----- Get and Set V3 type field in Service Class fields ----*/
#define HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID_M) >> \
HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID_S)
#define HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_SVC_CLASS_ID_S)); \
} while (0)
/*----- Get and Set V3 type field in Global sequence fields ----*/
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED_M) >> \
HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED_S)
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HOST_INSPECTED_S)); \
} while (0)
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO_M) >> \
HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO_S)
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_GLBL_SEQ_NO_S)); \
} while (0)
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT_GET(_var) \
(((_var) & HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT_M) >> \
HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT_S)
#define HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT, _val); \
((_var) |= ((_val) << HTT_TX_TCL_METADATA_V3_GLBL_SEQ_HTT_EXT_PRESENT_S)); \
} while (0)
/*------------------------------------------------------------------
* End V3 Version of TCL Data Command
*-----------------------------------------------------------------*/
typedef enum {
HTT_TX_FW2WBM_TX_STATUS_OK,
HTT_TX_FW2WBM_TX_STATUS_DROP,

View file

@ -5097,7 +5097,10 @@ typedef struct {
htt_tlv_hdr_t tlv_hdr;
/** Represents the count for 11BN DL MU OFDMA sequences */
A_UINT32 bn_mu_ofdma_sch_nusers[HTT_TX_PDEV_STATS_NUM_BN_OFDMA_USER_STATS];
} htt_stats_tx_pdev_bn_dl_mu_ofdma_tlv;
} htt_stats_tx_pdev_bn_dl_mu_ofdma_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_tx_pdev_bn_dl_mu_ofdma_stats_tlv
htt_stats_tx_pdev_bn_dl_mu_ofdma_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@ -5162,7 +5165,10 @@ typedef struct {
/**
* TODO_BORON_OFDMA : Add array for BN_BRP number of users
*/
} htt_stats_tx_pdev_bn_ul_mu_ofdma_tlv;
} htt_stats_tx_pdev_bn_ul_mu_ofdma_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_tx_pdev_bn_ul_mu_ofdma_stats_tlv
htt_stats_tx_pdev_bn_ul_mu_ofdma_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@ -5353,6 +5359,17 @@ typedef struct {
htt_tlv_hdr_t tlv_hdr;
A_UINT32 htt_stats_type;
} htt_stats_error_tlv_v;
/* Multiple TLV tag values
* (HTT_STATS_UNSUPPORTED_ERROR_STATS_TAG,
* HTT_STATS_UNAVAILABLE_ERROR_STATS_TAG)
* correspond to this htt_stats_error_tlv_v struct.
* Provide aliases that have the expected names
* that are consistent with the TLV tag enum names.
*/
typedef htt_stats_error_tlv_v
htt_stats_unsupported_error_stats_tlv;
typedef htt_stats_error_tlv_v
htt_stats_unavailable_error_stats_tlv;
typedef enum {
HTT_SCHED_TID_SKIP_SCHED_MASK_DISABLED = 0, /* Skip the tid when WAL_TID_DISABLE_TX_SCHED_MASK is true */
@ -5502,7 +5519,10 @@ typedef struct {
* Indexed by htt_sched_txq_combined_seq_status_tlv_enum.
*/
HTT_STATS_VAR_LEN_ARRAY1(A_UINT32, combined_seq_state);
} htt_stats_sched_txq_combined_seq_state_tlv;
} htt_stats_txq_combined_seq_state_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_txq_combined_seq_state_tlv
htt_stats_sched_txq_combined_seq_state_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@ -10994,7 +11014,10 @@ typedef struct {
A_UINT32 mu_grp_candidate_skip_1ss
[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS]
[HTT_STATS_CANDIDATE_SKIP_REASON_MAX];
} htt_stats_pdev_ulmumimo_grp_stats_tlv;
} htt_stats_pdev_ul_mumimo_grp_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_pdev_ul_mumimo_grp_stats_tlv
htt_stats_pdev_ulmumimo_grp_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@ -11005,7 +11028,10 @@ typedef struct {
A_UINT32 trig_bitmap_fail_cnt;
/* Num of times peer denylisted due to trigger consecutive failure */
A_UINT32 trig_consecutive_fail_cnt;
} htt_stats_pdev_ulmumimo_denylist_stats_tlv;
} htt_stats_pdev_ul_mumimo_denylist_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_pdev_ul_mumimo_denylist_stats_tlv
htt_stats_pdev_ulmumimo_denylist_stats_tlv;
#define HTT_STATS_SEQ_EFFICIENCY_HISTOGRAM 10
typedef struct {
@ -11042,7 +11068,10 @@ typedef struct {
* for low traffic classification
*/
A_UINT32 num_terminate_seq_low_traffic;
} htt_stats_pdev_ulmumimo_seq_term_stats_tlv;
} htt_stats_pdev_ul_mumimo_seq_term_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_pdev_ul_mumimo_seq_term_stats_tlv
htt_stats_pdev_ulmumimo_seq_term_stats_tlv;
#define HTT_STATS_MAX_ULMUMIMO_TRIGGERS 6
#define HTT_STATS_TXOP_HISTOGRAM_BINS 24
@ -11070,7 +11099,10 @@ typedef struct {
* Checks for 8 eligible instances of ULMUMIMO in the past 32 instances.
*/
A_UINT32 history_ineligibility;
} htt_stats_pdev_ulmumimo_hist_ineligibility_tlv;
} htt_stats_pdev_ul_mumimo_hist_ineligibility_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_pdev_ul_mumimo_hist_ineligibility_tlv
htt_stats_pdev_ulmumimo_hist_ineligibility_tlv;
/* RTT VREG MASK */
@ -16473,7 +16505,10 @@ typedef struct {
psd_power_freq_pair[HTT_STATS_REG_POWER_INFO_6G_MAX_SUBBANDS];
htt_stats_reg_freq_power_pair_t
eirp_power_freq_pair[HTT_STATS_REG_POWER_INFO_6G_MAX_SUBBANDS];
} htt_stats_reg_6g_ch_power_info_tlv;
} htt_stats_reg_6g_ch_pwr_info_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_reg_6g_ch_pwr_info_tlv
htt_stats_reg_6g_ch_power_info_tlv;
#define HTT_STATS_REG_6G_GET_POWER_TYPE(word) \
HTT_STATS_GET_FIELD(0xFF, 0, (word))

View file

@ -38537,9 +38537,13 @@ typedef enum {
} WMI_PDEV_POWER_DATAPATH_STATS_OPERATION;
typedef enum {
WMI_PDEV_POWER_STATS_TYPE = 0x00000001,
WMI_PDEV_DATAPATH_STATS_TYPE = 0x00000002,
WMI_PDEV_POWER_DATAPATH_STATS_ALL = 0x00000003,
WMI_PDEV_POWER_STATS_TYPE = 0x00000001,
WMI_PDEV_DATAPATH_STATS_TYPE = 0x00000002,
WMI_PDEV_POWER_DATAPATH_STATS_ALL = 0x00000003,
WMI_PDEV_SOC_POWER_STATS_TYPE = 0x00000004,
WMI_PDEV_SOC_POWER_DATAPATH_STATS_ALL = 0x00000005,
WMI_PDEV_STATS_TYPE_MAX,
} WMI_PDEV_POWER_DATAPATH_STATS_TYPE;
@ -38790,47 +38794,58 @@ typedef struct {
/* Power stats in event payload*/
typedef struct {
/** Power Statistics */
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_power_stats_info */
/** Power Statistics */
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_power_stats_info */
/** Common element - core_index (PDEV ID) */
A_UINT32 core_index;
/** Common element - core_index (PDEV ID) */
A_UINT32 core_index;
A_UINT32 radio_on_time; /* Time radio was on (ms) */
A_UINT32 radio_off_time; /* Time radio was off (ms) */
A_UINT32 wlan_pwr_on_time; /* WLAN power on time (ms) */
/* tx_time:
* ms duration the radio is in a continuous transmit state
* encompassing all packet types (management, data, action frames)
*/
A_UINT32 tx_time;
/* rx_time:
* ms duration the radio is in a continuous receiving data state
* Including all Rx packets instead of only collecting for my BSS data
*/
A_UINT32 rx_time;
A_UINT32 radio_on_time; /* Time radio was on (ms) */
A_UINT32 radio_off_time; /* Time radio was off (ms) */
A_UINT32 wlan_pwr_on_time; /* WLAN power on time (ms) */
/* tx_time:
* ms duration the radio is in a continuous transmit state
* encompassing all packet types (management, data, action frames)
*/
A_UINT32 tx_time;
/* rx_time:
* ms duration the radio is in a continuous receiving data state
* Including all Rx packets instead of only collecting for my BSS data
*/
A_UINT32 rx_time;
/* Number of sleep levels being sent to the host */
A_UINT32 sleep_levels_num;
A_UINT32 sleep_time_per_levels[WMI_MAX_SLEEP_LEVELS]; /* ms */
/* Number of sleep levels being sent to the host */
A_UINT32 sleep_levels_num;
A_UINT32 sleep_time_per_levels[WMI_MAX_SLEEP_LEVELS]; /* ms */
} wmi_pdev_power_stats_info;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_power_datapath_stats_event_fixed_param */
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_power_datapath_stats_event_fixed_param */
/** Status of the operation */
A_UINT32 status; /* 0 = success, non-zero = error */
/** Status of the operation */
A_UINT32 status; /* 0 = success, non-zero = error */
/** Stats type bitmap indicating which stats are included */
A_UINT32 stats_type_bitmap;
/** Stats type bitmap indicating which stats are included */
A_UINT32 stats_type_bitmap;
/*
* Following this structure are the TLVs:
* wmi_pdev_power_stats_info[num_cores];
* wmi_pdev_tx_rate_info[num_tx_rate_info]
* where num_cores and num_tx_rate_info are determined from the TLV array
* (i.e. array size / array element size)
*/
A_UINT32 wlan_soc_pwr_on_time; /* WLAN power on time (ms) */
/* wlan_soc_sleep_levels_num:
* Number of sleep levels supported.
* Could be less than WMI_MAX_SLEEP_LEVELS based on the chip.
*/
A_UINT32 wlan_soc_sleep_levels_num;
/** soc sleep level. Same WMI_MAX_SLEEP_LEVELS is used for sizing */
A_UINT32 wlan_soc_sleep_time_per_level[WMI_MAX_SLEEP_LEVELS]; /* ms */
/*
* Following this structure are the TLVs:
* wmi_pdev_power_stats_info[num_cores];
* wmi_pdev_tx_rate_info[num_tx_rate_info]
* where num_cores and num_tx_rate_info are determined from the TLV array
* (i.e. array size / array element size)
*/
} wmi_pdev_power_datapath_stats_event_fixed_param;

View file

@ -37,7 +37,7 @@
#define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */
#define __WMI_REVISION_ 1744
#define __WMI_REVISION_ 1745
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work