Merge 3296157051 on remote branch

Change-Id: I5f9dff78d3c1be9d07827282ff111aac89b5c2f4
This commit is contained in:
lnxbuild 2026-07-06 08:53:41 -07:00
commit 6a5f009819
7 changed files with 6097 additions and 321 deletions

View file

@ -64,7 +64,9 @@ typedef enum {
/* WMI_CONTROL_SVC_WMAC3,4: WMI service for MACs 3 and 4 (where applicable) */
#define WMI_CONTROL_SVC_WMAC3 MAKE_SERVICE_ID(WMI_SERVICE_GROUP,9)
#define WMI_CONTROL_SVC_WMAC4 MAKE_SERVICE_ID(WMI_SERVICE_GROUP,10)
#define WMI_MAX_SERVICES 11
/* SMD high prio service - common for all macs */
#define WMI_CONTROL_SMD_SVC MAKE_SERVICE_ID(WMI_SERVICE_GROUP,11)
#define WMI_MAX_SERVICES 12
#define NMI_CONTROL_SVC MAKE_SERVICE_ID(NMI_SERVICE_GROUP,0)
#define NMI_DATA_SVC MAKE_SERVICE_ID(NMI_SERVICE_GROUP,1)
@ -98,6 +100,13 @@ typedef enum {
*/
#define HTT_DATA4_MSG_SVC MAKE_SERVICE_ID(HTT_SERVICE_GROUP,3)
/* H2T - Telemetry channel */
#define HTT_TELEMETRY_SVC MAKE_SERVICE_ID(HTT_SERVICE_GROUP,4)
/* T2H - Telemetry channel 1 */
#define HTT_TELEMETRY1_SVC MAKE_SERVICE_ID(HTT_SERVICE_GROUP,5)
/* T2H - Telemetry channel 2 */
#define HTT_TELEMETRY2_SVC MAKE_SERVICE_ID(HTT_SERVICE_GROUP,6)
/* raw stream service (i.e. flash, tcmd, calibration apps) */
#define HTC_RAW_STREAMS_SVC MAKE_SERVICE_ID(HTC_TEST_GROUP,0)

540
fw/htt.h
View file

@ -283,9 +283,12 @@
* 3.153 Add passthru_pkt flag in rx_peer_metadata structs.
* 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.
* 3.158 Add more fields in htt_tx_monitor_cfg_t.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 155
#define HTT_CURRENT_VERSION_MINOR 158
#define HTT_NUM_TX_FRAG_DESC 1024
@ -582,6 +585,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.
@ -607,11 +611,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,
};
@ -864,13 +874,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 */
@ -879,8 +892,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 */
@ -914,16 +927,24 @@ 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 */
HTT_STATS_NPCA_TAG = 260, /* htt_stats_npca_tlv */
HTT_STATS_SCHED_TXQ_TX_MODE_SIMPLIFIED_TAG = 261, /* htt_stats_sched_txq_tx_mode_simplified_tlv */
HTT_STATS_SCHED_TXQ_TX_MODE_WINNER_TAG = 262, /* htt_stats_sched_txq_tx_mode_winner_tlv */
HTT_STATS_DFS_RADAR_HISTORY_TAG = 263, /* htt_stats_dfs_radar_history_tlv */
HTT_STATS_DFS_INI_TAG = 264, /* htt_stats_dfs_ini_tlv */
HTT_STATS_DFS_IPC_RING_TAG = 265, /* htt_stats_dfs_ipc_ring_tlv */
HTT_STATS_PHY_DPD_DEBUG_CHAIN_V1_TAG = 266, /* htt_stats_phy_dpd_debug_chain_v1_tlv */
HTT_STATS_PHY_TPC_DEBUG_CHAIN_V1_TAG = 267, /* htt_stats_phy_tpc_debug_chain_v1_tlv */
HTT_STATS_MAX_TAG,
} htt_stats_tlv_tag_t;
@ -2946,6 +2967,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,
@ -5997,7 +6243,11 @@ enum htt_srng_ring_id {
* newer packet_type_enable_data_flags_* are valid or not
* If not set, will use pkt_type_enable_flags for both status
* and full pkt buffer configuration.
* b'30:31 - rsvd1: reserved for future use
* b'30 - is_monitor_mode: specify whether monitor mode is enabled.
* Helpful to configure monitor-mode related filters.
* These filters cause throughput dip if enabled in
* non-monitor mode.
* b'31 - rsvd1: reserved for future use
* dword1 - b'0:15 - ring_buffer_size: size of bufferes referenced by rx ring,
* in byte units.
* Valid only for HW_TO_SW_RING and SW_TO_HW_RING
@ -6214,7 +6464,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t {
drop_thresh_valid: 1,
rx_mon_global_en: 1,
packet_type_enable_data: 1,
rsvd1: 2;
is_monitor_mode: 1,
rsvd1: 1;
A_UINT32 ring_buffer_size: 16,
config_length_mgmt:3,
config_length_ctrl:3,
@ -6417,6 +6668,18 @@ enum htt_reg_write_selection {
((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_S)); \
} while (0)
#define HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE_M 0x40000000
#define HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE_S 30
#define HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE_GET(_var) \
(((_var) & HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE_M) >> \
HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE_S)
#define HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE, _val); \
((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_IS_MONITOR_MODE_S)); \
} while (0)
#define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_M 0x0000ffff
#define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_S 0
#define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_GET(_var) \
@ -7853,7 +8116,10 @@ PREPACK struct htt_tx_monitor_cfg_t {
pkt_swap: 1,
tx_mon_global_en: 1,
mac_addr_filter_en: 1,
rsvd1: 4;
addr_filter_peer_bitmap_ppdu_drop: 1,
type_based_mpdu_stat_filter_en: 1,
special_pkt_filtering_en: 1,
pkt_buf_cnt_en: 1;
A_UINT32 ring_buffer_size: 16,
config_length_mgmt: 3,
config_length_ctrl: 3,
@ -7897,6 +8163,23 @@ PREPACK struct htt_tx_monitor_cfg_t {
response_end_status_word_mask: 16;
A_UINT32 fes_status_prot_word_mask: 11,
rsvd6: 21;
A_UINT32 phy_tx_pkt_end: 8,
mac_tx_user_desc_common: 8,
mac_tx_mu_uplink_user_setup: 8,
pdg_response: 8;
A_UINT32 received_response_info: 8,
rx_response_required_info: 8,
ranging_user_details: 8,
mactx_pre_phy_desc: 8;
A_UINT32 ofdma_trigger_details: 16,
tqm_update_tx_mpdu_count_status: 16;
A_UINT32 phytx_location: 16,
rsvd7: 16;
A_UINT32 received_response_info_part2;
A_UINT32 type_en_mgmt;
A_UINT32 type_en_ctrl;
A_UINT32 type_en_data;
A_UINT32 tlv_filter_mask_in4;
} POSTPACK;
#define HTT_TX_MONITOR_CFG_SZ (sizeof(struct htt_tx_monitor_cfg_t))
@ -7967,6 +8250,51 @@ PREPACK struct htt_tx_monitor_cfg_t {
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP_M 0x10000000
#define HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP_S 28
#define HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP_M) >> \
HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP_S)
#define HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_ADDR_FILTER_PEER_BITMAP_PPDU_DROP_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN_M 0x20000000
#define HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN_S 29
#define HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN_M) >> \
HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN_S)
#define HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TYPE_BASED_MPDU_STAT_FILTER_EN_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN_M 0x40000000
#define HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN_S 30
#define HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN_M) >> \
HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN_S)
#define HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_SPECIAL_PKT_FILTERING_EN_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN_M 0x80000000
#define HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN_S 31
#define HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN_M) >> \
HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN_S)
#define HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PKT_BUF_CNT_EN_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_M 0x0000ffff
#define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_S 0
#define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_GET(_var) \
@ -8353,6 +8681,132 @@ PREPACK struct htt_tx_monitor_cfg_t {
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_PHY_TX_PKT_END_M 0x000000ff
#define HTT_TX_MONITOR_CFG_PHY_TX_PKT_END_S 0
#define HTT_TX_MONITOR_CFG_PHY_TX_PKT_END_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_PHY_TX_PKT_END_M) >> \
HTT_TX_MONITOR_CFG_PHY_TX_PKT_END_S)
#define HTT_TX_MONITOR_CFG_PHY_TX_PKT_END_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PHY_TX_PKT_END, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PHY_TX_PKT_END_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON_M 0x0000ff00
#define HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON_S 8
#define HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON_M) >> \
HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON_S)
#define HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_MAC_TX_USER_DESC_COMMON_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP_M 0x00ff0000
#define HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP_S 16
#define HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP_M) >> \
HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP_S)
#define HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_MAC_TX_MU_UPLINK_USER_SETUP_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_PDG_RESPONSE_M 0xff000000
#define HTT_TX_MONITOR_CFG_PDG_RESPONSE_S 24
#define HTT_TX_MONITOR_CFG_PDG_RESPONSE_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_PDG_RESPONSE_M) >> \
HTT_TX_MONITOR_CFG_PDG_RESPONSE_S)
#define HTT_TX_MONITOR_CFG_PDG_RESPONSE_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PDG_RESPONSE, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PDG_RESPONSE_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO_M 0x000000ff
#define HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO_S 0
#define HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO_M) >> \
HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO_S)
#define HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RECEIVED_RESPONSE_INFO_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO_M 0x0000ff00
#define HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO_S 8
#define HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO_M) >> \
HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO_S)
#define HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RX_RESPONSE_REQUIRED_INFO_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS_M 0x00ff0000
#define HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS_S 16
#define HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS_M) >> \
HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS_S)
#define HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RANGING_USER_DETAILS_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC_M 0xff000000
#define HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC_S 24
#define HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC_M) >> \
HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC_S)
#define HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_MACTX_PRE_PHY_DESC_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS_M 0x0000ffff
#define HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS_S 0
#define HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS_M) >> \
HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS_S)
#define HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_OFDMA_TRIGGER_DETAILS_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS_M 0xffff0000
#define HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS_S 16
#define HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS_M) >> \
HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS_S)
#define HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TQM_UPDATE_TX_MPDU_COUNT_STATUS_S)); \
} while (0)
#define HTT_TX_MONITOR_CFG_PHYTX_LOCATION_M 0x0000ffff
#define HTT_TX_MONITOR_CFG_PHYTX_LOCATION_S 0
#define HTT_TX_MONITOR_CFG_PHYTX_LOCATION_GET(_var) \
(((_var) & HTT_TX_MONITOR_CFG_PHYTX_LOCATION_M) >> \
HTT_TX_MONITOR_CFG_PHYTX_LOCATION_S)
#define HTT_TX_MONITOR_CFG_PHYTX_LOCATION_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_PHYTX_LOCATION, _val); \
((_var) |= ((_val) << HTT_TX_MONITOR_CFG_PHYTX_LOCATION_S)); \
} while (0)
/*
* pkt_type_enable_flags
*/
@ -22007,14 +22461,14 @@ PREPACK struct htt_rx_peer_metadata_v1 {
*/
PREPACK struct htt_rx_peer_metadata_v1a {
A_UINT32
peer_id: 13,
ml_peer_valid: 1,
vdev_id: 8,
logical_link_id: 4,
chip_id: 3,
qdata_refill: 1,
passthru_pkt: 1,
reserved2: 1;
peer_id: 13,
ml_peer_valid: 1,
vdev_id: 8,
logical_link_id: 4,
chip_id: 3,
qdata_refill: 1,
passthru_pkt: 1,
qdata_consent_pkt: 1;
} POSTPACK;
#define HTT_RX_PEER_META_DATA_V1A_PEER_ID_S 0
@ -22094,6 +22548,17 @@ PREPACK struct htt_rx_peer_metadata_v1a {
((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_PASSTHRU_PKT_S)); \
} while (0)
#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_S 31
#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_M 0x80000000
#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_GET(_var) \
(((_var) & HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_M) >> HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_S)
#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT, _val); \
((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_S)); \
} while (0)
/**
* @brief target -> RX PEER METADATA V1B format
@ -22201,14 +22666,15 @@ PREPACK struct htt_rx_peer_metadata_v1b {
*/
PREPACK struct htt_rx_peer_metadata_v2 {
A_UINT32
peer_id: 5,
ml_peer_valid: 1,
vdev_id: 3,
logical_link_id: 3,
qdata_refill: 1,
peer_session_id: 8,
passthru_pkt: 1,
reserved: 10;
peer_id: 5,
ml_peer_valid: 1,
vdev_id: 3,
logical_link_id: 3,
qdata_refill: 1,
peer_session_id: 8,
passthru_pkt: 1,
qdata_consent_pkt: 1,
reserved: 9;
} POSTPACK;
#define HTT_RX_PEER_META_DATA_V2_PEER_ID_S 0
@ -22294,6 +22760,17 @@ PREPACK struct htt_rx_peer_metadata_v2 {
((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V2_PASSTHRU_PKT_S)); \
} while (0)
#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_S 22
#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_M 0x00400000
#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_GET(_var) \
(((_var) & HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_M) >> HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_S)
#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT, _val); \
((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_S)); \
} while (0)
/* generic variables for masks and shifts for various fields */
extern A_UINT32 HTT_RX_PEER_META_DATA_PEER_ID_S;
@ -22333,6 +22810,9 @@ extern void (*HTT_RX_PEER_META_DATA_PEER_SESSION_ID_SET) (A_UINT32 *var, A_UINT3
extern A_UINT32 (*HTT_RX_PEER_META_DATA_DECAP_TYPE_GET) (A_UINT32 var);
extern void (*HTT_RX_PEER_META_DATA_DECAP_TYPE_SET) (A_UINT32 *var, A_UINT32 val);
extern A_UINT32 (*HTT_RX_PEER_META_DATA_PASSTHRU_PKT_GET) (A_UINT32 var);
extern void (*HTT_RX_PEER_META_DATA_PASSTHRU_PKT_SET) (A_UINT32 *var, A_UINT32 val);
/*
* In some systems, the host SW wants to specify priorities between

File diff suppressed because it is too large Load diff

View file

@ -778,6 +778,85 @@ typedef enum {
WMI_SERVICE_IDLE_POWER_INDICATE_SUPPORT = 498,
/* Indicates FW support to add Radar type and domain in WMI radar event */
WMI_SERVICE_RADAR_FLAGS_TYPE_SUPPORT = 499,
/* Indicates FW support to perform Master migration when master peer gets deleted */
WMI_SERVICE_ML_PEER_MASTER_MIGRATION_SUPPORT = 500,
WMI_SERVICE_NAN_AP_ASSISTED_DFS_OPERATION_SUPPORT = 501, /* Indicates FW supports NAN DFS operation */
/*
* Indicates FW supports TDLS Stats command/event,
* used for sending TDLS connect info and TDLS data stats
*/
WMI_SERVICE_TDLS_STATS_SUPPORT = 502,
WMI_SERVICE_L3_HEADER_PADDING_ENABLE = 503,
/* Indicates FW supports Extended OUI Action IDs */
WMI_SERVICE_SUPPORTED_EXT_OUI_ACTION_IDS = 504,
/*
* Indicates FW supports cloud based control for whitelist or blacklist
* AP configuration
*/
WMI_SERVICE_SUPPORT_WHITELIST_BLACKLIST_AP_CONFIG = 505,
/*
* Indicate FW support for PASSTHRU VDEV AMPDU Aggregation
* and Rate Adaptation
*/
WMI_SERVICE_PASSTHRU_VDEV_AMPDU_RA_SUPPORT = 506,
/* FW supports CalDB transmission over WMI */
WMI_SERVICE_CALDB_OVER_WMI = 507,
/* Indicates FW Supports RTT Proximity Detection (USD ranging) */
WMI_SERVICE_RTT_PD = 508,
/* Indicates FW support for Channel Hopping Status Report*/
WMI_SERVICE_VDEV_CHAN_HOP_STATUS_REPORT = 509,
/* Indicates FW support for Predictive roaming */
WMI_SERVICE_ROAMING_PREDICTIVE = 510,
/* Services related to MAPC / C-TDMA (802.11bn) */
WMI_SERVICE_CO_AP_CTDMA_SUPPORT = 511,
WMI_SERVICE_UHR_CO_AP_CTDMA_TB_PPDU_SUPPORT = 512,
WMI_SERVICE_UHR_CO_AP_CTDMA_TXOP_RETURN_SUPPORT = 513,
/*
* Indicates FW supports cloud based control for Uplink Tx Beamformer
* AP configuration
*/
WMI_SERVICE_SUPPORT_UL_TX_BEAMFORMER_AP_CONFIG = 514,
/* Indicates FW supports enable/disable TWT per vdev */
WMI_SERVICE_STA_TWT_EN_DIS_VDEV_SUPPORT = 515,
/*
* Indicates FW supports AWGN interference status request via
* WMI_PDEV_PARAM_AWGN_INT_STATUS_REQUEST, allowing host to query
* the current AWGN CCA segment bitmap (awgn_prev_int_seg) which
* is sent back immediately via WMI_DCS_INTERFERENCE_EVENTID.
*/
WMI_SERVICE_AWGN_INT_STATUS_REQUEST_SUPPORT = 516,
WMI_SERVICE_WMI_ANOMALY_REPORTING = 517,
/*
* Indicates that FW supports C-TAS power indication reporting and
* power limit enquiring through cmds WMI_SET_MODIFY_TX_PLIM_CMDID,
* WMI_GET_AVG_TX_POWER_CMDID and WMI_GET_TX_POWER_CALLING_CMDID.
*/
WMI_SERVICE_CTAS_PLIM_INDICATION_SUPPORT = 518,
/*
* Indicates FW supports NAN in offload mode
* (supplicant-based NAN offload mode architecture).
*/
WMI_SERVICE_NAN_OFFLOAD_MODE_SUPPORT = 519,
/* WMI_SERVICE_PDEV_SET_CUMAC_CHIP_CMD_SUPPORT:
* FW supports handling WMI_PDEV_SET_CUMAC_CHIP_CMDID.
* When this service bit is set in wmi_service_ready, the host can
* set WMI_RSRC_CFG_HOST_SERVICE_FLAG_CUMAC_CMD_SUPPORT in
* wmi_resource_config.host_service_flags to indicate it will send
* WMI_PDEV_SET_CUMAC_CHIP_CMDID to trigger wal_mlo_cumac_init().
* If the host does not set this flag, FW will call wal_mlo_cumac_init()
* from wal_mlo_soc_init() with the default chip id.
*/
WMI_SERVICE_PDEV_SET_CUMAC_CHIP_CMD_SUPPORT = 520,
WMI_MAX_EXT2_SERVICE

View file

@ -1613,6 +1613,51 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_set_cumac_chip_id_confirmation_event_fixed_param,
WMITLV_TAG_STRUC_wmi_iface_ipi_stats,
WMITLV_TAG_STRUC_wmi_peer_uhr_npca_op_params,
WMITLV_TAG_STRUC_wmi_ndp_channel_info_event_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_uhr_omp_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_uhr_omp_npca_params,
WMITLV_TAG_STRUC_wmi_nan_dfs_channel_availability_ind_event_fixed_param,
WMITLV_TAG_STRUC_wmi_request_tdls_stats_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_tdls_stats_event_fixed_param,
WMITLV_TAG_STRUC_wmi_tdls_connect_info_stats,
WMITLV_TAG_STRUC_wmi_tdls_data_stats,
WMITLV_TAG_STRUC_wmi_get_chipset_logging_stats_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_get_chipset_logging_stats_event_fixed_param,
WMITLV_TAG_STRUC_wmi_anomaly_report_hdr,
WMITLV_TAG_STRUC_wmi_anomaly_entry_t,
WMITLV_TAG_STRUC_wmi_peer_uhr_omp_sta_dps_params,
WMITLV_TAG_STRUC_wmi_rtt_peer_meas_capabilities,
WMITLV_TAG_STRUC_wmi_rtt_peer_meas_req_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_rtt_peer_meas_req_peer_info,
WMITLV_TAG_STRUC_wmi_rtt_peer_meas_cancel_meas_cmd_fix_param,
WMITLV_TAG_STRUC_wmi_rtt_peer_meas_report_event_fixed_param,
WMITLV_TAG_STRUC_wmi_rtt_peer_meas_report_peer_meas_result_info,
WMITLV_TAG_STRUC_wmi_vdev_get_chan_hop_status_report_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_vdev_chan_hop_slot_status,
WMITLV_TAG_STRUC_wmi_vdev_chan_hop_status_report_event_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_set_mapc_params_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_mapc_cmn_params,
WMITLV_TAG_STRUC_wmi_mapc_cotdma_params,
WMITLV_TAG_STRUC_wmi_mapc_cosr_params,
WMITLV_TAG_STRUC_wmi_mapc_cobf_params,
WMITLV_TAG_STRUC_wmi_mapc_cortwt_params,
WMITLV_TAG_STRUC_wmi_lpi_scan_result_ind_fixed_param,
WMITLV_TAG_STRUC_wmi_lpi_ap_info_t,
WMITLV_TAG_STRUC_wmi_nan_disc_service_rsp_event_fixed_param,
WMITLV_TAG_STRUC_wmi_nan_disc_match_event_fixed_param,
WMITLV_TAG_STRUC_wmi_nan_disc_service_req_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_nan_disc_cancel_service_req_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_nan_disc_service_req_terminated_event_fixed_param,
WMITLV_TAG_STRUC_wmi_set_modify_tx_plim_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_get_avg_tx_power_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_get_tx_power_calling_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_modify_tx_plim_event_fixed_param,
WMITLV_TAG_STRUC_wmi_avg_tx_power_event_fixed_param,
WMITLV_TAG_STRUC_wmi_avg_tx_power_region_per_antenna_chain,
WMITLV_TAG_STRUC_wmi_plimit_table_event_fixed_param,
WMITLV_TAG_STRUC_wmi_tx_power_per_antenna_chain,
WMITLV_TAG_STRUC_wmi_athdiag_read_write_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_athdiag_read_write_event_fixed_param,
} WMITLV_TAG_ID;
/*
* IMPORTANT: Please add _ALL_ WMI Commands Here.
@ -2217,6 +2262,19 @@ typedef enum {
OP(WMI_TWT_ADD_CH_USAGE_CMDID) \
OP(WMI_COEX_GET_POLICY_STATS_CMDID) \
OP(WMI_PDEV_SET_CUMAC_CHIP_CMDID) \
OP(WMI_PEER_UHR_OMP_CMDID) \
OP(WMI_REQUEST_TDLS_STATS_CMDID) \
OP(WMI_GET_CHIPSET_LOGGING_STATS_CMDID) \
OP(WMI_RTT_PEER_MEAS_REQ_CMDID) \
OP(WMI_RTT_PEER_MEAS_CANCEL_CMDID) \
OP(WMI_VDEV_GET_CHAN_HOP_STATUS_REPORT_CMDID) \
OP(WMI_PEER_SET_MAPC_PARAMS_CMDID) \
OP(WMI_NAN_DISC_SERVICE_REQ_CMDID) \
OP(WMI_NAN_DISC_CANCEL_SERVICE_REQ_CMDID) \
OP(WMI_SET_MODIFY_TX_PLIM_CMDID) \
OP(WMI_GET_AVG_TX_POWER_CMDID) \
OP(WMI_GET_TX_POWER_CALLING_CMDID) \
OP(WMI_ATHDIAG_READ_WRITE_CMDID) \
/* add new CMD_LIST elements above this line */
@ -2580,6 +2638,21 @@ typedef enum {
OP(WMI_VDEV_CURRENT_OPERATING_PARAM_EVENTID) \
OP(WMI_COEX_GET_POLICY_STATS_EVENTID) \
OP(WMI_PDEV_SET_CUMAC_CHIP_ID_CONFIRMATION_EVENTID) \
OP(WMI_NDP_CHANNEL_INFO_EVENTID) \
OP(WMI_NAN_DFS_CHANNEL_AVAILABILITY_IND_EVENTID) \
OP(WMI_TDLS_STATS_EVENTID) \
OP(WMI_GET_CHIPSET_LOGGING_STATS_EVENTID) \
OP(WMI_ANOMALY_REPORT_EVENTID) \
OP(WMI_RTT_PEER_MEAS_REPORT_EVENTID) \
OP(WMI_VDEV_CHAN_HOP_STATUS_REPORT_EVENTID) \
OP(WMI_LPI_SCAN_RESULT_EVENTID_V2) \
OP(WMI_NAN_DISC_SERVICE_RSP_EVENTID) \
OP(WMI_NAN_DISC_MATCH_EVENTID) \
OP(WMI_NAN_DISC_SERVICE_REQ_TERMINATED_EVENTID) \
OP(WMI_MODIFY_TX_PLIM_EVENTID) \
OP(WMI_AVG_TX_POWER_EVENTID) \
OP(WMI_PLIMIT_TABLE_EVENTID) \
OP(WMI_ATHDIAG_READ_WRITE_EVENTID) \
/* add new EVT_LIST elements above this line */
@ -2993,8 +3066,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WMM_PARAMS_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_smd_params, smd_params, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_uhr_config, uhr_config, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_smd_params, smd_params, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_uhr_config, uhr_config, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_uhr_ap_npca_params, npca_params, WMITLV_SIZE_VAR)
/* NOTE:
* Any new TLV addition in WMI_VDEV_START_REQUEST_CMDID needs to be included as
* TLV in WMI_VDEV_UNIFIED_CONNECT_CMDID as well to maintain compatibility.
@ -3184,6 +3258,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID);
*/
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_V2_CMDID);
#define WMITLV_TABLE_WMI_PEER_UHR_OMP_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_uhr_omp_cmd_fixed_param, wmi_peer_uhr_omp_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_uhr_omp_npca_params, peer_omp_npca_params, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_uhr_omp_sta_dps_params, peer_omp_dps_params, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_UHR_OMP_CMDID);
/* Peer Set Rate Report Condition Cmd */
#define WMITLV_TABLE_WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_set_rate_report_condition_fixed_param, wmi_peer_set_rate_report_condition_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -3404,6 +3484,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_UNIFIED_LL_GET_STA_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_WLM_STATS_CMDID);
/* Get chipset debug log stats Cmd */
#define WMITLV_TABLE_WMI_GET_CHIPSET_LOGGING_STATS_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_chipset_logging_stats_cmd_fixed_param, wmi_get_chipset_logging_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_GET_CHIPSET_LOGGING_STATS_CMDID);
/* Network list offload config Cmd */
#define WMITLV_TABLE_WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param, wmi_nlo_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@ -4373,15 +4459,22 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_PREAUTH_START_EVENTID);
WMITLV_CREATE_PARAM_STRUC(WMI_LPI_RESULT_EVENTID);
/* LPI Status Event */
#define WMITLV_TABLE_WMI_LPI_STATUS_EVENTID(id,op,buf,len) \
#define WMITLV_TABLE_WMI_LPI_STATUS_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_status_event_fixed_param, wmi_lpi_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_LPI_STATUS_EVENTID);
/* LPI Handoff Event */
#define WMITLV_TABLE_WMI_LPI_HANDOFF_EVENTID(id,op,buf,len) \
#define WMITLV_TABLE_WMI_LPI_HANDOFF_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_handoff_event_fixed_param, wmi_lpi_handoff_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_LPI_HANDOFF_EVENTID);
/* LPI Scan Result Indication Event */
#define WMITLV_TABLE_WMI_LPI_SCAN_RESULT_EVENTID_V2(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_scan_result_ind_fixed_param, wmi_lpi_scan_result_ind_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, freq_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_lpi_ap_info_t, ap_array, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_LPI_SCAN_RESULT_EVENTID_V2);
/* Thermal Manager Params*/
#define WMITLV_TABLE_WMI_THERMAL_MGMT_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_thermal_mgmt_cmd_fixed_param, wmi_thermal_mgmt_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -4423,7 +4516,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_ENABLE_CMDID);
#define WMITLV_TABLE_WMI_NAN_CONFIG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_config_cmd_fixed_param, wmi_nan_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_nan_ctrl_config_param, nan_ctrl_config, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_nan_disc_band_config_param, nan_disc_band_config, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_nan_disc_band_config_param, nan_disc_band_config, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, nan_availability_attributes_data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CONFIG_CMDID);
/* NAN Disable Command */
@ -4451,6 +4545,92 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_PEER_SCHEDULE_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_caps_ie_data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_PEER_PARAMS_CMDID);
/**
* NAN Discovery Service Request Command
* (NL80211_CMD_ADD_NAN_FUNCTION equivalent)
*
* Carries all parameters needed to register a NAN Publish, Subscribe, or
* Follow-up function with the firmware in offload mode.
*
* TLV layout (in order):
*
* [0] wmi_nan_disc_service_req_cmd_fixed_param fixed_param
* All fixed scalar fields: vdev_id, service_req_type, instance_id, ttl,
* publish_type, followup_instance_id, followup_requestor_id,
* followup_dest, sdea_ctrl, pairing_bootstrap_methods, srf_bf_idx,
* srf_include, service_req_flags, and all _len / _num count fields.
*
* [1] A_UINT8 service_id[]
* 6-byte NAN Service ID (SHA-256 of service name, first 6 bytes),
* zero-padded to 8 bytes for 4-byte WMI alignment.
* Maps to: NL80211_ATTR_NAN_FUNC_SERVICE_ID / cfg80211_nan_func.service_id
*
* [2] A_UINT8 serv_spec_info[]
* Service Specific Info — opaque application payload, max 255 bytes.
* Valid byte count given by fixed_param.serv_spec_info_len.
* Maps to: NL80211_ATTR_NAN_FUNC_SERVICE_INFO /
* cfg80211_nan_func.serv_spec_info
*
* [3] A_UINT8 srf_bf[]
* SRF (Service Range Filter) Bloom filter data.
* Valid byte count given by fixed_param.srf_bf_len.
* Maps to: NL80211_ATTR_NAN_FUNC_SRF_BF / cfg80211_nan_func.srf_bf
*
* [4] wmi_mac_addr srf_macs[]
* SRF MAC address filter list (WMITLV_TAG_ARRAY_FIXED_STRUC).
* Entry count given by fixed_param.num_srf_macs.
* Maps to: NL80211_ATTR_NAN_FUNC_SRF_MAC_ADDRS /
* cfg80211_nan_func.srf_macs
*
* [5] A_UINT8 rx_match_filter[]
* RX match filter byte stream (ieee80211 protocol order).
* Valid byte count given by fixed_param.rx_match_filter_len.
* Maps to: NL80211_ATTR_NAN_FUNC_RX_MATCH_FILTER /
* cfg80211_nan_func.rx_filters
*
* [6] A_UINT8 tx_match_filter[]
* TX match filter byte stream (ieee80211 protocol order).
* Valid byte count given by fixed_param.tx_match_filter_len.
* Maps to: NL80211_ATTR_NAN_FUNC_TX_MATCH_FILTER /
* cfg80211_nan_func.tx_filters
*
* [7] A_UINT32 cipher_suites[]
* Array of supported NAN cipher suite IDs (CSIDs).
* Entry count given by fixed_param.num_cipher_suites.
* Maps to: NL80211_ATTR_NAN_FUNC_CIPHER_SUITES /
* cfg80211_nan_func.cipher_suites
*
* [8] A_UINT8 nd_pmk[]
* NAN Data Path PMK, exactly 32 bytes when present.
* Present and valid only when
* WMI_NAN_DISC_SERVICE_REQ_FLAGS_GET_ND_PMK_VALID(
* fixed_param.service_req_flags) == 1;
* zero-length TLV otherwise.
* Maps to: NL80211_ATTR_NAN_FUNC_ND_PMK / cfg80211_nan_func.nd_pmk
*/
#define WMITLV_TABLE_WMI_NAN_DISC_SERVICE_REQ_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_service_req_cmd_fixed_param, wmi_nan_disc_service_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, service_id, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, serv_spec_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, srf_bf, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, srf_macs, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, rx_match_filter, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, tx_match_filter, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, cipher_suites, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, nd_pmk, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, extra_nan_attrs, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DISC_SERVICE_REQ_CMDID);
/** NAN Discovery Delete Function Cmd
*
* TLV (tag length value) parameters follow the
* wmi_nan_disc_cancel_service_req_cmd_fixed_param structure. The TLV's are:
* wmi_nan_disc_cancel_service_req_cmd_fixed_param fixed_param;
*/
#define WMITLV_TABLE_WMI_NAN_DISC_CANCEL_SERVICE_REQ_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_cancel_service_req_cmd_fixed_param, wmi_nan_disc_cancel_service_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DISC_CANCEL_SERVICE_REQ_CMDID);
/* NAN Data Get Capabilities Cmd */
#define WMITLV_TABLE_WMI_NDI_GET_CAP_REQ_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndi_get_cap_req_fixed_param, wmi_ndi_get_cap_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX)
@ -4924,7 +5104,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_BPF_GET_VDEV_WORK_MEMORY_CMDID);
/* Enable/Disable Smart Antenna */
#define WMITLV_TABLE_WMI_PDEV_SMART_ANT_ENABLE_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param, wmi_pdev_smart_ant_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_smart_ant_gpio_handle, gpio_handle, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_smart_ant_gpio_handle, gpio_handle, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, pdev_smart_ant_param, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SMART_ANT_ENABLE_CMDID);
/* Set Smart Antenna RX antenna */
@ -5228,6 +5409,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_CTRL_PATH_STATS_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, mac_addr_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID);
/* Request TDLS Stats cmd enabling the monitoring of TDLS stats */
#define WMITLV_TABLE_WMI_REQUEST_TDLS_STATS_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_tdls_stats_cmd_fixed_param, wmi_request_tdls_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_TDLS_STATS_CMDID);
/* Host sets the current country code */
#define WMITLV_TABLE_WMI_SET_CURRENT_COUNTRY_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param, wmi_set_current_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -5280,7 +5466,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_tx_stream_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_rx_stream_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_uhr_ap_npca_params, npca_params, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID);
#define WMITLV_TABLE_WMI_PDEV_UPDATE_PKT_ROUTING_CMDID(id,op,buf,len) \
@ -6189,6 +6376,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_POWER_BOOST_MEM_ADDR_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_scan_cache_result_cmd_fixed_param, wmi_get_scan_cache_result_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_GET_SCAN_CACHE_RESULT_CMDID);
#define WMITLV_TABLE_WMI_SET_MODIFY_TX_PLIM_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_modify_tx_plim_cmd_fixed_param, wmi_set_modify_tx_plim_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SET_MODIFY_TX_PLIM_CMDID);
#define WMITLV_TABLE_WMI_GET_AVG_TX_POWER_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_avg_tx_power_cmd_fixed_param, wmi_get_avg_tx_power_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_GET_AVG_TX_POWER_CMDID);
#define WMITLV_TABLE_WMI_GET_TX_POWER_CALLING_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_tx_power_calling_cmd_fixed_param, wmi_get_tx_power_calling_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_GET_TX_POWER_CALLING_CMDID);
#define WMITLV_TABLE_WMI_SAWF_EZMESH_HOP_COUNT_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sawf_ezmesh_hop_count_cmd_fixed_param, wmi_sawf_ezmesh_hop_count_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SAWF_EZMESH_HOP_COUNT_CMDID);
@ -6413,6 +6612,21 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SMD_ROAM_PEER_UNIFIED_SETUP_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_smd_roam_peer_tid_info, smd_roam_peer_tid_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_SMD_ROAM_CONFIG_CMDID);
/* WMI commad to config MAPC params used for co-ordinated AP features in 11bn */
#define WMITLV_TABLE_WMI_PEER_SET_MAPC_PARAMS_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_set_mapc_params_cmd_fixed_param, wmi_peer_set_mapc_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
/*--- Common MAPC params ---*/ \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mapc_cmn_params, mapc_cmn_params, WMITLV_SIZE_VAR) \
/*--- Co-TDMA scheme params ---*/ \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mapc_cotdma_params, cotdma_params, WMITLV_SIZE_VAR) \
/*--- Co-SR scheme params (future) ---*/ \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mapc_cosr_params, cosr_params, WMITLV_SIZE_VAR) \
/*--- Co-BF scheme params (future) ---*/ \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mapc_cobf_params, cobf_params, WMITLV_SIZE_VAR) \
/*--- Co-rTWT scheme params (future) ---*/ \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mapc_cortwt_params, cortwt_params, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_MAPC_PARAMS_CMDID);
/* WMI Command for Energy management OEM cmd data */
#define WMITLV_TABLE_WMI_ENERGY_MGMT_OEM_DATA_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_oem_data_fixed_param, wmi_energy_mgmt_oem_data_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@ -6440,6 +6654,30 @@ WMITLV_CREATE_PARAM_STRUC(WMI_COEX_GET_POLICY_STATS_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_cumac_chip_id_cmd_fixed_param, wmi_pdev_set_cumac_chip_id_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_CUMAC_CHIP_CMDID);
/* RTT Peer measurement start request */
#define WMITLV_TABLE_WMI_RTT_PEER_MEAS_REQ_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rtt_peer_meas_req_cmd_fixed_param, wmi_rtt_peer_meas_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rtt_peer_meas_req_peer_info, peer_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_RTT_PEER_MEAS_REQ_CMDID);
/* RTT Peer measurement cancel request */
#define WMITLV_TABLE_WMI_RTT_PEER_MEAS_CANCEL_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rtt_peer_meas_cancel_meas_cmd_fix_param, wmi_rtt_peer_meas_cancel_meas_cmd_fix_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_RTT_PEER_MEAS_CANCEL_CMDID);
#define WMITLV_TABLE_WMI_VDEV_GET_CHAN_HOP_STATUS_REPORT_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_chan_hop_status_report_cmd_fixed_param, wmi_vdev_get_chan_hop_status_report_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_CHAN_HOP_STATUS_REPORT_CMDID);
/* Athdiag read/write command: fixed_param + optional write data TLV */
#define WMITLV_TABLE_WMI_ATHDIAG_READ_WRITE_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, \
WMITLV_TAG_STRUC_wmi_athdiag_read_write_cmd_fixed_param, \
wmi_athdiag_read_write_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id, op, buf, len, \
WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ATHDIAG_READ_WRITE_CMDID);
/************************** TLV definitions of WMI events *******************************/
@ -6505,7 +6743,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wifi_radar_ltf_length_capabilities, wr_ltf_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wifi_radar_chain_capabilities, wr_chain_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CAPABILITIES_EXT2, mac_phy_caps2, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_shared_mem_model_tbtt_count_down_config, shared_mem_model_tbtt_count_down_config, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_shared_mem_model_tbtt_count_down_config, shared_mem_model_tbtt_count_down_config, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rtt_peer_meas_capabilities, rtt_peer_meas_caps, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT2_EVENTID);
#define WMITLV_TABLE_WMI_SPECTRAL_CAPABILITIES_EVENTID(id,op,buf,len) \
@ -7358,6 +7597,52 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_JOINED_CLUSTER_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_enable_rsp_event_fixed_param, wmi_nan_enable_rsp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_ENABLE_RSP_EVENTID);
/** NAN Discovery Service Response Event
*
* TLV (tag length value) parameters follow the
* wmi_nan_disc_service_rsp_event_fixed_param structure. The TLV's are:
* wmi_nan_disc_service_rsp_event_fixed_param fixed_param;
*/
#define WMITLV_TABLE_WMI_NAN_DISC_SERVICE_RSP_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_service_rsp_event_fixed_param, wmi_nan_disc_service_rsp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DISC_SERVICE_RSP_EVENTID);
/** NAN Discovery Match Event (NL80211_CMD_NAN_MATCH equivalent)
*
* Unified event covering subscriber match, publisher replied, and follow-up
* received scenarios, discriminated by the type field in fixed_param.
*
* TLV (tag length value) parameters follow the
* wmi_nan_disc_match_event_fixed_param structure. The TLV's are:
* wmi_mac_addr peer_addr[];
* A_UINT8 service_id[];
* A_UINT8 serv_spec_info[];
* A_UINT32 cipher_suites[];
* A_UINT8 scid[];
* A_UINT8 extra_info[];
* A_UINT8 ies[];
*/
#define WMITLV_TABLE_WMI_NAN_DISC_MATCH_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_match_event_fixed_param, wmi_nan_disc_match_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, peer_addr, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, service_id, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, serv_spec_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, cipher_suites, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, scid, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, extra_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ies, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DISC_MATCH_EVENTID);
/** NAN Discovery Service Request Terminated Event
*
* TLV (tag length value) parameters follow the
* wmi_nan_disc_service_req_terminated_event_fixed_param structure. The TLV's are:
* wmi_nan_disc_service_req_terminated_event_fixed_param fixed_param;
*/
#define WMITLV_TABLE_WMI_NAN_DISC_SERVICE_REQ_TERMINATED_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_service_req_terminated_event_fixed_param, wmi_nan_disc_service_req_terminated_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DISC_SERVICE_REQ_TERMINATED_EVENTID);
/* NAN Next DW Info Event */
#define WMITLV_TABLE_WMI_NAN_NEXT_DW_INFO_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_next_dw_info_fixed_param, wmi_nan_next_dw_info_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -7388,6 +7673,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_PEER_SCHEDULE_CNF_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_peer_params_cnf_event_fixed_param, wmi_nan_peer_params_cnf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_PEER_PARAMS_CNF_EVENTID);
/* NDP Channel Info Event */
#define WMITLV_TABLE_WMI_NDP_CHANNEL_INFO_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_channel_info_event_fixed_param, wmi_ndp_channel_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, channel_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, nss_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_channel_info, channel_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CHANNEL_INFO_EVENTID);
/* Coex report antenna isolation event */
#define WMITLV_TABLE_WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param, wmi_coex_report_isolation_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@ -8126,6 +8419,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HALPHY_CTRL_PATH_STATS_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_radio_chan_stats, radio_chan_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_CHAN_STATS_EVENTID);
#define WMITLV_TABLE_WMI_TDLS_STATS_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_stats_event_fixed_param, wmi_tdls_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tdls_connect_info_stats, tdls_connect_info_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tdls_data_stats, tdls_data_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_TDLS_STATS_EVENTID);
#define WMITLV_TABLE_WMI_PKGID_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pkgid_event_fixed_param, wmi_pkgid_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PKGID_EVENTID);
@ -8718,12 +9017,36 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_POWER_BOOST_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_cache_info, scan_cache_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_CACHE_RESULT_EVENTID);
#define WMITLV_TABLE_WMI_MODIFY_TX_PLIM_EVENTID(id, op , buf, len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_modify_tx_plim_event_fixed_param, wmi_modify_tx_plim_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MODIFY_TX_PLIM_EVENTID);
#define WMITLV_TABLE_WMI_AVG_TX_POWER_EVENTID(id, op , buf, len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_avg_tx_power_event_fixed_param, wmi_avg_tx_power_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_avg_tx_power_region_per_antenna_chain, avg_tx_power_region_per_antenna_chain, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_AVG_TX_POWER_EVENTID);
#define WMITLV_TABLE_WMI_PLIMIT_TABLE_EVENTID(id, op , buf, len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_plimit_table_event_fixed_param, wmi_plimit_table_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tx_power_per_antenna_chain, tx_power_per_antenna_chain, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PLIMIT_TABLE_EVENTID);
/* pdev per-vdev queue depth report event */
#define WMITLV_TABLE_WMI_PDEV_MULTI_VDEV_AC_QUEUE_DEPTH_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param, wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_ac_info, vdev_ac_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTI_VDEV_AC_QUEUE_DEPTH_EVENTID);
/* WMI Anomaly Report Event */
#define WMITLV_TABLE_WMI_ANOMALY_REPORT_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, \
WMITLV_TAG_STRUC_wmi_anomaly_report_hdr, \
wmi_anomaly_report_hdr, hdr, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, \
WMITLV_TAG_ARRAY_STRUC, \
wmi_anomaly_entry_t, entries, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ANOMALY_REPORT_EVENTID);
#define WMITLV_TABLE_WMI_PDEV_SET_TX_CHAINMASK_COMP_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_tx_chainmask_comp_event_fixed_param, wmi_pdev_set_tx_chainmask_comp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_TX_CHAINMASK_COMP_EVENTID);
@ -8814,6 +9137,37 @@ WMITLV_CREATE_PARAM_STRUC(WMI_COEX_GET_POLICY_STATS_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_cumac_chip_id_confirmation_event_fixed_param, wmi_pdev_set_cumac_chip_id_confirmation_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_CUMAC_CHIP_ID_CONFIRMATION_EVENTID);
/* NAN DFS Channel Availability Indication Event */
#define WMITLV_TABLE_WMI_NAN_DFS_CHANNEL_AVAILABILITY_IND_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_dfs_channel_availability_ind_event_fixed_param, wmi_nan_dfs_channel_availability_ind_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DFS_CHANNEL_AVAILABILITY_IND_EVENTID);
/* Chipset debug log stats event */
#define WMITLV_TABLE_WMI_GET_CHIPSET_LOGGING_STATS_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_chipset_logging_stats_event_fixed_param, wmi_get_chipset_logging_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_GET_CHIPSET_LOGGING_STATS_EVENTID);
/* RTT Peer measurement report event */
#define WMITLV_TABLE_WMI_RTT_PEER_MEAS_REPORT_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rtt_peer_meas_report_event_fixed_param, wmi_rtt_peer_meas_report_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rtt_peer_meas_report_peer_meas_result_info, peer_meas_result_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_RTT_PEER_MEAS_REPORT_EVENTID);
#define WMITLV_TABLE_WMI_VDEV_CHAN_HOP_STATUS_REPORT_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_chan_hop_status_report_event_fixed_param, wmi_vdev_chan_hop_status_report_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_chan_hop_slot_status, slot_status, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_CHAN_HOP_STATUS_REPORT_EVENTID);
/* Athdiag read/write event: fixed_param + optional read data TLV */
#define WMITLV_TABLE_WMI_ATHDIAG_READ_WRITE_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, \
WMITLV_TAG_STRUC_wmi_athdiag_read_write_event_fixed_param, \
wmi_athdiag_read_write_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id, op, buf, len, \
WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ATHDIAG_READ_WRITE_EVENTID);
#ifdef __cplusplus
}

File diff suppressed because it is too large Load diff

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_ 1740
#define __WMI_REVISION_ 1781
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work