Merge tag 'LA.VENDOR.1.0.r1-27300-WAIPIO.QSSI15.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api into lineage-20

LA.VENDOR.1.0.r1-27300-WAIPIO.QSSI15.0

* tag 'LA.VENDOR.1.0.r1-27300-WAIPIO.QSSI15.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api:
  fw-api: CL 28563606 - update fw common interface files
  fw-api: CL 28550964 - update fw common interface files
  fw-api: CL 28541501 - update fw common interface files
  fw-api: CL 28534399 - update fw common interface files
  fw-api: CL 28532052 - update fw common interface files
  fw-api: CL 28539558 - update fw common interface files
  fw-api: CL 28524940 - update fw common interface files
  fw-api: CL 28481760 - update fw common interface files
  fw-api: CL 28447311 - update fw common interface files
  fw-api: CL 28444600 - update fw common interface files
  fw-api: CL 28429679 - update fw common interface files
  fw-api: CL 28361807 - update fw common interface files
  fw-api: CL 28373291 - update fw common interface files
  fw-api: CL 28388903 - update fw common interface files
  fw-api: CL 28373275 - update fw common interface files
  fw-api: CL 28354118 - update fw common interface files
  fw-api: CL 28343275 - update fw common interface files
  fw-api: CL 28339144 - update fw common interface files
  fw-api: CL 28338484 - update fw common interface files
  fw-api: CL 28313244 - update fw common interface files
  fw-api: CL 28312163 - update fw common interface files
  fw-api: CL 28311952 - update fw common interface files
  fw-api: CL 28298732 - update fw common interface files
  fw-api: CL 28298000 - update fw common interface files
  fw-api: CL 28214991 - update fw common interface files

