Merge b9736f2024
on remote branch
Change-Id: Ieac36f04437394214eb963fddf1bfcb90e18de53
This commit is contained in:
commit
d5e4529e8b
145
fw/htt.h
145
fw/htt.h
@ -249,9 +249,11 @@
|
||||
* 3.121 Add HTT_T2H_MSG_TYPE_PEER_AST_OVERRIDE_INDEX_IND def.
|
||||
* 3.122 Add is_umac_hang flag in H2T UMAC_HANG_RECOVERY_SOC_START_PRE_RESET msg
|
||||
* 3.123 Add HTT_OPTION_TLV_TCL_METADATA_V21 def.
|
||||
* 3.124 Add HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT def.
|
||||
* 3.125 Expand fisa_aggr_limit bits in fisa_control_bits_v2.
|
||||
*/
|
||||
#define HTT_CURRENT_VERSION_MAJOR 3
|
||||
#define HTT_CURRENT_VERSION_MINOR 123
|
||||
#define HTT_CURRENT_VERSION_MINOR 125
|
||||
|
||||
#define HTT_NUM_TX_FRAG_DESC 1024
|
||||
|
||||
@ -803,6 +805,8 @@ typedef enum {
|
||||
HTT_STATS_MLO_UMAC_SSR_HANDSHAKE_TAG = 185, /* htt_mlo_umac_htt_handshake_stats_tlv */
|
||||
HTT_STATS_MLO_UMAC_SSR_MLO_TAG = 186, /* htt_mlo_umac_ssr_mlo_stats_tlv */
|
||||
HTT_STATS_PDEV_TDMA_TAG = 187, /* htt_pdev_tdma_stats_tlv */
|
||||
HTT_STATS_CODEL_SVC_CLASS_TAG = 188, /* htt_codel_svc_class_stats_tlv */
|
||||
HTT_STATS_CODEL_MSDUQ_TAG = 189, /* htt_codel_msduq_stats_tlv */
|
||||
|
||||
|
||||
HTT_STATS_MAX_TAG,
|
||||
@ -8618,8 +8622,8 @@ PREPACK struct htt_h2t_msg_type_fisa_config_t {
|
||||
} fisa_control_bits;
|
||||
struct {
|
||||
A_UINT32 fisa_enable: 1,
|
||||
fisa_aggr_limit: 4,
|
||||
reserved: 27;
|
||||
fisa_aggr_limit: 6,
|
||||
reserved: 25;
|
||||
} fisa_control_bits_v2;
|
||||
|
||||
A_UINT32 fisa_control_value;
|
||||
@ -8839,7 +8843,7 @@ PREPACK struct htt_h2t_msg_type_fisa_config_t {
|
||||
} while (0)
|
||||
|
||||
/* Dword 1: fisa_control_value fisa_aggr_limit */
|
||||
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_M 0x0000001e
|
||||
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_M 0x0000007e
|
||||
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_S 1
|
||||
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_GET(_var) \
|
||||
(((_var) & HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_M) >> \
|
||||
@ -10774,11 +10778,12 @@ enum htt_t2h_msg_type {
|
||||
HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN = 0x31,
|
||||
HTT_T2H_MSG_TYPE_RX_DELBA_EXTN = 0x32,
|
||||
HTT_T2H_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP_DONE = 0x33,
|
||||
HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND = 0x34,
|
||||
HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND = 0x34, /* DEPRECATED */
|
||||
HTT_T2H_MSG_TYPE_RX_DATA_IND = 0x35,
|
||||
HTT_T2H_MSG_TYPE_SOFT_UMAC_TX_COMPL_IND = 0x36,
|
||||
HTT_T2H_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND = 0x37,
|
||||
HTT_T2H_MSG_TYPE_PEER_AST_OVERRIDE_INDEX_IND = 0x38,
|
||||
HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT = 0x39,
|
||||
|
||||
|
||||
HTT_T2H_MSG_TYPE_TEST,
|
||||
@ -14042,6 +14047,132 @@ typedef enum {
|
||||
#define HTT_RX_MLO_PEER_UNMAP_MLO_PEER_ID_SET HTT_RX_MLO_PEER_MAP_MLO_PEER_ID_SET
|
||||
#define HTT_RX_MLO_PEER_UNMAP_MLO_PEER_ID_GET HTT_RX_MLO_PEER_MAP_MLO_PEER_ID_GET
|
||||
|
||||
/**
|
||||
* @brief target -> host peer extended event for additional information
|
||||
*
|
||||
* MSG_TYPE => HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT
|
||||
*
|
||||
* @details
|
||||
* The following diagram shows the format of the peer extended message sent
|
||||
* from the target to the host. This layout assumes the target operates
|
||||
* as little-endian.
|
||||
*
|
||||
* This message always contains a SW peer ID. The main purpose of the
|
||||
* SW peer ID is to tell the host what peer ID logical link id will be tagged
|
||||
* with, so that the host can use that peer ID to determine which link
|
||||
* transmitted the rx/tx frame.
|
||||
*
|
||||
* This message also contains MLO logical link id assigned to peer
|
||||
* with sw_peer_id if it is valid ML link peer.
|
||||
*
|
||||
*
|
||||
* |31 28|27 24|23 20|19|18 16|15 8|7 0|
|
||||
* |---------------------------------------------------------------------------|
|
||||
* | VDEV_ID | SW peer ID | msg type |
|
||||
* |---------------------------------------------------------------------------|
|
||||
* | MAC addr 3 | MAC addr 2 | MAC addr 1 | MAC addr 0 |
|
||||
* |---------------------------------------------------------------------------|
|
||||
* | Reserved |V | LINK ID | MAC addr 5 | MAC addr 4 |
|
||||
* |---------------------------------------------------------------------------|
|
||||
* | Reserved |
|
||||
* |---------------------------------------------------------------------------|
|
||||
* | Reserved |
|
||||
* |---------------------------------------------------------------------------|
|
||||
*
|
||||
* Where:
|
||||
* LINK_ID (LOGICAL) - 3 Bits Bit16,17,18 of 3rd byte
|
||||
* V (valid) - 1 Bit Bit19 of 3rd byte
|
||||
*
|
||||
* The following field definitions describe the format of the rx peer extended
|
||||
* event messages sent from the target to the host.
|
||||
* MSG_TYPE
|
||||
* Bits 7:0
|
||||
* Purpose: identifies this as an rx MLO peer extended information message
|
||||
* Value: 0x39 (HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT)
|
||||
* - PEER_ID (a.k.a. SW_PEER_ID)
|
||||
* Bits 8:23
|
||||
* Purpose: The peer ID (index) that WAL has allocated
|
||||
* Value: (rx) peer ID
|
||||
* - VDEV_ID
|
||||
* Bits 24:31
|
||||
* Purpose: Gives the vdev id of peer with peer_id as above.
|
||||
* Value: VDEV ID of wal_peer
|
||||
*
|
||||
* - MAC_ADDR_L32
|
||||
* Bits 31:0
|
||||
* Purpose: Identifies which peer node the peer ID is for.
|
||||
* Value: lower 4 bytes of peer node's MAC address
|
||||
*
|
||||
* - MAC_ADDR_U16
|
||||
* Bits 15:0
|
||||
* Purpose: Identifies which peer node the peer ID is for.
|
||||
* Value: upper 2 bytes of peer node's MAC address
|
||||
* Rest all bits are reserved for future expansion
|
||||
* - LOGICAL_LINK_ID
|
||||
* Bits 18:16
|
||||
* Purpose: Gives the logical link id of peer with peer_id as above. This
|
||||
* field should be taken alongwith LOGICAL_LINK_ID_VALID
|
||||
* Value: Logical link id used by wal_peer
|
||||
* - LOGICAL_LINK_ID_VALID
|
||||
* Bit 19
|
||||
* Purpose: Clarifies whether the logical link id of peer with peer_id as
|
||||
* is valid or not
|
||||
* Value: 0/1 indicating LOGICAL_LINK_ID is valid or not
|
||||
*/
|
||||
#define HTT_RX_PEER_EXTENDED_PEER_ID_M 0x00ffff00
|
||||
#define HTT_RX_PEER_EXTENDED_PEER_ID_S 8
|
||||
#define HTT_RX_PEER_EXTENDED_VDEV_ID_M 0xff000000
|
||||
#define HTT_RX_PEER_EXTENDED_VDEV_ID_S 24
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_L32_M 0xffffffff
|
||||
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_L32_S 0
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_U16_M 0x0000ffff
|
||||
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_U16_S 0
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_M 0x00070000
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_S 16
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_M 0x00080000
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_S 19
|
||||
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_PEER_ID_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_PEER_ID, value); \
|
||||
(word) |= (value) << HTT_RX_PEER_EXTENDED_PEER_ID_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_PEER_EXTENDED_PEER_ID_GET(word) \
|
||||
(((word) & HTT_RX_PEER_EXTENDED_PEER_ID_M) >> HTT_RX_PEER_EXTENDED_PEER_ID_S)
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_VDEV_ID_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_PEER_EXTENDED_VDEV_ID, value); \
|
||||
(word) |= (value) << HTT_RX_PEER_EXTENDED_VDEV_ID_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_PEER_EXTENDED_VDEV_ID_GET(word) \
|
||||
(((word) & HTT_RX_PEER_EXTENDED_VDEV_ID_M) >> HTT_RX_PEER_EXTENDED_VDEV_ID_S)
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID, value); \
|
||||
(word) |= (value) << HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_GET(word) \
|
||||
(((word) & HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_M) >> HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_S)
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID, value); \
|
||||
(word) |= (value) << HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_GET(word) \
|
||||
(((word) & HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_M) >> HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_S)
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_OFFSET 4 /* bytes */
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_OFFSET 8 /* bytes */
|
||||
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_OFFSET 8 /* bytes */
|
||||
|
||||
#define HTT_RX_PEER_EXTENDED_EVENT_BYTES 20 /* bytes */
|
||||
|
||||
/**
|
||||
* @brief target -> host message specifying security parameters
|
||||
*
|
||||
@ -21075,6 +21206,8 @@ PREPACK struct htt_rx_cce_super_rule_setup_done_t {
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* THE BELOW MESSAGE HAS BEEN DEPRECATED
|
||||
*======================================
|
||||
* @brief target -> host CoDel MSDU queue latencies array configuration
|
||||
*
|
||||
* MSG_TYPE => HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND
|
||||
@ -21125,7 +21258,7 @@ typedef struct {
|
||||
num_elem: 16; /* bits 31:16 */
|
||||
A_UINT32 paddr_low;
|
||||
A_UINT32 paddr_high;
|
||||
} htt_t2h_codel_msduq_latencies_array_cfg_int_t;
|
||||
} htt_t2h_codel_msduq_latencies_array_cfg_int_t; /* DEPRECATED */
|
||||
|
||||
#define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_SIZE 12 /* bytes */
|
||||
|
||||
|
@ -546,6 +546,15 @@ enum htt_dbg_ext_stats_type {
|
||||
*/
|
||||
HTT_DBG_PDEV_TDMA_STATS = 57,
|
||||
|
||||
/** HTT_DBG_CODEL_STATS
|
||||
* PARAMS:
|
||||
* - No Params
|
||||
* RESP MSG:
|
||||
* - htt_codel_svc_class_stats_tlv
|
||||
* - htt_codel_msduq_stats_tlv
|
||||
*/
|
||||
HTT_DBG_CODEL_STATS = 58,
|
||||
|
||||
|
||||
/* keep this last */
|
||||
HTT_DBG_NUM_EXT_STATS = 256,
|
||||
@ -9550,5 +9559,92 @@ typedef struct {
|
||||
htt_umac_ssr_stats_t stats;
|
||||
} htt_umac_ssr_stats_tlv;
|
||||
|
||||
typedef struct {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
A_UINT32 svc_class_id;
|
||||
/* codel_drops:
|
||||
* How many times have MSDU queues belonging to this service class
|
||||
* dropped their head MSDU due to the queue's latency being above
|
||||
* the CoDel latency limit specified for the service class throughout
|
||||
* the full CoDel latency statistics collection window.
|
||||
*/
|
||||
A_UINT32 codel_drops;
|
||||
/* codel_no_drops:
|
||||
* How many times have MSDU queues belonging to this service class
|
||||
* completed a CoDel latency statistics collection window and
|
||||
* concluded that no head MSDU drop is needed, due to the MSDU queue's
|
||||
* latency being under the limit specified for the service class at
|
||||
* some point during the window.
|
||||
*/
|
||||
A_UINT32 codel_no_drops;
|
||||
} htt_codel_svc_class_stats_tlv;
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_M 0x0000FFFF
|
||||
#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S 0
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_GET(_var) \
|
||||
(((_var) & HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_M) >> \
|
||||
HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S)
|
||||
#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM, _val); \
|
||||
((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_M 0x00FF0000
|
||||
#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S 16
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_GET(_var) \
|
||||
(((_var) & HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_M) >> \
|
||||
HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S)
|
||||
#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_DROPS_M 0x0000FFFF
|
||||
#define HTT_CODEL_MSDUQ_STATS_DROPS_S 0
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_DROPS_GET(_var) \
|
||||
(((_var) & HTT_CODEL_MSDUQ_STATS_DROPS_M) >> \
|
||||
HTT_CODEL_MSDUQ_STATS_DROPS_S)
|
||||
#define HTT_CODEL_MSDUQ_STATS_DROPS_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_DROPS, _val); \
|
||||
((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_DROPS_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_M 0xFFFF0000
|
||||
#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_S 16
|
||||
|
||||
#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_GET(_var) \
|
||||
(((_var) & HTT_CODEL_MSDUQ_STATS_NO_DROPS_M) >> \
|
||||
HTT_CODEL_MSDUQ_STATS_NO_DROPS_S)
|
||||
#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_NO_DROPS, _val); \
|
||||
((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_NO_DROPS_S)); \
|
||||
} while (0)
|
||||
|
||||
typedef struct {
|
||||
htt_tlv_hdr_t tlv_hdr;
|
||||
union {
|
||||
A_UINT32 id__word;
|
||||
struct {
|
||||
A_UINT32 tx_flow_num: 16, /* FW's MSDU queue ID */
|
||||
svc_class_id: 8,
|
||||
reserved: 8;
|
||||
};
|
||||
};
|
||||
union {
|
||||
A_UINT32 stats__word;
|
||||
struct {
|
||||
A_UINT32
|
||||
codel_drops: 16,
|
||||
codel_no_drops: 16;
|
||||
};
|
||||
};
|
||||
} htt_codel_msduq_stats_tlv;
|
||||
|
||||
#endif /* __HTT_STATS_H__ */
|
||||
|
@ -1849,5 +1849,12 @@ typedef struct {
|
||||
A_COMPILE_TIME_ASSERT(check_mlo_glb_h_shmem_8byte_size_quantum,
|
||||
(((sizeof(mlo_glb_h_shmem) % sizeof(A_UINT64) == 0x0))));
|
||||
|
||||
/** 2 word representation of MAC addr */
|
||||
typedef struct _wmi_mac_addr {
|
||||
/** upper 4 bytes of MAC address */
|
||||
A_UINT32 mac_addr31to0;
|
||||
/** lower 2 bytes of MAC address */
|
||||
A_UINT32 mac_addr47to32;
|
||||
} wmi_mac_addr;
|
||||
|
||||
#endif /* __WLANDEFS_H__ */
|
||||
|
@ -632,6 +632,8 @@ typedef enum {
|
||||
WMI_SERVICE_MLO_TID_TO_LINK_MAPPING_SUPPORT = 379, /* Indicates FW supports TID-TO-LINK mapping */
|
||||
WMI_SERVICE_PER_LINK_STATS_SUPPORT = 380, /* Indicates FW supports per link stats for MLO */
|
||||
WMI_SERVICE_N_LINK_MLO_SUPPORT = 381, /* Indicate FW supports N MLO link & vdev re-purpose between links */
|
||||
WMI_SERVICE_ATF_MAX_CLIENT_512_SUPPORT = 382, /* Indicates FW supports maximum of 512 clients when ATF is enabled */
|
||||
WMI_SERVICE_FISA_DYNAMIC_MSDU_AGGR_SIZE_SUPPORT = 383, /* Indicates FW support for FISA aggregation size up to 64 instead of only 16 */
|
||||
|
||||
WMI_MAX_EXT2_SERVICE
|
||||
|
||||
|
@ -1381,6 +1381,17 @@ typedef enum {
|
||||
WMITLV_TAG_STRUC_wmi_mlo_set_link_bss_params_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_link_switch_req_evt_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_new_primary_link_peer_info,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_compl_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_status,
|
||||
WMITLV_TAG_STRUC_wmi_atf_group_info_v2,
|
||||
WMITLV_TAG_STRUC_wmi_atf_peer_info_v2,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_link_recommendation_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_peer_recommended_links,
|
||||
WMITLV_TAG_STRUC_wmi_aux_dev_capabilities,
|
||||
WMITLV_TAG_STRUC_wmi_nan_oem_data_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_nan_oem_data_event_fixed_param,
|
||||
} WMITLV_TAG_ID;
|
||||
/*
|
||||
* IMPORTANT: Please add _ALL_ WMI Commands Here.
|
||||
@ -1910,6 +1921,11 @@ typedef enum {
|
||||
OP(WMI_VENDOR_PDEV_CMDID) \
|
||||
OP(WMI_VENDOR_VDEV_CMDID) \
|
||||
OP(WMI_VENDOR_PEER_CMDID) \
|
||||
OP(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID) \
|
||||
OP(WMI_MLO_LINK_RECOMMENDATION_CMDID) \
|
||||
OP(WMI_MLO_LINK_SET_BSS_PARAMS_CMDID) \
|
||||
OP(WMI_MLO_LINK_SWITCH_CONF_CMDID) \
|
||||
OP(WMI_NAN_OEM_DATA_CMDID) \
|
||||
/* add new CMD_LIST elements above this line */
|
||||
|
||||
|
||||
@ -2221,6 +2237,10 @@ typedef enum {
|
||||
OP(WMI_VENDOR_VDEV_EVENTID) \
|
||||
OP(WMI_VENDOR_PEER_EVENTID) \
|
||||
OP(WMI_PDEV_SET_RF_PATH_RESP_EVENTID) \
|
||||
OP(WMI_ROAM_SYNCH_KEY_EVENTID) \
|
||||
OP(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID) \
|
||||
OP(WMI_MLO_LINK_SWITCH_REQUEST_EVENTID) \
|
||||
OP(WMI_NAN_OEM_DATA_EVENTID) \
|
||||
/* add new EVT_LIST elements above this line */
|
||||
|
||||
|
||||
@ -3851,6 +3871,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_nan_host_config_param, host_config, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CMDID);
|
||||
|
||||
/* NAN OEM Data Cmd */
|
||||
#define WMITLV_TABLE_WMI_NAN_OEM_DATA_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_oem_data_cmd_fixed_param, wmi_nan_oem_data_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_nan_oem_data_hdr, nan_oem_data_hdr, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, nan_oem_data_buffer, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_OEM_DATA_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)
|
||||
@ -4477,7 +4504,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_FWTEST_CMDID);
|
||||
/* ATF PEER REQUEST commands. */
|
||||
#define WMITLV_TABLE_WMI_PEER_ATF_REQUEST_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param, wmi_peer_atf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info, peer_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info, peer_info, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info_v2, peer_info_v2, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ATF_REQUEST_CMDID);
|
||||
|
||||
#define WMITLV_TABLE_WMI_VDEV_TID_LATENCY_CONFIG_CMDID(id,op,buf,len) \
|
||||
@ -4493,7 +4521,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_LATENCY_CONFIG_CMDID);
|
||||
/* ATF Group Request commands */
|
||||
#define WMITLV_TABLE_WMI_ATF_SSID_GROUPING_REQUEST_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_atf_ssid_grp_request_fixed_param, wmi_atf_ssid_grp_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_group_info, group_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_group_info, group_info, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_group_info_v2, group_info_v2, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ATF_SSID_GROUPING_REQUEST_CMDID);
|
||||
|
||||
/* ATF Group WMM Request commands */
|
||||
@ -5159,6 +5188,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_ap_vdev_tid_to_link_map_ie_info, mlo_vdev_tid_to_link_map_ie_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_AP_VDEV_TID_TO_LINK_MAP_CMDID);
|
||||
|
||||
/** WMI cmd used to set up Tid to Link Mapping for a vdev */
|
||||
#define WMITLV_TABLE_WMI_MLO_LINK_RECOMMENDATION_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_recommendation_fixed_param, wmi_mlo_link_recommendation_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_peer_recommended_links, mlo_peer_recommended_links, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_RECOMMENDATION_CMDID);
|
||||
|
||||
/* Mcast ipv4 address filter list cmd */
|
||||
#define WMITLV_TABLE_WMI_VDEV_IGMP_OFFLOAD_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_igmp_offload_fixed_param, wmi_igmp_offload_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
@ -5394,13 +5429,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PAUSE_CMDID);
|
||||
|
||||
/* pdev,vdev,peer cmd messages for tunneling vendor-specific contents */
|
||||
#define WMITLV_TABLE_WMI_VENDOR_PDEV_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_cmd_fixed_param, wmi_pdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_cmd_fixed_param, wmi_pdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PDEV_CMDID);
|
||||
#define WMITLV_TABLE_WMI_VENDOR_VDEV_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_cmd_fixed_param, wmi_vdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_cmd_fixed_param, wmi_vdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_CMDID);
|
||||
#define WMITLV_TABLE_WMI_VENDOR_PEER_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_cmd_fixed_param, wmi_peer_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_cmd_fixed_param, wmi_peer_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_CMDID);
|
||||
|
||||
/* SET MLO link BSS param */
|
||||
@ -5469,7 +5507,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_cust_bdf_version_capabilities, cust_bdf_version_capabilities, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_sw_cal_ver_cap, sw_cal_ver_cap, WMITLV_SIZE_VAR) \
|
||||
WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_INT32, A_INT32, hw_tx_power_signed, WMITLV_SIZE_FIX, WMI_HW_TX_POWER_CAPS_MAX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_COEX_FIX_CHANNEL_CAPABILITIES, coex_fix_channel_caps, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_COEX_FIX_CHANNEL_CAPABILITIES, coex_fix_channel_caps, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_aux_dev_capabilities, aux_dev_caps, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT2_EVENTID);
|
||||
|
||||
#define WMITLV_TABLE_WMI_SPECTRAL_CAPABILITIES_EVENTID(id,op,buf,len) \
|
||||
@ -5758,6 +5797,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_band_to_mac, mac_freq_mapping, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_EVENTID);
|
||||
|
||||
/* Roam Synch key Event */
|
||||
#define WMITLV_TABLE_WMI_ROAM_SYNCH_KEY_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ml_key_material_param, ml_key_material, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_KEY_EVENTID);
|
||||
|
||||
/* Roam Synch frame Event */
|
||||
#define WMITLV_TABLE_WMI_ROAM_SYNCH_FRAME_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_synch_frame_event_fixed_param, wmi_roam_synch_frame_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
@ -6222,6 +6266,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_OEM_DMA_RING_CFG_RSP_EVENTID)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_nan_event_info, event_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_EVENTID);
|
||||
|
||||
/* NAN OEM Data Event */
|
||||
#define WMITLV_TABLE_WMI_NAN_OEM_DATA_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_oem_data_event_fixed_param, wmi_nan_oem_data_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_nan_oem_data_hdr, nan_oem_data_hdr, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, nan_oem_data_buffer, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_NAN_OEM_DATA_EVENTID);
|
||||
|
||||
/* NAN discovery interface created event */
|
||||
#define WMITLV_TABLE_WMI_NAN_DISC_IFACE_CREATED_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_iface_created_event_fixed_param, wmi_nan_disc_iface_created_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX)
|
||||
@ -7351,13 +7402,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_DISABLE_REQUEST_EVENTID);
|
||||
|
||||
/* pdev,vdev,peer event messages for tunneling vendor-specific contents */
|
||||
#define WMITLV_TABLE_WMI_VENDOR_PDEV_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_event_fixed_param, wmi_pdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_event_fixed_param, wmi_pdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PDEV_EVENTID);
|
||||
#define WMITLV_TABLE_WMI_VENDOR_VDEV_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_event_fixed_param, wmi_vdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_event_fixed_param, wmi_vdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_EVENTID);
|
||||
#define WMITLV_TABLE_WMI_VENDOR_PEER_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_event_fixed_param, wmi_peer_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_event_fixed_param, wmi_peer_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_EVENTID);
|
||||
|
||||
/* link switch event */
|
||||
@ -7365,6 +7419,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_EVENTID);
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_req_evt_fixed_param, wmi_mlo_link_switch_req_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_REQUEST_EVENTID);
|
||||
|
||||
/* MLO Primary Link Peer Migration command */
|
||||
#define WMITLV_TABLE_WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_fixed_param, wmi_mlo_primary_link_peer_migration_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_new_primary_link_peer_info, new_primary_link_peer_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID);
|
||||
|
||||
/* MLO Primary Link Peer Migration Event */
|
||||
#define WMITLV_TABLE_WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_compl_fixed_param, wmi_mlo_primary_link_peer_migration_compl_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_primary_link_peer_migration_status, primary_link_peer_migration_status, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
658
fw/wmi_unified.h
658
fw/wmi_unified.h
@ -198,14 +198,6 @@ static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index,
|
||||
((val & (((A_UINT32) 1 << bits_per_entry) - 1)) << start_bit_in_uint);
|
||||
}
|
||||
|
||||
/** 2 word representation of MAC addr */
|
||||
typedef struct _wmi_mac_addr {
|
||||
/** upper 4 bytes of MAC address */
|
||||
A_UINT32 mac_addr31to0;
|
||||
/** lower 2 bytes of MAC address */
|
||||
A_UINT32 mac_addr47to32;
|
||||
} wmi_mac_addr;
|
||||
|
||||
/** macro to convert MAC address from WMI word format to char array */
|
||||
#define WMI_MAC_ADDR_TO_CHAR_ARRAY(pwmi_mac_addr,c_macaddr) do { \
|
||||
(c_macaddr)[0] = (((pwmi_mac_addr)->mac_addr31to0) >> 0) & 0xff; \
|
||||
@ -1352,6 +1344,8 @@ typedef enum {
|
||||
|
||||
/** Nan Request */
|
||||
WMI_NAN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_NAN),
|
||||
/** Command to handle OEM's NAN specific opaque data */
|
||||
WMI_NAN_OEM_DATA_CMDID,
|
||||
|
||||
/** Modem power state command */
|
||||
WMI_MODEM_POWER_STATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_COEX),
|
||||
@ -1567,6 +1561,10 @@ typedef enum {
|
||||
WMI_MLO_LINK_SET_BSS_PARAMS_CMDID,
|
||||
/** WMI cmd to confirm the status of link switch request handling */
|
||||
WMI_MLO_LINK_SWITCH_CONF_CMDID,
|
||||
/** WMI cmd to migrate the primary link peer */
|
||||
WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID,
|
||||
/** WMI cmd to recommand preferred link */
|
||||
WMI_MLO_LINK_RECOMMENDATION_CMDID,
|
||||
|
||||
/** WMI commands specific to Service Aware WiFi (SAWF) */
|
||||
/** configure or reconfigure the parameters for a service class */
|
||||
@ -1982,6 +1980,8 @@ typedef enum {
|
||||
WMI_ROAM_FRAME_EVENTID,
|
||||
/** Send firmware ini value corresponding to param_id */
|
||||
WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID,
|
||||
/** roam synch key event */
|
||||
WMI_ROAM_SYNCH_KEY_EVENTID,
|
||||
|
||||
/** P2P disc found */
|
||||
WMI_P2P_DISC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_P2P),
|
||||
@ -2280,6 +2280,8 @@ typedef enum {
|
||||
WMI_NAN_STARTED_CLUSTER_EVENTID,
|
||||
WMI_NAN_JOINED_CLUSTER_EVENTID,
|
||||
WMI_NAN_DMESG_EVENTID,
|
||||
/** Event to deliver OEM's NAN specific opaque data */
|
||||
WMI_NAN_OEM_DATA_EVENTID,
|
||||
|
||||
/* Coex Event */
|
||||
WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_COEX),
|
||||
@ -2404,6 +2406,8 @@ typedef enum {
|
||||
WMI_MLO_LINK_DISABLE_REQUEST_EVENTID,
|
||||
/** request host to switch to new link for specified vdev */
|
||||
WMI_MLO_LINK_SWITCH_REQUEST_EVENTID,
|
||||
/** Response event for WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID */
|
||||
WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID,
|
||||
|
||||
/* WMI event specific to Quiet handling */
|
||||
WMI_QUIET_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_QUIET_OFL),
|
||||
@ -3344,6 +3348,11 @@ typedef struct {
|
||||
#define WMI_TARGET_CAP_CONCURRENCE_SUPPORT_SET(target_cap_flags, value) \
|
||||
WMI_SET_BITS(target_cap_flags, 11, 2, value)
|
||||
|
||||
#define WMI_TARGET_CAP_MULTIPASS_SAP_SUPPORT_GET(target_cap_flags) \
|
||||
WMI_GET_BITS(target_cap_flags, 13, 1)
|
||||
#define WMI_TARGET_CAP_MULTIPASS_SAP_SUPPORT_SET(target_cap_flags, value) \
|
||||
WMI_SET_BITS(target_cap_flags, 13, 1, value)
|
||||
|
||||
/*
|
||||
* wmi_htt_msdu_idx_to_htt_msdu_qtype GET/SET APIs
|
||||
*/
|
||||
@ -3486,7 +3495,8 @@ typedef struct {
|
||||
* Bits 12:11 concurrence support capability
|
||||
* Bit11 - [ML-STA + SL-STA] 0: not supported; 1:supported
|
||||
* Bit12 - [ML-STA + SL-SAP] 0: not supported; 1:supported
|
||||
* Bits 31:13 - Reserved
|
||||
* Bit 13 - Support for multipass SAP
|
||||
* Bits 31:14 - Reserved
|
||||
*/
|
||||
A_UINT32 target_cap_flags;
|
||||
|
||||
@ -3557,6 +3567,7 @@ typedef struct {
|
||||
* wmi_htt_msdu_idx_to_htt_msdu_qtype htt_msdu_idx_to_qtype_map[];
|
||||
* wmi_dbs_or_sbs_cap_ext dbs_or_sbs_cap_ext;
|
||||
* A_INT32 hw_tx_power_signed[WMI_HW_TX_POWER_CAPS_MAX];
|
||||
* wmi_aux_dev_capabilities aux_dev_caps[];
|
||||
*/
|
||||
} wmi_service_ready_ext2_event_fixed_param;
|
||||
|
||||
@ -5075,12 +5086,14 @@ typedef enum {
|
||||
WMI_VENDOR1_REQ1_VERSION_3_20 = 2,
|
||||
WMI_VENDOR1_REQ1_VERSION_3_30 = 3,
|
||||
WMI_VENDOR1_REQ1_VERSION_3_40 = 4,
|
||||
WMI_VENDOR1_REQ1_VERSION_4_00 = 5,
|
||||
} WMI_VENDOR1_REQ1_VERSION;
|
||||
|
||||
typedef enum {
|
||||
WMI_VENDOR1_REQ2_VERSION_3_00 = 0,
|
||||
WMI_VENDOR1_REQ2_VERSION_3_01 = 1,
|
||||
WMI_VENDOR1_REQ2_VERSION_3_20 = 2,
|
||||
WMI_VENDOR1_REQ2_VERSION_3_50 = 3,
|
||||
} WMI_VENDOR1_REQ2_VERSION;
|
||||
|
||||
typedef enum {
|
||||
@ -5358,6 +5371,11 @@ typedef enum {
|
||||
#define WMI_SET_HOST_BAND_CAP(feature_bitmap, val) \
|
||||
WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 106, 6, val)
|
||||
|
||||
#define WMI_GET_STA_DUMP_SUPPORT(var, feature_bitmap) \
|
||||
WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 112, 1)
|
||||
#define WMI_SET_STA_DUMP_SUPPORT(feature_bitmap, val) \
|
||||
WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 112, 1, val)
|
||||
|
||||
/*
|
||||
* Specify how many A_UINT32 words are needed to hold the feature bitmap flags.
|
||||
* This value may change over time.
|
||||
@ -6225,6 +6243,7 @@ typedef struct {
|
||||
*/
|
||||
A_UINT32 flags;
|
||||
wmi_mac_addr link_addr; /* link address */
|
||||
wmi_mac_addr self_link_addr; /* self-link address */
|
||||
} wmi_roam_ml_setup_links_param;
|
||||
|
||||
/*
|
||||
@ -6360,6 +6379,7 @@ typedef struct {
|
||||
|
||||
typedef enum {
|
||||
WMI_RX_PARAMS_EXT_META_ADDBA = 0x0,
|
||||
WMI_RX_PARAMS_EXT_META_TWT = 0x1,
|
||||
} wmi_mgmt_rx_params_ext_meta_t;
|
||||
|
||||
typedef struct {
|
||||
@ -6384,6 +6404,20 @@ typedef struct {
|
||||
};
|
||||
A_UINT32 mgmt_rx_params_ext_dword1;
|
||||
};
|
||||
union {
|
||||
struct {
|
||||
/* WMI_RX_PARAMS_EXT_META_TWT */
|
||||
A_UINT32 twt_ie_buf_len; /* IE length */
|
||||
/* Following this structure is the TLV byte stream of IE data
|
||||
* of length twt_ie_buf_len:
|
||||
* A_UINT8 ie_data[]; <-- length in bytes given by field
|
||||
* twt_ie_buf_len.
|
||||
* This ie_data[] would contain only the TWT IE information
|
||||
* when twt_ie_buf_len is non zero.
|
||||
*/
|
||||
};
|
||||
A_UINT32 mgmt_rx_params_ext_dword2;
|
||||
};
|
||||
} wmi_mgmt_rx_params_ext;
|
||||
|
||||
typedef struct {
|
||||
@ -7194,6 +7228,8 @@ typedef struct {
|
||||
/* This TLV is followed by wmi_tx_send_params
|
||||
* wmi_tx_send_params tx_send_params;
|
||||
* wmi_mlo_tx_send_params mlo_tx_send_params[];
|
||||
* Note: WMI_MLO_MGMT_TID path validated for specific scenario
|
||||
* (BTM Usecase). Full support is not available.
|
||||
* wmi_tx_send_params_ext tx_send_params_ext[0 or 1];
|
||||
*/
|
||||
} wmi_mgmt_tx_send_cmd_fixed_param;
|
||||
@ -7254,6 +7290,14 @@ typedef struct {
|
||||
A_UINT32 linkid_bitmap;
|
||||
} wmi_mlo_link_disable_request_event_fixed_param;
|
||||
|
||||
typedef enum {
|
||||
/**
|
||||
* Projects support to offload regulatory database by default.
|
||||
* If don`t offload regulatory database, host can set this bit.
|
||||
*/
|
||||
WMI_REGDOMAIN_DATABASE_NO_OFFLOAD_BITMASK = 0x00000001,
|
||||
} WMI_REGDOMAIN_BITMASK;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_regdomain_cmd_fixed_param */
|
||||
|
||||
@ -7319,6 +7363,9 @@ typedef struct {
|
||||
A_UINT32 conformance_test_limit_6G_subband_UNII6_client[3][2];
|
||||
A_UINT32 conformance_test_limit_6G_subband_UNII7_client[3][2];
|
||||
A_UINT32 conformance_test_limit_6G_subband_UNII8_client[3][2];
|
||||
|
||||
/** reg domain bitmap */
|
||||
A_UINT32 regdomain_bitmap;
|
||||
} wmi_pdev_set_regdomain_cmd_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
@ -9184,6 +9231,16 @@ typedef enum {
|
||||
* 1 - Force PCIE Gen Speed and Lane Width to maximum supported value.
|
||||
*/
|
||||
WMI_PDEV_PARAM_PCIE_CONFIG,
|
||||
|
||||
/** CTS timeout - change wireless packet cts timeout configuration,
|
||||
* units are microseconds
|
||||
*/
|
||||
WMI_PDEV_PARAM_CTS_TIMEOUT,
|
||||
|
||||
/** Slot time - change wireless packet slot time value dynamically,
|
||||
* units are microseconds
|
||||
*/
|
||||
WMI_PDEV_PARAM_SLOT_TIME,
|
||||
} WMI_PDEV_PARAM;
|
||||
|
||||
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
|
||||
@ -10478,7 +10535,21 @@ typedef enum {
|
||||
WMI_CHAN_WIDTH_MAX,
|
||||
} wmi_channel_width;
|
||||
|
||||
/*Clear stats*/
|
||||
/* channel width switch type */
|
||||
typedef enum {
|
||||
WMI_CHAN_WIDTH_SWITCH_TYPE_TXRX = 0,
|
||||
WMI_CHAN_WIDTH_SWITCH_TYPE_TXONLY = 1,
|
||||
|
||||
WMI_CHAN_WIDTH_SWITCH_TYPE_MAX,
|
||||
} wmi_chan_width_switch_type;
|
||||
|
||||
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_GET_CHAN_WIDTH(chwidth_notify) WMI_GET_BITS(chwidth_notify, 0, 8)
|
||||
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_SET_CHAN_WIDTH(chwidth_notify, value) WMI_SET_BITS(chwidth_notify, 0, 8, value)
|
||||
|
||||
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_GET_SWITCH_TYPE(chwidth_notify) WMI_GET_BITS(chwidth_notify, 8, 2)
|
||||
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_SET_SWITCH_TYPE(chwidth_notify, value) WMI_SET_BITS(chwidth_notify, 8, 2, value)
|
||||
|
||||
/* Clear stats */
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param */
|
||||
/** unique id identifying the VDEV, generated by the caller */
|
||||
@ -15817,7 +15888,7 @@ typedef struct {
|
||||
A_UINT32 vdev_id;
|
||||
/** VDEV type (AP,STA,IBSS,MONITOR) */
|
||||
A_UINT32 vdev_type;
|
||||
/** VDEV subtype (P2PDEV, P2PCLI, P2PGO, BT3.0)*/
|
||||
/** VDEV subtype (P2PDEV, P2PCLI, P2PGO, BT3.0, BRIDGE) */
|
||||
A_UINT32 vdev_subtype;
|
||||
/** VDEV MAC address */
|
||||
wmi_mac_addr vdev_macaddr;
|
||||
@ -16065,6 +16136,14 @@ typedef enum {
|
||||
*/
|
||||
#define WMI_UNIFIED_VDEV_SUBTYPE_SMART_MON 0x7
|
||||
|
||||
/* Subtype to indicate that the VDEV is in Bridge mode.
|
||||
* Bridge VDEV is dummy VDEV required for 4 chip MLO scenario.
|
||||
* Bridge Peer will be connected to Bridge VDEV.
|
||||
* Bridge VDEV/PEER will be required to seamlessly transmit
|
||||
* to diagonal links in 4 chip MLO.
|
||||
*/
|
||||
#define WMI_UNIFIED_VDEV_SUBTYPE_BRIDGE 0x8
|
||||
|
||||
/** values for vdev_start_request flags */
|
||||
/** Indicates that AP VDEV uses hidden ssid. only valid for
|
||||
* AP/GO */
|
||||
@ -17915,7 +17994,9 @@ typedef enum {
|
||||
* bit 0: URNM_MFPR in RSNXE
|
||||
* bit 1: MFPC in RSN CAP
|
||||
* bit 2: MFPR in RSN CAP
|
||||
* bit 31:3 Reserved
|
||||
* bit 3: URNM_MFPR_X20 in RSNXE
|
||||
* bit 4: RSTA_EXTCAP_I2R_LMR_FB
|
||||
* bit 31:5 Reserved
|
||||
*/
|
||||
WMI_VDEV_PARAM_11AZ_SECURITY_CONFIG, /* 0xAB */
|
||||
|
||||
@ -17975,12 +18056,34 @@ typedef enum {
|
||||
* (except TDLS) about change in bandwidth, through OMN/OMI notification
|
||||
* before performing bandwidth update internally.
|
||||
* Please note incase of STA VDEV only BSS peer gets updated,
|
||||
* associated TDLS peer bandwidth wont be impacted.
|
||||
* associated TDLS peer bandwidth won't be impacted.
|
||||
*
|
||||
* The the updated bandwith is specified with a wmi_channel_width value.
|
||||
* bit 7:0 the updated bandwidth is specified with
|
||||
* a wmi_channel_width value
|
||||
* bit 9:8 the updated bandwidth switch type is specified with
|
||||
* a wmi_chan_width_switch_type value
|
||||
* bit 31:10 reserved
|
||||
*/
|
||||
WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY, /* 0xBA */
|
||||
|
||||
/*
|
||||
* Min time between measurment for 11AZ NTB ranging
|
||||
* in units of 100 microseconds
|
||||
*/
|
||||
WMI_VDEV_PARAM_RTT_11AZ_NTB_MIN_TIME_BW_MEAS, /* 0xBB */
|
||||
|
||||
/*
|
||||
* Max time between measurment for 11AZ NTB ranging
|
||||
* in units of 10 milliseconds
|
||||
*/
|
||||
WMI_VDEV_PARAM_RTT_11AZ_NTB_MAX_TIME_BW_MEAS, /* 0xBC */
|
||||
|
||||
/*
|
||||
* Max session expiry for 11AZ TB ranging.
|
||||
* Session expiry value is computed as 2^(Max Session Exp + 8) ms.
|
||||
*/
|
||||
WMI_VDEV_PARAM_RTT_11AZ_TB_MAX_SESSION_EXPIRY, /* 0xBD */
|
||||
|
||||
|
||||
/*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
|
||||
* The below vdev param types are used for prototyping, and are
|
||||
@ -18457,6 +18560,10 @@ typedef struct {
|
||||
A_UINT32 mac_tsf_id;
|
||||
/** ignore mac_tsf_id unless mac_tsf_id_valid is set */
|
||||
A_UINT32 mac_tsf_id_valid;
|
||||
/** min_device_tx_pwr_valid = 0 means value is not specified. */
|
||||
A_UINT32 min_device_tx_pwr_valid;
|
||||
/** minimum allowed device Tx power (in dBm) for this connection. */
|
||||
A_INT32 min_device_tx_pwr;
|
||||
} wmi_vdev_start_response_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
@ -24495,6 +24602,13 @@ typedef struct {
|
||||
A_UINT32 key_cipher;
|
||||
A_UINT8 pn[WMI_MAX_PN_LEN];
|
||||
A_UINT8 key_buff[WMI_MAX_KEY_LEN];
|
||||
/*
|
||||
* When link_id is 0xf, this field will be MLD address.
|
||||
* Otherwise, it will be bssid which specified with link_id.
|
||||
*/
|
||||
wmi_mac_addr mac_addr;
|
||||
A_UINT32 key_len; /* number of valid bytes within key_buff */
|
||||
A_UINT32 key_flags;
|
||||
} wmi_roam_ml_key_material_param;
|
||||
|
||||
typedef struct {
|
||||
@ -24733,6 +24847,12 @@ typedef enum
|
||||
*/
|
||||
WMI_VENDOR_OUI_ACTION_DISABLE_DYNAMIC_QOS_NULL_TX_RATE = 10,
|
||||
|
||||
/*
|
||||
* Enable CTS2SELF with QoS null frame if specific vendor OUI
|
||||
* received in beacon.
|
||||
*/
|
||||
WMI_VENDOR_OUI_ACTION_ENABLE_CTS2SELF_WITH_QOS_NULL = 11,
|
||||
|
||||
/* Add any action before this line */
|
||||
WMI_VENDOR_OUI_ACTION_MAX_ACTION_ID
|
||||
} wmi_vendor_oui_action_id;
|
||||
@ -27502,6 +27622,42 @@ typedef struct {
|
||||
*/
|
||||
} wmi_nan_cmd_param;
|
||||
|
||||
typedef enum {
|
||||
WMI_NAN_VENDOR1_REQ1 = 1,
|
||||
} WMI_NAN_OEM_DATA_TYPE;
|
||||
|
||||
typedef struct {
|
||||
/** oem_data_type:
|
||||
* Indicate what kind of OEM-specific data is present in the
|
||||
* oem_data_buffer[].
|
||||
* Possible values are listed in the enum WMI_NAN_OEM_DATA_TYPE.
|
||||
*/
|
||||
A_UINT32 oem_data_type;
|
||||
/** oem_data_len:
|
||||
* Actual length in bytes of the OEM-specific data within the
|
||||
* oem_data_buffer[].
|
||||
* Note that it is possible for a single message to contain multiple
|
||||
* OEM opaque data blobs. In such cases, the oem_data_len field of
|
||||
* nan_oem_data_hdr[0] not only specifies the size of the first such
|
||||
* opaque blob, but furthermore specifies the offset in oem_data_buffer[]
|
||||
* where the second opaque blob begins.
|
||||
*/
|
||||
A_UINT32 oem_data_len;
|
||||
} wmi_nan_oem_data_hdr;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_oem_data_cmd_fixed_param */
|
||||
|
||||
/* Following this structure are the below TLVs:
|
||||
* - wmi_nan_oem_data_hdr nan_oem_data_hdr[];
|
||||
* This TLV explains the type and size of the one or more OEM NAN
|
||||
* opaque data blobs carried in this message.
|
||||
* - A_UINT8 nan_oem_data_buffer[];
|
||||
* This TLV holds the contents of the one or more OEM NAN opaque data
|
||||
* blobs carried in this message.
|
||||
*/
|
||||
} wmi_nan_oem_data_cmd_fixed_param;
|
||||
|
||||
#define WMI_NAN_GET_RANGING_INITIATOR_ROLE(flag) WMI_GET_BITS(flag, 0, 1)
|
||||
#define WMI_NAN_SET_RANGING_INITIATOR_ROLE(flag, val) WMI_SET_BITS(flag, 0, 1, val)
|
||||
#define WMI_NAN_GET_RANGING_RESPONDER_ROLE(flag) WMI_GET_BITS(flag, 1, 1)
|
||||
@ -27534,6 +27690,19 @@ typedef struct {
|
||||
*/
|
||||
} wmi_nan_event_hdr;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_oem_data_event_fixed_param */
|
||||
|
||||
/* Following this structure are the below TLVs:
|
||||
* - wmi_nan_oem_data_hdr nan_oem_data_hdr[];
|
||||
* This TLV explains the type and size of the one or more OEM NAN
|
||||
* opaque data blobs carried in this message.
|
||||
* - A_UINT8 nan_oem_data_buffer[];
|
||||
* This TLV holds the contents of the one or more OEM NAN opaque data
|
||||
* blobs carried in this message.
|
||||
*/
|
||||
} wmi_nan_oem_data_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_event_info */
|
||||
A_UINT32 mac_id; /* MAC ID associated with NAN primary discovery channel; Valid only for NAN enable resp message identified by NAN_MSG_ID_ENABLE_RSP */
|
||||
@ -32721,12 +32890,100 @@ typedef struct {
|
||||
A_UINT32 pdev_id;
|
||||
} wmi_atf_peer_info;
|
||||
|
||||
#define WMI_ATF_PEER_UNITS_BIT_POS 0
|
||||
#define WMI_ATF_PEER_UNITS_NUM_BITS 16
|
||||
|
||||
#define WMI_ATF_GET_PEER_UNITS(atf_peer_info) \
|
||||
WMI_GET_BITS(atf_peer_info,WMI_ATF_PEER_UNITS_BIT_POS,WMI_ATF_PEER_UNITS_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_SET_PEER_UNITS(atf_peer_info,val) \
|
||||
WMI_SET_BITS(atf_peer_info,WMI_ATF_PEER_UNITS_BIT_POS,WMI_ATF_PEER_UNITS_NUM_BITS, val)
|
||||
|
||||
#define WMI_ATF_GROUP_ID_BIT_POS 16
|
||||
#define WMI_ATF_GROUP_ID_NUM_BITS 8
|
||||
|
||||
#define WMI_ATF_GET_GROUP_ID(atf_peer_info) \
|
||||
WMI_GET_BITS(atf_peer_info,WMI_ATF_GROUP_ID_BIT_POS,WMI_ATF_GROUP_ID_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_SET_GROUP_ID(atf_peer_info,val) \
|
||||
WMI_SET_BITS(atf_peer_info,WMI_ATF_GROUP_ID_BIT_POS,WMI_ATF_GROUP_ID_NUM_BITS, val)
|
||||
|
||||
#define WMI_ATF_EXPLICIT_PEER_FLAG_BIT_POS 24
|
||||
#define WMI_ATF_EXPLICIT_PEER_FLAG_NUM_BITS 1
|
||||
|
||||
#define WMI_ATF_GET_EXPLICIT_PEER_FLAG(atf_peer_info) \
|
||||
WMI_GET_BITS(atf_peer_info,WMI_ATF_EXPLICIT_PEER_FLAG_BIT_POS,WMI_ATF_EXPLICIT_PEER_FLAG_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_SET_EXPLICIT_PEER_FLAG(atf_peer_info,val) \
|
||||
WMI_SET_BITS(atf_peer_info,WMI_ATF_EXPLICIT_PEER_FLAG_BIT_POS,WMI_ATF_EXPLICIT_PEER_FLAG_NUM_BITS, val)
|
||||
|
||||
typedef struct {
|
||||
/* The new structure is an optimized version of wmi_atf_peer_info & wmi_atf_peer_ext_info combined */
|
||||
A_UINT32 tlv_header;
|
||||
wmi_mac_addr peer_macaddr;
|
||||
/* atf_peer_info
|
||||
* Bits 0-15 - atf_units (based on 1 part in 1000 (per mille))
|
||||
* Bits 16-23 - atf_groupid
|
||||
* Bit 24 - Configured Peer Indication (0/1), this bit would be set by
|
||||
* host to indicate that the peer has airtime % configured
|
||||
* explicitly by user
|
||||
* Bits 25-31 - Reserved (Shall be zero)
|
||||
*/
|
||||
A_UINT32 atf_peer_info;
|
||||
} wmi_atf_peer_info_v2;
|
||||
|
||||
#define WMI_ATF_PEER_FULL_UPDATE_BIT_POS 0
|
||||
#define WMI_ATF_PEER_FULL_UPDATE_NUM_BITS 1
|
||||
|
||||
#define WMI_ATF_GET_PEER_FULL_UPDATE(atf_flags) \
|
||||
WMI_GET_BITS(atf_flags,WMI_ATF_PEER_FULL_UPDATE_BIT_POS,WMI_ATF_PEER_FULL_UPDATE_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_SET_PEER_FULL_UPDATE(atf_flags,val) \
|
||||
WMI_SET_BITS(atf_flags,WMI_ATF_PEER_FULL_UPDATE_BIT_POS,WMI_ATF_PEER_FULL_UPDATE_NUM_BITS,val)
|
||||
|
||||
#define WMI_ATF_PEER_PENDING_WMI_CMDS_BIT_POS 1
|
||||
#define WMI_ATF_PEER_PENDING_WMI_CMDS_NUM_BITS 1
|
||||
|
||||
#define WMI_ATF_GET_PEER_PENDING_WMI_CMDS(atf_flags) \
|
||||
WMI_GET_BITS(atf_flags,WMI_ATF_PEER_PENDING_WMI_CMDS_BIT_POS, WMI_ATF_PEER_PENDING_WMI_CMDS_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_SET_PEER_PENDING_WMI_CMDS(atf_flags,val) \
|
||||
WMI_SET_BITS(atf_flags,WMI_ATF_PEER_PENDING_WMI_CMDS_BIT_POS, WMI_ATF_PEER_PENDING_WMI_CMDS_NUM_BITS, val)
|
||||
|
||||
#define WMI_ATF_PEER_PDEV_ID_VALID_BIT_POS 2
|
||||
#define WMI_ATF_PEER_PDEV_ID_VALID_NUM_BITS 1
|
||||
|
||||
#define WMI_ATF_GET_PEER_PDEV_ID_VALID(atf_flags) \
|
||||
WMI_GET_BITS(atf_flags,WMI_ATF_PEER_PDEV_ID_VALID_BIT_POS, WMI_ATF_PEER_PDEV_ID_VALID_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_SET_PEER_PDEV_ID_VALID(atf_flags,val) \
|
||||
WMI_SET_BITS(atf_flags,WMI_ATF_PEER_PDEV_ID_VALID_BIT_POS, WMI_ATF_PEER_PDEV_ID_VALID_NUM_BITS, val)
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param */
|
||||
A_UINT32 num_peers;
|
||||
A_UINT32 pdev_id;
|
||||
/* atf_flags
|
||||
* Bit 0 - full or partial update;
|
||||
* full update -
|
||||
* indicates that this is done for all the connected peers
|
||||
* partial update -
|
||||
* indicates update for only the newly connected peers
|
||||
* (whenever some peers gets connected/disconnected)
|
||||
* Bit 1 - indicates whether there are more iterations of WMI command
|
||||
* incoming after the current set of cmds
|
||||
* Example : If there are 500 peers present and tlv can accomodate
|
||||
* only 50 peers at a time, then this will be set for all the
|
||||
* instances of the WMI commands except the last one.
|
||||
* Bit 2 - indicates if pdev_id is valid or not
|
||||
* Bits 3-31 - Reserved (Shall be zero)
|
||||
*/
|
||||
A_UINT32 atf_flags;
|
||||
/*
|
||||
* Following this structure is the TLV:
|
||||
* struct wmi_atf_peer_info peer_info[num_peers];
|
||||
* Following this structure is one of the following TLVs
|
||||
* (only one of them will have valid data in a particular message)
|
||||
* - struct wmi_atf_peer_info peer_info[num_peers];
|
||||
* - struct wmi_atf_peer_info_v2 peer_info_v2[num_peers];
|
||||
*/
|
||||
} wmi_peer_atf_request_fixed_param;
|
||||
|
||||
@ -32759,12 +33016,69 @@ typedef struct {
|
||||
A_UINT32 atf_group_flags;
|
||||
} wmi_atf_group_info;
|
||||
|
||||
#define WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_BIT_POS 0
|
||||
#define WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_NUM_BITS 16
|
||||
|
||||
#define WMI_ATF_GROUP_GET_NUM_EXPLICIT_PEERS(atf_total_num_peers) \
|
||||
WMI_GET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_GROUP_SET_NUM_EXPLICIT_PEERS(atf_total_num_peers, val) \
|
||||
WMI_SET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_NUM_BITS, val)
|
||||
|
||||
#define WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_BIT_POS 16
|
||||
#define WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_NUM_BITS 16
|
||||
|
||||
#define WMI_ATF_GROUP_GET_NUM_IMPLICIT_PEERS(atf_total_num_peers) \
|
||||
WMI_GET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_NUM_BITS)
|
||||
|
||||
#define WMI_ATF_GROUP_SET_NUM_IMPLICIT_PEERS(atf_total_num_peers, val) \
|
||||
WMI_SET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_NUM_BITS, val)
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals
|
||||
* WMITLV_TAG_STRUC_wmi_atf_group_info_v2 */
|
||||
A_UINT32 tlv_header;
|
||||
A_UINT32 atf_group_id; /* ID of the Air Time Management group */
|
||||
/* atf_group_units
|
||||
* Fraction of air time allowed for the group, in per mille units
|
||||
* (from 0-1000).
|
||||
* For example, to indicate that the group can use 12.3% of the air time,
|
||||
* the atf_group_units setting would be 123.
|
||||
*/
|
||||
A_UINT32 atf_group_units;
|
||||
/* atf_group_flags
|
||||
* Bits 0-3 - Group Schedule Policy (Fair/Strict/Fair with upper bound)
|
||||
* Refer to WMI_ATF_SSID_ definitions
|
||||
* Bit 4-31 - Reserved (Shall be zero)
|
||||
*/
|
||||
A_UINT32 atf_group_flags;
|
||||
/* atf_total_num_peers
|
||||
*
|
||||
* Bits 0-15 - total number of explicit peers
|
||||
* Bits 16-31 - total number of implicit peers
|
||||
* An explicit peer has an ATF % configured by the user.
|
||||
* An implicit peer has an ATF % =
|
||||
* (Group_ATF_percent - Total_Explicit_Peers_ATF_Percent) /
|
||||
* number of implicit peers
|
||||
* This computation can be done in FW based on atf_total_num_peers.
|
||||
*/
|
||||
A_UINT32 atf_total_num_peers;
|
||||
/* atf_total_implicit_peer_units
|
||||
*
|
||||
* Air time allocated for all the implicit peers
|
||||
* (from 0-1000, in per mille units)
|
||||
*/
|
||||
A_UINT32 atf_total_implicit_peer_units;
|
||||
} wmi_atf_group_info_v2;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_atf_ssid_grp_request_fixed_param */
|
||||
A_UINT32 pdev_id;
|
||||
/*
|
||||
* Following this structure is the TLV:
|
||||
* struct wmi_atf_group_info group_info[];
|
||||
* Following this structure is the one of the following TLVs
|
||||
* (only one of them will have valid data in a particular message)
|
||||
* - struct wmi_atf_group_info group_info[];
|
||||
* - struct wmi_atf_group_info_v2 group_info[];
|
||||
*/
|
||||
} wmi_atf_ssid_grp_request_fixed_param;
|
||||
|
||||
@ -34091,6 +34405,10 @@ typedef enum wmi_coex_config_type {
|
||||
* 1 to place more emphasis on WLAN performance
|
||||
*/
|
||||
WMI_COEX_CONFIG_LE_SCAN_POLICY = 48,
|
||||
/* WMI_COEX_CONFIG_BT_RX_PER_THRESHOLD
|
||||
* config BT RX PER threshold
|
||||
*/
|
||||
WMI_COEX_CONFIG_BT_RX_PER_THRESHOLD = 49,
|
||||
} WMI_COEX_CONFIG_TYPE;
|
||||
|
||||
typedef struct {
|
||||
@ -36427,6 +36745,9 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
|
||||
WMI_RETURN_STRING(WMI_PDEV_SET_RF_PATH_CMDID); /* set RF path of PHY */
|
||||
WMI_RETURN_STRING(WMI_VDEV_PAUSE_CMDID);
|
||||
WMI_RETURN_STRING(WMI_GPIO_STATE_REQ_CMDID);
|
||||
WMI_RETURN_STRING(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID);
|
||||
WMI_RETURN_STRING(WMI_MLO_LINK_RECOMMENDATION_CMDID);
|
||||
WMI_RETURN_STRING(WMI_NAN_OEM_DATA_CMDID);
|
||||
}
|
||||
|
||||
return (A_UINT8 *) "Invalid WMI cmd";
|
||||
@ -36697,6 +37018,11 @@ typedef struct {
|
||||
bits 15:1 - reserved
|
||||
bits 31:16 - maximum PSD EIRP (dB/MHz)
|
||||
*/
|
||||
/*
|
||||
* NOTE: no further fields can be added into this struct, due to
|
||||
* message buffer size limitations in certain targets for the
|
||||
* WMI_REG_CHAN_LIST_CC_EXT_EVENT message.
|
||||
*/
|
||||
} wmi_regulatory_rule_ext_struct;
|
||||
|
||||
#define WMI_REG_CHAN_PRIORITY_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16)
|
||||
@ -36711,6 +37037,11 @@ typedef struct {
|
||||
* the frequencies below this value will be de-prioritized.
|
||||
* bits 31:16 = reserved for future
|
||||
*/
|
||||
/*
|
||||
* NOTE: no further fields can be added into this struct, due to
|
||||
* message buffer size limitations in certain targets for the
|
||||
* WMI_REG_CHAN_LIST_CC_EXT_EVENT message.
|
||||
*/
|
||||
} wmi_regulatory_chan_priority_struct;
|
||||
|
||||
#define WMI_REG_FCC_RULE_CHAN_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16)
|
||||
@ -36726,6 +37057,11 @@ typedef struct {
|
||||
* bits 23:16 = u8 FCC_Tx_power (dBm units)
|
||||
* bits 31:24 = u8 reserved for future
|
||||
*/
|
||||
/*
|
||||
* NOTE: no further fields can be added into this struct, due to
|
||||
* message buffer size limitations in certain targets for the
|
||||
* WMI_REG_CHAN_LIST_CC_EXT_EVENT message.
|
||||
*/
|
||||
} wmi_regulatory_fcc_rule_struct;
|
||||
|
||||
typedef enum {
|
||||
@ -36832,6 +37168,11 @@ typedef struct {
|
||||
A_UINT32 num_6g_reg_rules_client_sp[WMI_REG_CLIENT_MAX];
|
||||
A_UINT32 num_6g_reg_rules_client_lpi[WMI_REG_CLIENT_MAX];
|
||||
A_UINT32 num_6g_reg_rules_client_vlp[WMI_REG_CLIENT_MAX];
|
||||
/*
|
||||
* NOTE: no further fields can be added into this struct, due to
|
||||
* message buffer size limitations in certain targets for the
|
||||
* WMI_REG_CHAN_LIST_CC_EXT_EVENT message.
|
||||
*/
|
||||
/*
|
||||
* This fixed_param TLV is followed by the following TLVs:
|
||||
* - wmi_regulatory_rule_ext reg_rule_array[] struct TLV array.
|
||||
@ -39623,6 +39964,7 @@ typedef struct {
|
||||
* Bit 2: 6G band support if 1
|
||||
*/
|
||||
A_UINT32 support_link_band; /* Configure the band bitmap of mlo connection supports. */
|
||||
A_UINT32 max_active_links; /* Max active links supported for STA */
|
||||
} wmi_roam_mlo_config_cmd_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
@ -43503,6 +43845,13 @@ typedef struct wmi_pdev_vendor_event
|
||||
* because their offsets within wmi_pdev_vendor_event_fixed_param
|
||||
* would change, causing backwards incompatibilities.
|
||||
*/
|
||||
/*
|
||||
* This fixed_param TLV may be followed by the below TLVs:
|
||||
* - A_UINT32 opaque_vendor_var_len_data[]:
|
||||
* Variable-length array of opaque data.
|
||||
* The _fixed_param.sub_type value clarifies how to interpret the
|
||||
* contents of this opaque data.
|
||||
*/
|
||||
} wmi_pdev_vendor_event_fixed_param;
|
||||
typedef wmi_pdev_vendor_event_fixed_param wmi_vendor_pdev_event_fixed_param;
|
||||
|
||||
@ -43523,6 +43872,13 @@ typedef struct wmi_vdev_vendor_event
|
||||
* because their offsets within wmi_vdev_vendor_event_fixed_param
|
||||
* would change, causing backwards incompatibilities.
|
||||
*/
|
||||
/*
|
||||
* This fixed_param TLV may be followed by the below TLVs:
|
||||
* - A_UINT32 opaque_vendor_var_len_data[]:
|
||||
* Variable-length array of opaque data.
|
||||
* The _fixed_param.sub_type value clarifies how to interpret the
|
||||
* contents of this opaque data.
|
||||
*/
|
||||
} wmi_vdev_vendor_event_fixed_param;
|
||||
typedef wmi_vdev_vendor_event_fixed_param wmi_vendor_vdev_event_fixed_param;
|
||||
|
||||
@ -43545,6 +43901,13 @@ typedef struct wmi_peer_vendor_event
|
||||
* because their offsets within wmi_peer_vendor_event_fixed_param
|
||||
* would change, causing backwards incompatibilities.
|
||||
*/
|
||||
/*
|
||||
* This fixed_param TLV may be followed by the below TLVs:
|
||||
* - A_UINT32 opaque_vendor_var_len_data[]:
|
||||
* Variable-length array of opaque data.
|
||||
* The _fixed_param.sub_type value clarifies how to interpret the
|
||||
* contents of this opaque data.
|
||||
*/
|
||||
} wmi_peer_vendor_event_fixed_param;
|
||||
typedef wmi_peer_vendor_event_fixed_param wmi_vendor_peer_event_fixed_param;
|
||||
|
||||
@ -43563,6 +43926,13 @@ typedef struct wmi_pdev_vendor_cmd
|
||||
* because their offsets within wmi_pdev_vendor_cmd_fixed_param
|
||||
* would change, causing backwards incompatibilities.
|
||||
*/
|
||||
/*
|
||||
* This fixed_param TLV may be followed by the below TLVs:
|
||||
* - A_UINT32 opaque_vendor_var_len_data[]:
|
||||
* Variable-length array of opaque data.
|
||||
* The _fixed_param.sub_type value clarifies how to interpret the
|
||||
* contents of this opaque data.
|
||||
*/
|
||||
} wmi_pdev_vendor_cmd_fixed_param;
|
||||
typedef wmi_pdev_vendor_cmd_fixed_param wmi_vendor_pdev_cmd_fixed_param;
|
||||
|
||||
@ -43583,6 +43953,13 @@ typedef struct wmi_vdev_vendor_cmd
|
||||
* because their offsets within wmi_vdev_vendor_cmd_fixed_param
|
||||
* would change, causing backwards incompatibilities.
|
||||
*/
|
||||
/*
|
||||
* This fixed_param TLV may be followed by the below TLVs:
|
||||
* - A_UINT32 opaque_vendor_var_len_data[]:
|
||||
* Variable-length array of opaque data.
|
||||
* The _fixed_param.sub_type value clarifies how to interpret the
|
||||
* contents of this opaque data.
|
||||
*/
|
||||
} wmi_vdev_vendor_cmd_fixed_param;
|
||||
typedef wmi_vdev_vendor_cmd_fixed_param wmi_vendor_vdev_cmd_fixed_param;
|
||||
|
||||
@ -43605,6 +43982,13 @@ typedef struct wmi_peer_vendor_cmd
|
||||
* because their offsets within wmi_peer_vendor_cmd_fixed_param
|
||||
* would change, causing backwards incompatibilities.
|
||||
*/
|
||||
/*
|
||||
* This fixed_param TLV may be followed by the below TLVs:
|
||||
* - A_UINT32 opaque_vendor_var_len_data[]:
|
||||
* Variable-length array of opaque data.
|
||||
* The _fixed_param.sub_type value clarifies how to interpret the
|
||||
* contents of this opaque data.
|
||||
*/
|
||||
} wmi_peer_vendor_cmd_fixed_param;
|
||||
typedef wmi_peer_vendor_cmd_fixed_param wmi_vendor_peer_cmd_fixed_param;
|
||||
|
||||
@ -43624,23 +44008,38 @@ typedef enum {
|
||||
WMI_MLO_LINK_FORCE_REASON_TDLS = 4, /* Set force specific links because of 11BE MLO TDLS setup/teardown */
|
||||
} WMI_MLO_LINK_FORCE_REASON;
|
||||
|
||||
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_ACTIVE(mlo_flags) WMI_GET_BITS(control_flags, 0, 1)
|
||||
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_ACTIVE(mlo_flags, value) WMI_SET_BITS(control_flags, 0, 1, value)
|
||||
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_INACTIVE(mlo_flags) WMI_GET_BITS(control_flags, 1, 1)
|
||||
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_INACTIVE(mlo_flags, value) WMI_SET_BITS(control_flags, 1, 1, value)
|
||||
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_ACTIVE(mlo_flags) \
|
||||
WMI_GET_BITS(control_flags, 0, 1)
|
||||
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_ACTIVE(mlo_flags, value) \
|
||||
WMI_SET_BITS(control_flags, 0, 1, value)
|
||||
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_INACTIVE(mlo_flags) \
|
||||
WMI_GET_BITS(control_flags, 1, 1)
|
||||
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_INACTIVE(mlo_flags, value) \
|
||||
WMI_SET_BITS(control_flags, 1, 1, value)
|
||||
#define WMI_MLO_CONTROL_FLAGS_GET_DYNAMIC_FORCE_LINK_NUM(mlo_flags) \
|
||||
WMI_GET_BITS(control_flags, 2, 1)
|
||||
#define WMI_MLO_CONTROL_FLAGS_SET_DYNAMIC_FORCE_LINK_NUM(mlo_flags, value) \
|
||||
WMI_SET_BITS(control_flags, 2, 1, value)
|
||||
|
||||
/*
|
||||
* This structure is used for passing wmi_mlo_control_flags.
|
||||
* When force_mode is WMI_MLO_LINK_FORCE_ACTIVE or WMI_MLO_LINK_FORCE_INACTIVE
|
||||
* host can pass below control flags, to indicate if FW need to clear earlier
|
||||
* force bitmap config.
|
||||
*
|
||||
* - When force_mode is WMI_MLO_LINK_FORCE_ACTIVE or
|
||||
* WMI_MLO_LINK_FORCE_INACTIVE host can pass below control flags,
|
||||
* to indicate if FW need to clear earlier force bitmap config.
|
||||
*
|
||||
* - When force mode is WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM or
|
||||
* WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM, host can pass below control flags,
|
||||
* to indicate if FW need to use force link number instead of force link
|
||||
* bitmap.
|
||||
*/
|
||||
typedef struct {
|
||||
union {
|
||||
struct {
|
||||
A_UINT32 overwrite_force_active_bitmap:1, /* indicate overwrite all earlier force_active bitmaps */
|
||||
overwrite_force_inactive_bitmap:1, /* indicate overwrite all earlier force_inactive bitmaps */
|
||||
unused: 30;
|
||||
dynamic_force_link_num:1, /* indicate fw to use force link number instead of force link bitmap */
|
||||
unused: 29;
|
||||
};
|
||||
A_UINT32 control_flags;
|
||||
};
|
||||
@ -43758,6 +44157,13 @@ typedef struct {
|
||||
A_UINT32 pdev_id;
|
||||
/** Return status. 0 for success, non-zero otherwise */
|
||||
A_UINT32 status;
|
||||
/** max_ml_peer_ids:
|
||||
* Max number of ml_peerids across the SOC, Derived as
|
||||
* max_mlo_peer * num chips.
|
||||
* (Max_mlo_peer and num_chips are provided by Host Platform
|
||||
* in QMI exchange).
|
||||
*/
|
||||
A_UINT32 max_ml_peer_ids;
|
||||
} wmi_mlo_setup_complete_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
@ -43792,6 +44198,27 @@ typedef struct {
|
||||
A_UINT32 status;
|
||||
} wmi_mlo_teardown_complete_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_peer_recommended_links; */
|
||||
A_UINT32 tlv_header;
|
||||
/** AID (association id) of this station */
|
||||
A_UINT32 assoc_id;
|
||||
/** Request link id set to disable */
|
||||
A_UINT32 linkid_bitmap;
|
||||
} wmi_mlo_peer_recommended_links;
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_link_recommendation_fixed_param */
|
||||
A_UINT32 tlv_header;
|
||||
/* unique id identifying the VDEV, generated by the caller */
|
||||
A_UINT32 vdev_id;
|
||||
/* DTIM specified in units of num beacon intervals */
|
||||
A_UINT32 dtim_period;
|
||||
/* The TLVs follows this structure:
|
||||
* wmi_mlo_peer_recommended_links recommended_links[];
|
||||
*/
|
||||
} wmi_mlo_link_recommendation_fixed_param;
|
||||
|
||||
#define WMI_TID_TO_LINK_MAP_TID_NUM_GET(_var) WMI_GET_BITS(_var, 0, 5)
|
||||
#define WMI_TID_TO_LINK_MAP_TID_NUM_SET(_var, _val) WMI_SET_BITS(_var, 0, 5, _val)
|
||||
|
||||
@ -44378,6 +44805,13 @@ typedef struct {
|
||||
A_UINT32 vdev_id;
|
||||
/** Average RSSI value of Data Frames */
|
||||
A_INT32 avg_rssi_data_dbm;
|
||||
/** rx_vht_sgi:
|
||||
* Short guard interval state of Data frames obtaining from rx PPDU TLV
|
||||
* of VHTSIGA buf.
|
||||
* 0: Default (No sgi set)
|
||||
* 1: sgi set
|
||||
*/
|
||||
A_UINT32 rx_vht_sgi;
|
||||
} wmi_vdev_smart_monitor_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
@ -45591,6 +46025,178 @@ typedef struct {
|
||||
A_UINT32 reason; /*see definition of WMI_LINK_SWITCH_CNF_REASON*/
|
||||
} wmi_mlo_link_switch_cnf_fixed_param;
|
||||
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_ML_PEER_ID_GET(new_link_info) WMI_GET_BITS(new_link_info, 0, 16)
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_ML_PEER_ID_SET(new_link_info, value) WMI_SET_BITS(new_link_info, 0, 16, value)
|
||||
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_HW_LINK_ID_GET(new_link_info) WMI_GET_BITS(new_link_info, 16, 16)
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_HW_LINK_ID_SET(new_link_info, value) WMI_SET_BITS(new_link_info, 16, 16, value)
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_new_primary_link_peer_info */
|
||||
A_UINT32 tlv_header;
|
||||
|
||||
union {
|
||||
A_UINT32 new_link_info;
|
||||
struct {
|
||||
A_UINT32 ml_peer_id :16,
|
||||
hw_link_id :16;
|
||||
};
|
||||
};
|
||||
} wmi_mlo_new_primary_link_peer_info;
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_fixed_param */
|
||||
A_UINT32 tlv_header;
|
||||
|
||||
A_UINT32 vdev_id;
|
||||
|
||||
/**
|
||||
* Following this structure is
|
||||
* the array of "wmi_mlo_new_primary_link_peer_info" TLVs.
|
||||
*/
|
||||
} wmi_mlo_primary_link_peer_migration_fixed_param;
|
||||
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_STATUS_ML_PEER_ID_GET(status_info) WMI_GET_BITS(status_info, 0, 16)
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_STATUS_ML_PEER_ID_SET(status_info, value) WMI_SET_BITS(status_info, 0, 16, value)
|
||||
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_STATUS_STATUS_GET(status_info) WMI_GET_BITS(status_info, 16, 8)
|
||||
#define WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_STATUS_STATUS_SET(status_info, value) WMI_SET_BITS(status_info, 16, 8, value)
|
||||
|
||||
typedef enum {
|
||||
WMI_PRIMARY_LINK_PEER_MIGRATION_SUCCESS,
|
||||
WMI_PRIMARY_LINK_PEER_MIGRATION_IN_PROGRESS,
|
||||
WMI_PRIMARY_LINK_PEER_MIGRATION_DELETE_IN_PROGRESS,
|
||||
WMI_PRIMARY_LINK_PEER_MIGRATION_DELETED,
|
||||
WMI_PRIMARY_LINK_PEER_MIGRATION_TX_PIPES_FAILED,
|
||||
WMI_PRIMARY_LINK_PEER_MIGRATION_RX_PIPES_FAILED,
|
||||
|
||||
/* Add any new status above this line */
|
||||
WMI_PRIMARY_LINK_PEER_MIGRATION_FAIL = 255,
|
||||
} WMI_PRIMARY_LINK_PEER_MIGRATION_STATUS;
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_status */
|
||||
A_UINT32 tlv_header;
|
||||
|
||||
union {
|
||||
A_UINT32 status_info;
|
||||
struct {
|
||||
A_UINT32 ml_peer_id :16,
|
||||
status :8, /* WMI_PRIMARY_LINK_PEER_MIGRATION_STATUS */
|
||||
reserved :8;
|
||||
};
|
||||
};
|
||||
} wmi_mlo_primary_link_peer_migration_status;
|
||||
|
||||
typedef struct {
|
||||
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_compl_fixed_param */
|
||||
A_UINT32 tlv_header;
|
||||
A_UINT32 vdev_id;
|
||||
|
||||
/**
|
||||
* Following the fixed param is
|
||||
* the array of TLVs "wmi_mlo_primary_link_peer_migration_status".
|
||||
*/
|
||||
} wmi_mlo_primary_link_peer_migration_compl_fixed_param;
|
||||
|
||||
/* WMI_AUX_DEV_CAPS_SUPPORTED_MODE:
|
||||
* How many bits to shift for each supported mode.
|
||||
* This works just like Linux file permission bits
|
||||
* (i.e. user|group|other values for each rwx perms).
|
||||
*/
|
||||
typedef enum _WMI_AUX_DEV_CAPS_SUPPORTED_MODE {
|
||||
WMI_AUX_DEV_SUPPORTED_MODE_SCAN = 0,
|
||||
WMI_AUX_DEV_SUPPORTED_MODE_LISTEN = 1,
|
||||
WMI_AUX_DEV_SUPPORTED_MODE_EMLSR = 2,
|
||||
} WMI_AUX_DEV_CAPS_SUPPORTED_MODE;
|
||||
|
||||
/* wmi_aux_dev_capabilities:
|
||||
* TLV representing AUX mode capabilities
|
||||
* A one-dimensional "flattened" array of these structs shall represent
|
||||
* all AUX capabilities regardless of the actual AUX count.
|
||||
*
|
||||
* For example, if 2x AUX are present, then the array is expected to look
|
||||
* something like this:
|
||||
* wmi_aux_dev_capabilities caps[] = {
|
||||
* // 4 elements for AUX_0 - one element for each HW mode:
|
||||
* AUX_0_single_mac,
|
||||
* AUX_0_dual_mac,
|
||||
* AUX_0_single_mac_emlsr,
|
||||
* AUX_0_split_emlsr,
|
||||
* // 4 elements for AUX_1:
|
||||
* AUX_1_single_mac,
|
||||
* AUX_1_dual_mac,
|
||||
* AUX_1_single_mac_emlsr,
|
||||
* AUX_1_split_emlsr,
|
||||
* };
|
||||
* In effect, indexes 0 to 3 (inclusive) represent the first AUX,
|
||||
* 4 to 7 (inclusive) represent the second, and so on.
|
||||
* Note that each element explicitly identifies which AUX and HW mode it
|
||||
* corresponds to, via the aux_index and hw_mode_id fields respectively.
|
||||
* So the receiver should not assume the ordering will be as shown above
|
||||
* (AUX0 single, AUX0 dual, AUX0 single emlsr, AUX0 split emlsr,
|
||||
* AUX1 single, AUX1 dual, AUX1 single emlsr, AUX1 split emlsr)
|
||||
* but instead should directly check each element's aux_index and hw_mode_id
|
||||
* fields.
|
||||
*/
|
||||
typedef struct {
|
||||
/* tlv_header -- WMITLV_TAG_STRUC_wmi_aux_dev_capabilities */
|
||||
A_UINT32 tlv_header;
|
||||
|
||||
/* aux_index -- Which AUX this TLV applies to.
|
||||
Ex: aux_index=0 is first AUX, aux_index=1 is second AUX, etc */
|
||||
A_UINT32 aux_index;
|
||||
|
||||
/*
|
||||
* This TLV represents which AUX capabilities are supported by
|
||||
* which MAC for the given HW mode.
|
||||
* pdev ID value of 0x0 denotes that the AUX mode is not applicable
|
||||
* for the given HW mode.
|
||||
*
|
||||
* hw_mode_id | Single DBS_OR_SBS AUX eMLSR AUX eMLSR
|
||||
* | Phy single split
|
||||
* --------------------------------------------------------------
|
||||
* supported_modes | SCAN/ SCAN/ EMLSR EMLSR
|
||||
* | LISTEN LISTEN
|
||||
* listen_pdev_id_map | 0x1 0x2 0x0 0x0
|
||||
* emlsr_pdev_id_map | 0x0 0x0 0x1 0x2
|
||||
*/
|
||||
|
||||
/* hw_mode_id:
|
||||
* Which HW mode this TLV applies to.
|
||||
* HW mode values are defined in WMI_HW_MODE_CONFIG_TYPE.
|
||||
*/
|
||||
A_UINT32 hw_mode_id;
|
||||
|
||||
/* supported_modes:
|
||||
* Which mode this AUX supports for the HW mode defined in hw_mode_id.
|
||||
* Shift amounts are defined in WMI_AUX_DEV_CAPS_SUPPORTED_MODE.
|
||||
* This works just like user|group|other bits for Linux file permissions:
|
||||
* 0x1 = SCAN (0 0 1)
|
||||
* 0x2 = LISTEN (0 1 0)
|
||||
* 0x3 = SCAN+LISTEN (0 1 1)
|
||||
* 0x4 = EMLSR (1 0 0)
|
||||
*/
|
||||
A_UINT32 supported_modes_bitmap;
|
||||
|
||||
/* listen_pdev_id_map:
|
||||
* Which AUX MAC can listen/scan for the HW mode described in hw_mode_id.
|
||||
* 0x0 - AUX cannot be used for listen mode.
|
||||
* 0x1 - AUX can be attached to MAC-0 in AUX listen mode.
|
||||
* 0x2 - AUX can be attached to MAC-1 in AUX listen mode.
|
||||
*/
|
||||
A_UINT32 listen_pdev_id_map;
|
||||
|
||||
/* emlsr_pdev_id_map:
|
||||
* Which AUX MAC can perform eMLSR for the HW mode described in hw_mode_id.
|
||||
* 0x0 - AUX cannot be used for eMLSR mode.
|
||||
* 0x1 - AUX can be attached to MAC-0 in AUX eMLSR mode.
|
||||
* 0x2 - AUX can be attached to MAC-1 in AUX eMLSR mode.
|
||||
*/
|
||||
A_UINT32 emlsr_pdev_id_map;
|
||||
} wmi_aux_dev_capabilities;
|
||||
|
||||
|
||||
|
||||
/* ADD NEW DEFS HERE */
|
||||
|
||||
|
@ -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_ 1336
|
||||
#define __WMI_REVISION_ 1357
|
||||
|
||||
/** The Version Namespace should not be normally changed. Only
|
||||
* host and firmware of the same WMI namespace will work
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
/* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
|
||||
struct mon_buffer_addr {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
#ifndef BIG_ENDIAN_HOST
|
||||
uint32_t buffer_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t buffer_virt_addr_63_32 : 32; // [31:0]
|
||||
uint32_t dma_length : 12, // [11:0]
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
/* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
|
||||
struct mon_destination_ring {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
#ifndef BIG_ENDIAN_HOST
|
||||
uint32_t stat_buf_virt_addr_31_0 : 32; // [31:0]
|
||||
uint32_t stat_buf_virt_addr_63_32 : 32; // [31:0]
|
||||
uint32_t ppdu_id : 32; // [31:0]
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
/* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
|
||||
struct mon_buffer_addr {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
#ifndef BIG_ENDIAN_HOST
|
||||
uint32_t buffer_virt_addr_31_0 : 32;
|
||||
uint32_t buffer_virt_addr_63_32 : 32;
|
||||
uint32_t dma_length : 12,
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
/* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
/* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
|
||||
struct mon_buffer_addr {
|
||||
#ifndef WIFI_BIT_ORDER_BIG_ENDIAN
|
||||
#ifndef BIG_ENDIAN_HOST
|
||||
uint32_t buffer_virt_addr_31_0 : 32;
|
||||
uint32_t buffer_virt_addr_63_32 : 32;
|
||||
uint32_t dma_length : 12,
|
||||
|
Loading…
Reference in New Issue
Block a user