Change-Id: I046dab95a4469e7c69af2ae5f39c68cf3dbc939a
This commit is contained in:
Michael Bestas
2025-04-27 01:18:21 +03:00
8 changed files with 697 additions and 65 deletions

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -265,9 +265,10 @@
* 3.135 Add HTT_HOST4_TO_FW_RXBUF_RING def.
* 3.136 Add htt_ext_present flag in htt_tx_tcl_global_seq_metadata.
* 3.137 Add more HTT_SDWF_MSDUQ_CFG_IND_ERROR codes.
* 3.138 Add T2H MLO_LATENCY_REQ, H2T _RESP msg defs.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 137
#define HTT_CURRENT_VERSION_MINOR 138
#define HTT_NUM_TX_FRAG_DESC 1024
@@ -839,6 +840,10 @@ 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_MAX_TAG,
} htt_stats_tlv_tag_t;
@@ -913,6 +918,7 @@ enum htt_h2t_msg_type {
HTT_H2T_MSG_TYPE_TX_LATENCY_STATS_CFG = 0x25,
HTT_H2T_MSG_TYPE_TX_LCE_SUPER_RULE_SETUP = 0x26,
HTT_H2T_MSG_TYPE_SDWF_MSDUQ_RECFG_REQ = 0x27,
HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_RESP = 0x28,
/* keep this last */
HTT_H2T_NUM_MSGS
@@ -11495,6 +11501,89 @@ PREPACK struct htt_h2t_sdwf_msduq_recfg_req {
((_var) |= ((_val) << HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_S)); \
} while (0)
/**
* @brief host -> target report MLO latency stats to FW periodically
*
* MSG_TYPE => HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_RESP
*
* @details
*
* |31 24|23 16|15 8|7 0|
* |----------------+----------------+----------------+----------------|
* | avg latency ms | vdev id | msg type |
* |----------------+----------------+----------------+----------------|
* | num of tx MSDUs | avg latency jitter ms |
* |-------------------------------------------------------------------|
*
* @details
* struct htt_h2t_mlo_latency_stats:
*
* The message is interpreted as follows:
* dword0 - b'7:0 - msg_type: Identifies mlo latency stats to fw
* This will be set to 0x28
* (HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_RESP)
* b'15:8 - vdev id : Indicate which vdev in the pdev is chosen
* as primary
* b'31:16 - avg latency ms: Indicate average MLO latency in a period
* dword1 - b'15:0 - min jitter ms: Indicate avg jitter of MLO latency in a
* period
* b'31:16 - num of tx packet : Indicate how many MSDUs are sent in a
* period
*/
/* HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_RESP */
PREPACK struct htt_h2t_mlo_latency_stats {
A_UINT32 msg_type: 8, /* bits 7:0 */
vdev_id: 8, /* bits 15:8 */
avg_latency_ms: 16; /* bits 31:16 */
A_UINT32 avg_jitter_ms: 16, /* bits 15:0 */
num_of_tx_pkt: 16; /* bits 31:16 */
} POSTPACK;
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID_M 0x0000FF00
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID_S 8
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID_GET(_var) \
(((_var) & HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID_M) >> \
HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID_S)
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID, _val); \
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_VDEV_ID_S)); \
} while (0)
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS_M 0xFFFF0000
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS_S 16
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS_GET(_var) \
(((_var) & HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS_M) >> \
HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS_S)
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS, _val); \
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_LATENCY_MS_S)); \
} while (0)
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS_M 0x0000FFFF
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS_S 0
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS_GET(_var) \
(((_var) & HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS_M) >> \
HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS_S)
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS, _val); \
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_AVG_JITTER_MS_S)); \
} while (0)
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_M 0xFFFF0000
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_S 16
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_GET(_var) \
(((_var) & HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_M) >> \
HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_S)
#define HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT, _val); \
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_S)); \
} while (0)
/*=== target -> host messages ===============================================*/
@@ -11569,6 +11658,7 @@ enum htt_t2h_msg_type {
HTT_T2H_MSG_TYPE_TX_LATENCY_STATS_PERIODIC_IND = 0x3a,
HTT_T2H_MSG_TYPE_TX_LCE_SUPER_RULE_SETUP_DONE = 0x3b,
HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND = 0x3c,
HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ = 0x3d,
HTT_T2H_MSG_TYPE_TEST,
@@ -14171,11 +14261,11 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* | VALID_MASK |(4bits) | SET_NUM | HW peer ID / AST index |
* | (8bits) | | (4bits) | |
* |-----------------+--------+--+--+--+--------------------------------------|
* | RESERVED |E |O | | |
* | (13bits) |A |A |NH| on-Chip PMAC_RXPCU AST index |
* | |V |V | | |
* | RESERVED |C|E |O | | |
* | (12bits) |I|A |A |NH| on-Chip PMAC_RXPCU AST index |
* | |V|V |V | | |
* |-----------------+--------------------+-----------------------------------|
* | HTT_MSDU_IDX_ | RESERVED | |
* | HTT_MSDU_IDX_ | CLASSIFY_INFO_IDX | |
* | VALID_MASK_EXT | (8bits) | EXT AST index |
* | (8bits) | | |
* |-----------------+--------------------+-----------------------------------|
@@ -14185,11 +14275,13 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* |--------------------------------------------------------------------------|
*
* Where:
* CIV = CLASSIFY_INFO_IDX_VALID flag, for CLASSIFY_INFO_IDX
* EAV = EXT_AST_VALID flag, for "EXT AST index"
* OAV = ONCHIP_AST_VALID flag, for "on-Chip PMAC_RXPCU AST index"
* NH = Next Hop
* The following field definitions describe the format of the rx peer map v3
* messages sent from the target to the host.
* dword 0:
* - MSG_TYPE
* Bits 7:0
* Purpose: identifies this as a peer map v3 message
@@ -14200,10 +14292,12 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* - SW_PEER_ID
* Bits 31:16
* Purpose: The peer ID (index) that WAL has allocated for this peer.
* dword 1:
* - 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
* dword 2:
* - MAC_ADDR_U16
* Bits 15:0
* Purpose: Identifies which peer node the peer ID is for.
@@ -14212,6 +14306,7 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* Bits 31:16
* Purpose: The multicast peer ID (index)
* Value: set to HTT_INVALID_PEER if not valid
* dword 3:
* - HW_PEER_ID / AST_INDEX
* Bits 15:0
* Purpose: Identifies the HW peer ID corresponding to the peer MAC
@@ -14231,6 +14326,7 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* - HTT_MSDU_IDX_VALID_MASK
* Bits 31:24
* Purpose: Shows MSDU indexes valid mask for AST_INDEX
* dword 4:
* - ONCHIP_AST_IDX / RESERVED
* Bits 15:0
* Purpose: This field is valid only when split AST feature is enabled.
@@ -14238,28 +14334,38 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* If valid, identifies the HW peer ID corresponding to the peer MAC
* address, this ast_idx is used for LMAC modules for RXPCU.
* - NEXT_HOP
* Bits 16
* Bit 16
* Purpose: Flag indicates next_hop AST entry used for WDS
* (Wireless Distribution System).
* - ONCHIP_AST_VALID
* Bits 17
* Bit 17
* Purpose: Flag indicates valid data behind of the ONCHIP_AST_IDX field
* - EXT_AST_VALID
* Bits 18
* Bit 18
* Purpose: Flag indicates valid data behind of the EXT_AST_INDEX field
* - CLASSIFY_INFO_IDX_VALID
* Bit 19
* Purpose: If set, indicates that the CLASSIFY_INFO_IDX field is valid;
* else, ignore CLASSIFY_INFO_IDX
* dword 5:
* - EXT_AST_INDEX
* Bits 15:0
* Purpose: This field describes Extended AST index
* Valid if EXT_AST_VALID flag set
* - CLASSIFY_INFO_IDX
* Bits 23:16
* Purpose: assists TCL-L Block in Boron family of chips to
* start finding the flow from the corresponding
* entry in the FLOW LOOK UP TABLE
* - HTT_MSDU_IDX_VALID_MASK_EXT
* Bits 31:24
* Purpose: Shows MSDU indexes valid mask for EXT_AST_INDEX
*/
/* dword 0 */
#define HTT_RX_PEER_MAP_V3_SW_PEER_ID_M 0xffff0000
#define HTT_RX_PEER_MAP_V3_SW_PEER_ID_S 16
#define HTT_RX_PEER_MAP_V3_VDEV_ID_M 0x0000ff00
#define HTT_RX_PEER_MAP_V3_VDEV_ID_S 8
#define HTT_RX_PEER_MAP_V3_SW_PEER_ID_M 0xffff0000
#define HTT_RX_PEER_MAP_V3_SW_PEER_ID_S 16
/* dword 1 */
#define HTT_RX_PEER_MAP_V3_MAC_ADDR_L32_M 0xffffffff
#define HTT_RX_PEER_MAP_V3_MAC_ADDR_L32_S 0
@@ -14269,26 +14375,30 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V3_MULTICAST_SW_PEER_ID_M 0xffff0000
#define HTT_RX_PEER_MAP_V3_MULTICAST_SW_PEER_ID_S 16
/* dword 3 */
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_AST_M 0xff000000
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_AST_S 24
#define HTT_RX_PEER_MAP_V3_CACHE_SET_NUM_M 0x000f0000
#define HTT_RX_PEER_MAP_V3_CACHE_SET_NUM_S 16
#define HTT_RX_PEER_MAP_V3_HW_PEER_ID_M 0x0000ffff
#define HTT_RX_PEER_MAP_V3_HW_PEER_ID_S 0
#define HTT_RX_PEER_MAP_V3_CACHE_SET_NUM_M 0x000f0000
#define HTT_RX_PEER_MAP_V3_CACHE_SET_NUM_S 16
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_AST_M 0xff000000
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_AST_S 24
/* dword 4 */
#define HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_M 0x00040000
#define HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_S 18
#define HTT_RX_PEER_MAP_V3_ONCHIP_AST_VALID_FLAG_M 0x00020000
#define HTT_RX_PEER_MAP_V3_ONCHIP_AST_VALID_FLAG_S 17
#define HTT_RX_PEER_MAP_V3_NEXT_HOP_M 0x00010000
#define HTT_RX_PEER_MAP_V3_NEXT_HOP_S 16
#define HTT_RX_PEER_MAP_V3_ON_CHIP_PMAC_RXPCU_AST_IDX_M 0x0000ffff
#define HTT_RX_PEER_MAP_V3_ON_CHIP_PMAC_RXPCU_AST_IDX_S 0
#define HTT_RX_PEER_MAP_V3_ON_CHIP_PMAC_RXPCU_AST_IDX_M 0x0000ffff
#define HTT_RX_PEER_MAP_V3_ON_CHIP_PMAC_RXPCU_AST_IDX_S 0
#define HTT_RX_PEER_MAP_V3_NEXT_HOP_M 0x00010000
#define HTT_RX_PEER_MAP_V3_NEXT_HOP_S 16
#define HTT_RX_PEER_MAP_V3_ONCHIP_AST_VALID_FLAG_M 0x00020000
#define HTT_RX_PEER_MAP_V3_ONCHIP_AST_VALID_FLAG_S 17
#define HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_M 0x00040000
#define HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_S 18
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_M 0x00080000
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_S 19
/* dword 5 */
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_M 0xff000000
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_S 24
#define HTT_RX_PEER_MAP_V3_EXT_AST_IDX_M 0x0000ffff
#define HTT_RX_PEER_MAP_V3_EXT_AST_IDX_S 0
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_M 0x00ff0000
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_S 16
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_M 0xff000000
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_S 24
#define HTT_RX_PEER_MAP_V3_VDEV_ID_SET(word, value) \
do { \
@@ -14370,6 +14480,14 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_GET(word) \
(((word) & HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_M) >> HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_S)
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG, value); \
(word) |= (value) << HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_S; \
} while (0)
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_GET(word) \
(((word) & HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_M) >> HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_S)
#define HTT_RX_PEER_MAP_V3_EXT_AST_IDX_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V3_EXT_AST_IDX, value); \
@@ -14378,6 +14496,14 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V3_EXT_AST_IDX_GET(word) \
(((word) & HTT_RX_PEER_MAP_V3_EXT_AST_IDX_M) >> HTT_RX_PEER_MAP_V3_EXT_AST_IDX_S)
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX, value); \
(word) |= (value) << HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_S; \
} while (0)
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_GET(word) \
(((word) & HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_M) >> HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_S)
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST, value); \
@@ -14386,17 +14512,19 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_GET(word) \
(((word) & HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_M) >> HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_S)
#define HTT_RX_PEER_MAP_V3_MAC_ADDR_OFFSET 4 /* bytes */
#define HTT_RX_PEER_MAP_V3_MULTICAST_SW_PEER_ID_OFFSET 8 /* bytes */
#define HTT_RX_PEER_MAP_V3_HW_PEER_ID_OFFSET 12 /* bytes */
#define HTT_RX_PEER_MAP_V3_CACHE_SET_NUM_OFFSET 12 /* bytes */
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_AST_OFFSET 12 /* bytes */
#define HTT_RX_PEER_MAP_V3_ON_CHIP_PMAC_RXPCU_AST_IDX_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_NEXT_HOP_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_ONCHIP_AST_VALID_FLAG_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_EXT_AST_IDX_OFFSET 20 /* bytes */
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_OFFSET 20 /* bytes */
#define HTT_RX_PEER_MAP_V3_MAC_ADDR_OFFSET 4 /* bytes */
#define HTT_RX_PEER_MAP_V3_MULTICAST_SW_PEER_ID_OFFSET 8 /* bytes */
#define HTT_RX_PEER_MAP_V3_HW_PEER_ID_OFFSET 12 /* bytes */
#define HTT_RX_PEER_MAP_V3_CACHE_SET_NUM_OFFSET 12 /* bytes */
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_AST_OFFSET 12 /* bytes */
#define HTT_RX_PEER_MAP_V3_ON_CHIP_PMAC_RXPCU_AST_IDX_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_NEXT_HOP_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_ONCHIP_AST_VALID_FLAG_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_EXT_AST_VALID_FLAG_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_VALID_FLAG_OFFSET 16 /* bytes */
#define HTT_RX_PEER_MAP_V3_EXT_AST_IDX_OFFSET 20 /* bytes */
#define HTT_RX_PEER_MAP_V3_CLASSIFY_INFO_IDX_OFFSET 20 /* bytes */
#define HTT_RX_PEER_MAP_V3_MSDU_IDX_VM_EXT_AST_OFFSET 20 /* bytes */
#define HTT_RX_PEER_MAP_V3_BYTES 32
@@ -15290,7 +15418,7 @@ typedef enum {
} while (0)
#define HTT_RX_ADDBA_EXTN_WIN_SIZE_GET(word) \
(((word) & HTT_RX_ADDBA_WIN_SIZE_M) >> HTT_RX_ADDBA_WIN_SIZE_S)
(((word) & HTT_RX_ADDBA_EXTN_WIN_SIZE_M) >> HTT_RX_ADDBA_EXTN_WIN_SIZE_S)
#define HTT_RX_ADDBA_EXTN_BYTES 8
@@ -23252,6 +23380,73 @@ PREPACK struct htt_t2h_sdwf_msduq_cfg_ind {
((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_S)); \
} while (0)
/**
* @brief target -> host request for MLO latency stats
*
* MSG_TYPE => HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ
*
* @details
*
* |31 24|23 16| 15 |14 8|7 0|
* |----------------+----------------+------+---------+----------------|
* | periodic interval |enable| vdev id | msg type |
* |-------------------------------------------------------------------|
*
* @details
* struct htt_t2h_mlo_latency_req_t:
*
* The message is interpreted as follows:
* dword0 - b'7:0 - msg_type: Identifies a request for MLO latency stats
* This will be set to 0x3d
* (HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ)
* b'14:8 - vdev id : Indicate which vdev in the pdev is chosen
* as primary
* b'15 - enable: Indicate if request of MLO latency stats is
* enabled
* b'31:16 - periodic interval: Indicate the interval in ms of
* reporting MLO latency stats
*/
/* HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ */
PREPACK struct htt_t2h_mlo_latency_req_t {
A_UINT32 msg_type: 8, /* bits 7:0 */
vdev_id: 7, /* bits 14:8 */
enable: 1, /* bits 15 */
periodic_intvl: 16; /* bits 31:16 */
} POSTPACK;
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID_M 0x00007F00
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID_S 8
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID_GET(_var) \
(((_var) & HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID_M) >> \
HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID_S)
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID, _val); \
((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_VDEV_ID_S)); \
} while (0)
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE_M 0x00008000
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE_S 15
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE_GET(_var) \
(((_var) & HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE_M) >> \
HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE_S)
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE, _val); \
((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_ENABLE_S)); \
} while (0)
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL_M 0xFFFF0000
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL_S 16
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL_GET(_var) \
(((_var) & HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL_M) >> \
HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL_S)
#define HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL, _val); \
((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MLO_LATENCY_REQ_PERIODIC_INTVL_S)); \
} while (0)
#endif

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 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
@@ -922,6 +922,8 @@ typedef struct {
* part of existing DL/UL data sequence
*/
A_UINT32 is_combined_ul_bsrp_trigger;
/* Flag to indicate if the channel chosen is 320_1 / 320_2 */
A_UINT32 chan_type_320mhz;
} htt_ppdu_stats_common_tlv;
#define HTT_PPDU_STATS_USER_COMMON_TLV_TID_NUM_M 0x000000ff

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 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
@@ -818,6 +818,17 @@ enum htt_dbg_ext_stats_type {
*/
HTT_DBG_EXT_STATS_PDEV_FTM_TPCCAL = 73,
/** HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_ELIGIBLE
* PARAMS:
* - No Params
* RESP MSG:
* - htt_stats_pdev_ul_mumimo_grp_stats_tlv
* - htt_stats_pdev_ul_mumimo_denylist_stats_tlv
* - htt_stats_pdev_ul_mumimo_seq_term_stats_tlv
* - htt_stats_pdev_ul_mumimo_hist_ineligibility_tlv
*/
HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_ELIGIBLE = 74,
/* keep this last */
HTT_DBG_NUM_EXT_STATS = 256,
@@ -2858,6 +2869,11 @@ typedef enum {
HTT_TX_MUMIMO_GRP_INVALID_GROUP_INELIGIBLE,
HTT_TX_MUMIMO_GRP_INVALID,
HTT_TX_MUMIMO_GRP_INVALID_GROUP_EFF_MU_TPUT_OMBPS,
HTT_TX_MUMIMO_GRP_INVALID_GRP,
HTT_TX_MUMIMO_GRP_INVALID_TOTAL_NSS_LESS_THAN_GROUP_SIZE,
HTT_TX_MUMIMO_GRP_INSUFFICIENT_CANDIDATES_UL_MU_1SS_RATE,
HTT_TX_MUMIMO_GRP_MU_GRP_NOT_NEEDED,
HTT_TX_MUMIMO_GRP_INVALID_MAX_REASON_CODE,
} htt_tx_mumimo_grp_invalid_reason_code_stats;
@@ -4765,6 +4781,19 @@ typedef struct {
A_UINT32 g1_compl_fail;
A_UINT32 g2_success;
A_UINT32 g2_compl_fail;
/* enqueue */
A_UINT32 m1_enq_success;
A_UINT32 m1_enq_fail;
A_UINT32 m2_enq_success;
A_UINT32 m2_enq_fail;
A_UINT32 m3_enq_success;
A_UINT32 m3_enq_fail;
A_UINT32 m4_enq_success;
A_UINT32 m4_enq_fail;
A_UINT32 g1_enq_success;
A_UINT32 g1_enq_fail;
A_UINT32 g2_enq_success;
A_UINT32 g2_enq_fail;
} htt_stats_tx_de_eapol_packets_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_tx_de_eapol_packets_tlv htt_tx_de_eapol_packets_stats_tlv;
@@ -7561,6 +7590,15 @@ typedef struct {
A_UINT32 cv_corr_upload_total_num_users[HTT_TX_CV_CORR_MAX_NUM_COLUMNS];
/** number of streams present in uploaded CV Correlation results buffer */
A_UINT32 cv_corr_upload_total_num_streams[HTT_TX_CV_CORR_MAX_NUM_COLUMNS];
/** Total number of times lookahead sounding done for DL MU */
A_UINT32 lookahead_sounding_dl_cnt;
/** Total number of times lookahead sounding done for DL MU based on number of users */
A_UINT32 lookahead_snd_dl_num_users[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
/** Total number of times lookahead sounding done for UL MU */
A_UINT32 lookahead_sounding_ul_cnt;
/** Total number of times lookahead sounding done for UL MU based on number of users */
A_UINT32 lookahead_snd_ul_num_users[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS];
} htt_stats_tx_sounding_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_tx_sounding_stats_tlv htt_tx_sounding_stats_tlv;
@@ -9063,6 +9101,111 @@ typedef struct {
A_INT32 phase_in_degree[HTT_STATS_PDEV_AOA_MAX_HISTOGRAM][HTT_STATS_PDEV_AOA_MAX_CHAINS];
} htt_stats_pdev_aoa_tlv;
/* STATS_TYPE: HTT_DBG_EXT_STATS_PDEV_ULMUMIMO_ELIGIBLE
* TLV_TAGS:
* HTT_STATS_PDEV_UL_MUMIMO_GRP_STATS_TAG
* HTT_STATS_PDEV_UL_MUMIMO_DENYLIST_STATS_TAG
* HTT_STATS_PDEV_UL_MUMIMO_SEQ_TERM_STATS_TAG
* HTT_STATS_PDEV_UL_MUMIMO_HIST_INELIGIBILITY_TAG
*/
typedef enum {
HTT_STATS_CANDIDATE_MU_NOT_COMPATIBLE = 1,
HTT_STATS_CANDIDATE_SKIP_NR_INDEX,
HTT_STATS_CANDIDATE_SKIP_BASIC_CHECKS_INELIGIBLE,
HTT_STATS_CANDIDATE_SKIP_ZERO_NSS,
HTT_STATS_CANDIDATE_SKIP_MCS_THRESHOLD_LIMIT,
HTT_STATS_CANDIDATE_SKIP_POWER_IMBALANCED,
HTT_STATS_CANDIDATE_SKIP_NULL_MU_RC,
HTT_STATS_CANDIDATE_SKIP_CV_CORR_SKIP_PEER,
HTT_STATS_CANDIDATE_SKIP_SEND_BAR_SET_FOR_AC_MUMIMO,
HTT_STATS_CANDIDATE_SKIP_REASON_MAX
} htt_stats_candidate_sched_compatible_code;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Current Pdev id */
A_UINT32 pdev_id;
/* Group eligibility count */
A_UINT32 mu_grp_eligible[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group ineligibility */
A_UINT32 mu_grp_ineligible[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group Invalid reason */
A_UINT32 mu_grp_invalid[HTT_TX_NUM_MUMIMO_GRP_INVALID_WORDS];
/* mu_grp_candidate_skip:
* Sched_compatibility reason codes as listed by
* htt_stats_candidate_sched_compatible code
*/
A_UINT32 mu_grp_candidate_skip
[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS]
[HTT_STATS_CANDIDATE_SKIP_REASON_MAX];
/* Group eligibility count for 1SS grouping */
A_UINT32 mu_grp_eligible_1ss[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group ineligibility fpr 1SS grouping */
A_UINT32 mu_grp_ineligible_1ss[HTT_STATS_MAX_MUMIMO_GRP_SZ];
/* Group Invalid reason for 1SS grouping */
A_UINT32 mu_grp_invalid_1ss[HTT_TX_NUM_MUMIMO_GRP_INVALID_WORDS];
/* Sched_compatibility reason code for 1SS grouping */
A_UINT32 mu_grp_candidate_skip_1ss
[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS]
[HTT_STATS_CANDIDATE_SKIP_REASON_MAX];
} htt_stats_pdev_ulmumimo_grp_stats_tlv;
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Num of times peer denylisted for MU-MIMO transmission */
A_UINT32 num_peer_denylist_cnt;
/* Num of times peer denylisted due to trigger bitmap failure */
A_UINT32 trig_bitmap_fail_cnt;
/* Num of times peer denylisted due to trigger consecutive failure */
A_UINT32 trig_consecutive_fail_cnt;
} htt_stats_pdev_ulmumimo_denylist_stats_tlv;
#define HTT_STATS_SEQ_EFFICIENCY_HISTOGRAM 10
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Num of times seq terminated for MU-MIMO transmission */
A_UINT32 num_terminate_seq;
/* Num of sequences terminated due to low qdepth */
A_UINT32 num_terminate_low_qdepth;
/* Number of sequences terminated due to sequence inefficient */
A_UINT32 num_terminate_seq_inefficient;
/* Histogram of sequence inefficiency */
A_UINT32 hist_seq_efficiency[HTT_STATS_SEQ_EFFICIENCY_HISTOGRAM];
} htt_stats_pdev_ulmumimo_seq_term_stats_tlv;
#define HTT_STATS_MAX_ULMUMIMO_TRIGGERS 6
#define HTT_STATS_TXOP_HISTOGRAM_BINS 24
#define HTT_STATS_ULMUMIMO_DUR_INTERVAL_US 500
#define HTT_STATS_ULMUMIMO_MIN_PPDU_DUR_US 1000
#define HTT_STATS_MAX_PPDU_DURATION_BINS 10
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* Number of ULMUMIMO triggers */
A_UINT32 num_triggers[HTT_STATS_MAX_ULMUMIMO_TRIGGERS];
/* Txop duration history from 0 to 12 ms with interval of 500us */
A_UINT32 txop_history [HTT_STATS_TXOP_HISTOGRAM_BINS];
/* ppdu_duration_hist:
* PPDU Duration History (histogram)
* Num PPDUs from 1 to 6
* 0 to 6 ms with interval of 500us
*/
A_UINT32 ppdu_duration_hist
[HTT_STATS_MAX_ULMUMIMO_TRIGGERS][HTT_STATS_MAX_PPDU_DURATION_BINS];
/* Ineligible Count for ULMUMIMO based on avg qdepth and txtime criteria */
A_UINT32 ineligible_count;
/* history_ineligibility:
* History based ineligibility counter for ULMUMIMO.
* Checks for 8 eligible instances of ULMUMIMO in the past 32 instances.
*/
A_UINT32 history_ineligibility;
} htt_stats_pdev_ulmumimo_hist_ineligibility_tlv;
/* RTT VREG MASK */
#define HTT_STATS_RTT_CHAN_CAPTURE_MASK 0x00000001
#define HTT_STATS_RTT_HW_FAC_MASK 0x00000002
@@ -11538,6 +11681,31 @@ typedef struct {
A_UINT32 dl_ofdma_nbinwb_selected_over_mu_mimo[HTT_NUM_AC_WMM];
/** Num of instances where OFDMA NBinWB is selected in standalone */
A_UINT32 dl_ofdma_nbinwb_selected_standalone[HTT_NUM_AC_WMM];
/**
* Number of instances where we populated TX mode and candidate lists
* only for DL.
*/
A_UINT32 running_only_dl_scheduler_cnt[HTT_NUM_AC_WMM];
/**
* Number of instances where we populated TX mode and candidate lists
* only for UL.
*/
A_UINT32 running_only_ul_scheduler_cnt[HTT_NUM_AC_WMM];
/**
* Number of instances where we populated TX mode and candidate lists
* additionally for DL after UL.
*/
A_UINT32 running_additional_dl_scheduler_cnt[HTT_NUM_AC_WMM];
/**
* Number of instances where we populated TX mode and candidate lists
* additionally for UL after DL.
*/
A_UINT32 running_additional_ul_scheduler_cnt[HTT_NUM_AC_WMM];
/**
* Number of instances where we populated TX mode and candidate lists
* only for UL BSR TX mode.
*/
A_UINT32 running_ul_scheduler_for_bsrp_cnt[HTT_NUM_AC_WMM];
} htt_stats_pdev_sched_algo_ofdma_stats_tlv;
/* preserve old name alias for new name consistent with the tag name */
typedef htt_stats_pdev_sched_algo_ofdma_stats_tlv

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -191,9 +191,11 @@ typedef enum {
WLAN_MODULE_PHYLIB_RRI, /* 0x94 */
WLAN_MODULE_PHYLIB_SSCAN, /* 0x95 */
WLAN_MODULE_PHYLIB_RSVD, /* 0x96 */
WLAN_MODULE_USD, /* 0x97 */
WLAN_MODULE_C2C, /* 0x98 */
WLAN_MODULE_VBSS, /* 0x99 */
WLAN_MODULE_OPT_DATA, /* 0x9a */
WLAN_MODULE_ID_MAX,
WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -693,6 +693,8 @@ typedef enum {
WMI_SERVICE_SPECTRAL_SPUR_BIN_INFO_SUPPORT = 434, /* Indicates FW supports indicating spur frequency and spectral bin that gets affected due to spur frequency */
WMI_SERVICE_TWT_P2P_GO_CONCURRENCY_SUPPORT = 435, /* Indicates FW supports TWT in P2P GO concurrency mode */
WMI_SERVICE_UMAC_MIGRATION_SUPPORT = 436, /* Indicates that FW supports UMAC migration */
WMI_SERVICE_STA_TWT_STATS_EXT = 437, /* FW supports additional info in TWT stats and ADD COMPLETION Event */
WMI_SERVICE_OPT_DP_DIAG_SUPPORT = 438, /* FW supports diag QDATA feature */
WMI_MAX_EXT2_SERVICE

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2010-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -1471,6 +1471,11 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_conn_stats_struct,
WMITLV_TAG_STRUC_wmi_pdev_sscan_spur_chan_impacted_bin_info,
WMITLV_TAG_STRUC_wmi_ctrl_path_ml_rcfg_stats_struct,
WMITLV_TAG_STRUC_wmi_vdev_vbss_config_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_vdev_vbss_peer_pn_info,
WMITLV_TAG_STRUC_wmi_vdev_vbss_peer_sn_info,
WMITLV_TAG_STRUC_wmi_vdev_vbss_config_event_fixed_param,
WMITLV_TAG_STRUC_wmi_stats_ext_event_vdev_ext2_t,
} WMITLV_TAG_ID;
/*
* IMPORTANT: Please add _ALL_ WMI Commands Here.
@@ -2031,6 +2036,7 @@ typedef enum {
OP(WMI_MLO_LINK_RECONFIG_CMDID) \
OP(WMI_MLO_LINK_RECONFIG_COMPLETE_CMDID) \
OP(WMI_SAWF_EZMESH_HOP_COUNT_CMDID) \
OP(WMI_VDEV_VBSS_CONFIG_CMDID) \
/* add new CMD_LIST elements above this line */
@@ -2364,6 +2370,8 @@ typedef enum {
OP(WMI_SCAN_CACHE_RESULT_EVENTID) \
OP(WMI_MLO_LINK_RECONFIG_START_INDICATION_EVENTID) \
OP(WMI_PDEV_WIFI_RADAR_CAPABILITIES_EVENTID) \
OP(WMI_VDEV_VBSS_CONFIG_EVENTID) \
OP(WMI_OPT_DP_DIAG_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -3631,6 +3639,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_PARAM_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_cmd_fixed_param, wmi_vdev_update_mac_addr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UPDATE_MAC_ADDR_CMDID);
/* VDEV VBSS CONFIG COMMAND */
#define WMITLV_TABLE_WMI_VDEV_VBSS_CONFIG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vbss_config_cmd_fixed_param, wmi_vdev_vbss_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_pn_info, vbss_peer_pn_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_sn_info, vbss_peer_sn_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_VBSS_CONFIG_CMDID);
/* Pdev suspend Cmd */
#define WMITLV_TABLE_WMI_PDEV_SUSPEND_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param, wmi_pdev_suspend_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -5469,7 +5484,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_MULTIPLE_PEER_GROUP_CMDID);
/* RTT 11az PASN authentication status cmd */
#define WMITLV_TABLE_WMI_RTT_PASN_AUTH_STATUS_CMD(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rtt_pasn_auth_status_cmd_fixed_param, wmi_rtt_pasn_auth_status_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rtt_pasn_auth_status_param, pasn_auth_status_param, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rtt_pasn_auth_status_param, pasn_auth_status_param, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, cookie, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_RTT_PASN_AUTH_STATUS_CMD);
/* RTT 11az PASN deauthentication cmd */
@@ -6232,6 +6248,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_READ_DATA_FROM_FLASH_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_EVENTID);
#define WMITLV_TABLE_WMI_OPT_DP_DIAG_EVENTID(id,op,buf,len)\
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_OPT_DP_DIAG_EVENTID);
/* IGTK Offload Event */
#define WMITLV_TABLE_WMI_GTK_OFFLOAD_STATUS_EVENTID(id,op,buf,len)\
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -6718,7 +6738,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param, wmi_stats_ext_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_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_stats, partner_link_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, partner_link_data, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, partner_link_data, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_stats_ext_event_vdev_ext2_t, stats_ext2_data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_STATS_EXT_EVENTID);
#define WMITLV_TABLE_WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID(id,op,buf,len) \
@@ -7615,7 +7636,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_PKTLOG_DECODE_INFO_EVENTID);
#define WMITLV_TABLE_WMI_RTT_PASN_PEER_CREATE_REQ_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rtt_pasn_peer_create_req_event_fixed_param, \
wmi_rtt_pasn_peer_create_req_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rtt_pasn_peer_create_req_param, rtt_pasn_peer_param, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rtt_pasn_peer_create_req_param, rtt_pasn_peer_param, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, cookie, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_RTT_PASN_PEER_CREATE_REQ_EVENTID);
/* RTT 11az PASN peer delete event */
@@ -7749,6 +7771,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_EVENTID);
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);
/* VDEV VBSS CONFIG EVENT */
#define WMITLV_TABLE_WMI_VDEV_VBSS_CONFIG_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vbss_config_event_fixed_param, wmi_vdev_vbss_config_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)\
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_pn_info, vbss_peer_pn_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_sn_info, vbss_peer_sn_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_VBSS_CONFIG_EVENTID);
/* link switch event */
#define WMITLV_TABLE_WMI_MLO_LINK_SWITCH_REQUEST_EVENTID(id,op,buf,len) \
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)

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2010-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -721,6 +721,8 @@ typedef enum {
*/
WMI_VDEV_REPORT_AP_OPER_BW_CMDID,
WMI_VDEV_VBSS_CONFIG_CMDID,
/* peer specific commands */
@@ -1982,6 +1984,7 @@ typedef enum {
WMI_VDEV_SCHED_MODE_PROBE_RESP_EVENTID,
/** Connect response */
WMI_VDEV_OOB_CONNECTION_RESP_EVENTID,
WMI_VDEV_VBSS_CONFIG_EVENTID,
/* peer specific events */
/** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */
@@ -2404,6 +2407,9 @@ typedef enum {
/* WMI event to send scan cached results */
WMI_SCAN_CACHE_RESULT_EVENTID,
/** WMI event for FW diagnostic data sent to host */
WMI_OPT_DP_DIAG_EVENTID,
/* GPIO Event */
WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO),
@@ -5464,6 +5470,12 @@ typedef struct {
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_OPT_DP_CTRL_REPLENISH_REFILL_RX_BUFFER_SUPPORT_SET(host_service_flags, val) \
WMI_SET_BITS(host_service_flags, 17, 1, val)
/* This bit is used to inform FW VBSS is enabled */
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_VBSS_ENABLED_GET(host_service_flags) \
WMI_GET_BITS(host_service_flags, 18, 1)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_VBSS_ENABLED_SET(host_service_flags, val) \
WMI_SET_BITS(host_service_flags, 18, 1, val)
#define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \
WMI_GET_BITS(carrier_config, 0, 1)
#define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_SET(carrier_config, val) \
@@ -5536,6 +5548,7 @@ typedef enum {
WMI_VENDOR1_REQ1_VERSION_4_00 = 5,
WMI_VENDOR1_REQ1_VERSION_4_10 = 6,
WMI_VENDOR1_REQ1_VERSION_4_20 = 7,
WMI_VENDOR1_REQ1_VERSION_4_40 = 8,
} WMI_VENDOR1_REQ1_VERSION;
typedef enum {
@@ -17033,6 +17046,10 @@ typedef struct {
#define WMI_MLO_FLAGS_SET_LINK_DEL_CANCEL(mlo_flags, value) WMI_SET_BITS(mlo_flags, 16, 1, value)
#define WMI_MLO_FLAGS_GET_START_AS_ACTIVE(mlo_flags) WMI_GET_BITS(mlo_flags, 17, 1)
#define WMI_MLO_FLAGS_SET_START_AS_ACTIVE(mlo_flags, value) WMI_SET_BITS(mlo_flags, 17, 1, value)
#define WMI_MLO_FLAGS_GET_IEEE_LINK_ID_VALID(mlo_flags) WMI_GET_BITS(mlo_flags, 18, 1)
#define WMI_MLO_FLAGS_SET_IEEE_LINK_ID_VALID(mlo_flags, value) WMI_SET_BITS(mlo_flags, 18, 1, value)
#define WMI_MLO_FLAGS_GET_IEEE_LINK_ID_VALID_PARTNER(mlo_flags) WMI_GET_BITS(mlo_flags, 19, 1)
#define WMI_MLO_FLAGS_SET_IEEE_LINK_ID_VALID_PARTNER(mlo_flags, value) WMI_SET_BITS(mlo_flags, 19, 1, value)
/* this structure used for passing MLO flags */
typedef struct {
@@ -17062,7 +17079,9 @@ typedef struct {
mlo_link_add_cancel:1, /* rollback of previous dynamic link addition */
mlo_link_del_cancel:1, /* rollback of previous dynamic link deletion */
start_as_active:1, /* indicate link should be started in active status */
unused: 14;
mlo_ieee_link_id_valid:1, /* indicate if the ieee_link_id in wmi_vdev_start_mlo_params is valid */
mlo_ieee_link_id_valid_partner:1, /* indicate if the ieee_link_id in wmi_partner_link_params is valid */
unused: 12;
};
A_UINT32 mlo_flags;
};
@@ -17080,6 +17099,12 @@ typedef struct {
A_UINT32 hw_link_id; /** hw_link_id: Unique link id across SOCs, got as part of QMI handshake */
wmi_mac_addr vdev_macaddr; /** VDEV MAC address */
wmi_mlo_flags mlo_flags;
/** ieee_link_id:
* Link ID for partner link.
* This field must be ignored unless the mlo_ieee_link_id_valid_partner
* flag is set in mlo_flags.
*/
A_UINT32 ieee_link_id;
} wmi_partner_link_params;
/* this TLV structure used for pass mlo parameters on vdev create*/
@@ -17108,7 +17133,13 @@ typedef enum {
/* this TLV structure used for pass mlo parameters on vdev start*/
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; */
wmi_mlo_flags mlo_flags; /*only mlo enable and assoc link flag need by vdev start*/
wmi_mlo_flags mlo_flags; /* only mlo enable, assoc link and mlo_ieee_link_id_valid flag need by vdev start */
/** ieee_link_id:
* link id in 802.11 frame.
* This field will be invalid and ignored unless mlo_flags has
* mlo_ieee_link_id_valid bit set.
*/
A_UINT32 ieee_link_id;
} wmi_vdev_start_mlo_params;
/* this TLV structure used for passing mlo parameters on vdev stop */
@@ -17228,7 +17259,15 @@ typedef enum {
* Bridge VDEV/PEER will be required to seamlessly transmit
* to diagonal links in 4 chip MLO.
*/
#define WMI_UNIFIED_VDEV_SUBTYPE_BRIDGE 0x8
#define WMI_UNIFIED_VDEV_SUBTYPE_BRIDGE 0x8
/* Subtype to indicate that the VDEV is in VBSS mode.
* VBSS Vdev could be active or passive state.
* VBSS ACTIVE : Peer directly connected to the vdev.
* VBSS PASSIVE : Peer connected to another VBSS node in the network
*/
#define WMI_UNIFIED_VDEV_SUBTYPE_VBSS 0x9
/** values for vdev_start_request flags */
/** Indicates that AP VDEV uses hidden ssid. only valid for
@@ -17986,6 +18025,14 @@ enum WMI_VDEV_UP_FLAGS {
* EMA - Enhanced Multiple BSS Advertisemet.
*/
WMI_VDEV_UP_FLAG_EMA_MBSSID_AP = 0x00000001,
/** VBSS_ACTIVE
* Valid only for VBSS subtype vaps.
*/
WMI_VDEV_UP_FLAG_VBSS_ACTIVE = 0x00000002,
/** VBSS_PASSIVE
* Valid only for VBSS subtype vaps.
*/
WMI_VDEV_UP_FLAG_VBSS_PASSIVE = 0x00000004,
};
typedef struct {
@@ -21358,6 +21405,15 @@ typedef struct {
#define WMI_PEER_PARAM_UL_OFDMA_RTD 0x2B
/*
* Send unsolicited probe response to a connected STA.
* 0: Send immediately and stop.
* XX: Send every XX ms continuously.
* 0xFFFFFFFF: Stop sending immediately.
*/
#define WMI_PEER_PARAM_UNSOL_PROBE_RESP_INTVL 0x2C
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
@@ -22650,6 +22706,7 @@ enum {
WMI_AUTH_RSNA_8021X_SHA384,
WMI_AUTH_WPA3_SAE_SHA384,
WMI_AUTH_FT_RSNA_SAE_SHA384,
WMI_AUTH_FT_RSNA_PSK_SHA384,
};
typedef enum {
@@ -30237,6 +30294,7 @@ typedef struct {
#define WMI_EXT_STATS_VDEV_EXT_MAX_MCS_COUNTERS 32
#define WMI_EXT_STATS_VDEV_EXT_MAX_OPAQUE_DBG_WORDS32 1
#define WMI_STATS_EXT_EVENT_VDEV_EXT_NSS_COUNTERS_MAX 4
typedef enum wmi_stats_ext_event_vdev_ext_bw_counters {
WMI_STATS_EXT_EVENT_VDEV_EXT_BW_COUNTERS_20MHz = 0,
@@ -30300,6 +30358,22 @@ typedef struct wmi_stats_ext_event_vdev_ext {
A_UINT32 opaque_dbg[WMI_EXT_STATS_VDEV_EXT_MAX_OPAQUE_DBG_WORDS32];
} wmi_stats_ext_event_vdev_ext_t;
typedef struct {
A_UINT32 tlv_header; /* tag = WMITLV_TAG_STRUC_wmi_stats_ext_event_vdev_ext2_t */
/* Set of TX BW counters */
A_UINT32 tx_mcs_mpdu[WMI_EXT_STATS_VDEV_EXT_MAX_MCS_COUNTERS];
/* Set of TX BW counters */
A_UINT32 tx_bw_mpdu[WMI_STATS_EXT_EVENT_VDEV_EXT_BW_COUNTERS_MAX];
/* Set of TX NSS counters */
A_UINT32 tx_nss_mpdu[WMI_STATS_EXT_EVENT_VDEV_EXT_NSS_COUNTERS_MAX];
/* Set of RX BW counters */
A_UINT32 rx_mcs_mpdu[WMI_EXT_STATS_VDEV_EXT_MAX_MCS_COUNTERS];
/* Set of RX BW counters */
A_UINT32 rx_bw_mpdu[WMI_STATS_EXT_EVENT_VDEV_EXT_BW_COUNTERS_MAX];
/* Set of RX NSS counters */
A_UINT32 rx_nss_mpdu[WMI_STATS_EXT_EVENT_VDEV_EXT_NSS_COUNTERS_MAX];
} wmi_stats_ext_event_vdev_ext2_t;
typedef enum {
/** Default: no replay required. */
WMI_PEER_DELETE_NO_REPLAY = 0,
@@ -37432,8 +37506,34 @@ typedef struct {
* the bits within the bitmap
*/
A_UINT32 twt_capability_bitmap;
/* min_max_wake_dur_us
* min wake dur - refer to min TWT SP duration
* max wake dur - refer to max TWT SP duration
*/
A_UINT32 min_max_wake_dur_us;
/* min_max_wake_intvl_us
* min wake intvl - refer to min TWT SI interval
* max wake intvl - refer to max TWT SI interval
*/
A_UINT32 min_max_wake_intvl_us;
} wmi_twt_caps_params;
/* 0 - 15 bits for MAX WAKE DUR , 16 - 31 bits for MIN WAKE DUR */
#define TWT_CAPS_SET_MAX_WAKE_DUR(var, val) WMI_SET_BITS(var, 0, 16, val)
#define TWT_CAPS_SET_MIN_WAKE_DUR(var, val) WMI_SET_BITS(var, 16, 16, val)
#define TWT_CAPS_GET_MAX_WAKE_DUR(var) WMI_GET_BITS(var, 0, 16)
#define TWT_CAPS_GET_MIN_WAKE_DUR(var) WMI_GET_BITS(var, 16, 16)
/* 0 - 15 bits for MAX WAKE INTVL , 16 - 31 bits for MIN WAKE INTVL */
#define TWT_CAPS_SET_MAX_WAKE_INTVL(var, val) WMI_SET_BITS(var, 0, 16, val)
#define TWT_CAPS_SET_MIN_WAKE_INTVL(var, val) WMI_SET_BITS(var, 16, 16, val)
#define TWT_CAPS_GET_MAX_WAKE_INTVL(var) WMI_GET_BITS(var, 0, 16)
#define TWT_CAPS_GET_MIN_WAKE_INTVL(var) WMI_GET_BITS(var, 16, 16)
/*
* This TLV used for Scan Radio RDP
* We have an RDP which supports Multiband-Frequency (2 GHz, 5 GHz and 6 GHz)
@@ -37671,6 +37771,9 @@ typedef enum {
WMI_THERMAL_CLIENT_APPS = 1,
WMI_THERMAL_CLIENT_WPSS = 2,
WMI_THERMAL_CLIENT_FW = 3,
/* WMI_THERMAL_CLIENT_DDR_BWM: client is for DDR bandwidth mitigation */
WMI_THERMAL_CLIENT_DDR_BWM = 4,
WMI_THERMAL_CLIENT_MAX
} WMI_THERMAL_MITIGATION_CLIENTS;
@@ -38601,6 +38704,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_MLO_LINK_RECONFIG_CMDID);
WMI_RETURN_STRING(WMI_MLO_LINK_RECONFIG_COMPLETE_CMDID);
WMI_RETURN_STRING(WMI_SAWF_EZMESH_HOP_COUNT_CMDID);
WMI_RETURN_STRING(WMI_VDEV_VBSS_CONFIG_CMDID);
}
return (A_UINT8 *) "Invalid WMI cmd";
@@ -41685,6 +41789,8 @@ typedef struct {
#define WMI_ROAM_NEIGHBOR_REPORT_INFO_NUM_OF_NRIE_SET(detail,val) WMI_SET_BITS(detail, 16, 8, val)
#define WMI_ROAM_NEIGHBOR_REPORT_INFO_MLO_BAND_INFO_GET(detail) WMI_GET_BITS(detail, 24, 3)
#define WMI_ROAM_NEIGHBOR_REPORT_INFO_MLO_BAND_INFO_SET(detail,val) WMI_SET_BITS(detail, 24, 3, val)
#define WMI_ROAM_NEIGHBOR_REPORT_INFO_TX_STATUS_INFO_GET(detail) WMI_GET_BITS(detail, 27, 4)
#define WMI_ROAM_NEIGHBOR_REPORT_INFO_TX_STATUS_INFO_SET(detail,val) WMI_SET_BITS(detail, 27, 4, val)
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_neighbor_report_info_tlv_param */
@@ -41719,7 +41825,9 @@ typedef struct {
* wmi_mlo_band_info enum constants
* Refer to WMI_ROAM_NEIGHBOR_REPORT_INFO_MLO_BAND_INFO_GET,SET
* macros.
* [31:27] : reserved
* [30:27] : neighbor report request TX STATUS, possible values listed in
* WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS
* [31] : reserved
* Refer to the above WMI_ROAM_NEIGHBOR_REPORT_INFO_*_GET,_SET macros for
* reading and writing these bitfields.
*/
@@ -41871,9 +41979,19 @@ typedef enum {
} WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_SUBTYPE;
typedef enum {
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_ACK = 0,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_NO_ACK,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_FAIL,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_ACK = 0,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_NO_ACK = 1,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_FAIL = 2,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_DROP =
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_FAIL,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_FILTERED = 3,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TXOP_ABORT = 4,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_TID_DEL = 5,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_SW_ABORT = 6,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_MIG_DROP = 7,
WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS_TX_MLO_TID_MIG = 8,
/* max allowed value is 15, due to this enum's use in a 4-bit bitfield */
} WMI_ROAM_FRAME_INFO_FRAME_TYPE_EXT_STATUS;
typedef struct {
@@ -47599,6 +47717,8 @@ typedef struct {
A_UINT32 mode;
/* max num of user to decode */
A_UINT32 max_num_user;
/* UL MU sniffer enable */
A_UINT32 ul_snif_enable;
/**
* TLV (tag length value) parameters follow setting MU sniffer command
* structure. The TLV's are:
@@ -47875,6 +47995,7 @@ typedef struct {
#define WMI_RTT_PASN_PEER_CREATE_SECURITY_MODE_SET(flag,val) WMI_SET_BITS(flag, 0, 2, val)
#define WMI_RTT_PASN_PEER_CREATE_FORCE_SELF_MAC_USE_GET(flag) WMI_GET_BITS(flag, 2, 1)
#define WMI_RTT_PASN_PEER_CREATE_FORCE_SELF_MAC_USE_SET(flag,val) WMI_SET_BITS(flag, 2, 1, val)
#define WMI_MAX_PASN_PASSPHRASE_LEN 64
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rtt_pasn_peer_create_req_event_fixed_param */
@@ -47884,6 +48005,7 @@ typedef struct {
* The following TLV will follow this fixed_param TLV:
*
* wmi_rtt_pasn_peer_create_req_param rtt_pasn_peer_param[]
* A_UINT8 cookie[]
*/
} wmi_rtt_pasn_peer_create_req_event_fixed_param;
@@ -47901,6 +48023,18 @@ typedef struct {
* and flush old cache( if it exists) for dest_mac_addr with old self_mac_addr.
* Bits 31:3: Reserved
*/
/* Authentication modes */
A_UINT32 akm;
/* pairwise cipher suite selector */
A_UINT32 cipher_suite;
/* PMKID */
A_UINT8 pmk_id[WMI_MAX_PMKID_LEN];
/* passphrase length */
A_UINT32 passphrase_len;
/* passphrase */
A_UINT8 passphrase[WMI_MAX_PASN_PASSPHRASE_LEN];
/* comeback cookie length */
A_UINT32 cookie_len;
} wmi_rtt_pasn_peer_create_req_param;
@@ -47910,6 +48044,7 @@ typedef struct {
* The following TLV will follow this fixed_param TLV:
*
* wmi_rtt_pasn_auth_status_param pasn_auth_status_param[]
* A_UINT8 cookie[]
*/
} wmi_rtt_pasn_auth_status_cmd_fixed_param;
@@ -47921,6 +48056,14 @@ typedef struct {
A_UINT32 status;
/* Source address used for doing PASN authentication */
wmi_mac_addr source_mac_addr;
/* Authentication modes */
A_UINT32 akm;
/* pairwise cipher suite selector */
A_UINT32 cipher_suite;
/* PASN comeback timeout */
A_INT32 timeout_value;
/* comeback cookie length */
A_UINT32 cookie_len;
} wmi_rtt_pasn_auth_status_param;
@@ -49556,15 +49699,17 @@ typedef struct {
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_BACKGROUND_S 2
/* bits 3-15 are reserved for new non-interactive traffic types */
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_GAMING_M 0x00010000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_GAMING_S 16
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VOIP_M 0x00020000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VOIP_S 17
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VIDEO_CONF_M 0x00040000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VIDEO_CONF_S 18
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_WEB_BROWSING_M 0x00080000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_WEB_BROWSING_S 19
/* bits 20-31 are reserved for new interactive traffic types */
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_GAMING_M 0x00010000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_GAMING_S 16
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VOIP_M 0x00020000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VOIP_S 17
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VIDEO_CONF_M 0x00040000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VIDEO_CONF_S 18
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_WEB_BROWSING_M 0x00080000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_WEB_BROWSING_S 19
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_APERIODIC_BURST_TRAFFIC_1_M 0x00100000
#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_APERIODIC_BURST_TRAFFIC_1_S 20
/* bits 21-31 are reserved for new interactive traffic types */
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_active_traffic_map_cmd_fixed_param */
@@ -49895,6 +50040,95 @@ typedef struct {
};
} WMI_RSSI_ACCURACY_IMPROVEMENT_CAPABILITIES;
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_vbss_config_cmd_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
A_UINT32 vdev_id;
/** VBSS PEER MAC address */
wmi_mac_addr peer_mac_addr;
union {
A_UINT32 action__word32;
struct {
/** 3:0 -> Action (4 bits)
* 31:4 -> reserved (28 bits)
*/
A_UINT32
action: 4, /* refer to wmi_vbss_action */
reserved: 28;
};
};
/*
* The below TLVs follow this TLV in the WMI_VDEV_VBSS_CONFIG_CMDID msg:
* - wmi_vdev_vbss_peer_sn_info[];
* - wmi_vdev_vbss_peer_pn_info[];
*/
} wmi_vdev_vbss_config_cmd_fixed_param;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_vbss_peer_pn_info */
union {
A_UINT32 pn_ctxt_id__word32;
struct {
/** 3:0 unicast/mcast/beacon
* 31:4 reserved
*/
A_UINT32
pn_ctxt_id: 4,
reserved: 28;
};
};
A_UINT8 pn[16];
} wmi_vdev_vbss_peer_pn_info;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_vbss_peer_sn_info */
union {
A_UINT32 tid_num__ssn__word32;
struct {
/** 15:0 tid number
* 31:16 start sequence number
*/
A_UINT32
tid_num: 16,
ssn: 16;
};
};
/* The below TLVs follow this TLV in the WMI_VDEV_VBSS_CONFIG_EVENTID msg:
* - A_UINT32 scan_freq_list[];
* - wmi_vdev_vbss_config_event_fixed_param[];
*/
} wmi_vdev_vbss_peer_sn_info;
typedef enum {
WMI_VBSS_GET_PEER_CONTEXT = 0x1,
WMI_VBSS_SET_PEER_CONTEXT = 0x2,
} wmi_vbss_action;
#define WMI_VDEV_VBSS_GET_ACTION(action) WMI_GET_BITS(action, 0, 4)
#define WMI_VDEV_VBSS_SET_ACTION(action, value) WMI_SET_BITS(action, 0, 4, value)
#define WMI_VDEV_VBSS_PN_INFO_GET_PN_CTXT_ID(pn_ctxt_id) WMI_GET_BITS(pn_ctxt_id, 0, 4)
#define WMI_VDEV_VBSS_PN_INFO_SET_PN_CTXT_ID(pn_ctxt_id, value) WMI_SET_BITS(pn_ctxt_id, 0, 4, value)
#define WMI_VDEV_VBSS_SN_INFO_GET_tid_num(tid_num_ssn) WMI_GET_BITS(tid_num_ssn, 0, 16)
#define WMI_VDEV_VBSS_SN_INFO_SET_tid_num(action, value) WMI_SET_BITS(tid_num_ssn, 0, 16, value)
#define WMI_VDEV_VBSS_SN_INFO_GET_SSN(tid_num_ssn) WMI_GET_BITS(tid_num_ssn, 16, 16)
#define WMI_VDEV_VBSS_SN_INFO_SET_SSN(action, value) WMI_SET_BITS(tid_num_ssn, 16, 16, value)
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_vbss_config_event_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
A_UINT32 vdev_id;
/** PEER MAC address */
wmi_mac_addr peer_mac_addr;
/* The below TLVs follow this TLV in the WMI_VDEV_VBSS_CONFIG_EVENTID msg:
* - wmi_vdev_vbss_peer_sn_info[];
* - wmi_vdev_vbss_peer_pn_info[];
*/
} wmi_vdev_vbss_config_event_fixed_param;
/* ADD NEW DEFS HERE */

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -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_ 1560
#define __WMI_REVISION_ 1575
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work