mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-06 03:45:24 -04:00
Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api into android13-5.4-lahaina
LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0 * tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/fw-api: fw-api: CL 29789367 - update fw common interface files fw-api: CL 29778978 - update fw common interface files fw-api: CL 29754585 - update fw common interface files fw-api: CL 29754552 - update fw common interface files fw-api: CL 29734524 - update fw common interface files fw-api: CL 29712800 - update fw common interface files fw-api: CL 29678196 - update fw common interface files fw-api: CL 29659315 - update fw common interface files fw-api: CL 29622365 - update fw common interface files fw-api: CL 29596437 - update fw common interface files fw-api: CL 29574189 - update fw common interface files fw-api: CL 29563157 - update fw common interface files fw-api: CL 29563125 - update fw common interface files fw-api: CL 29527156 - update fw common interface files fw-api: CL 29499792 - update fw common interface files fw-api: CL 29498712 - update fw common interface files fw-api: CL 29497269 - update fw common interface files fw-api: CL 29496038 - update fw common interface files fw-api: CL 29495802 - update fw common interface files fw-api: CL 29472287 - update fw common interface files fw-api: CL 29472280 - update fw common interface files fw-api: CL 29472274 - update fw common interface files fw-api: CL 29449928 - update fw common interface files fw-api: CL 29449355 - update fw common interface files fw-api: CL 29412107 - update fw common interface files fw-api: CL 29384929 - update fw common interface files fw-api: CL 29372661 - update fw common interface files fw-api: CL 29372366 - update fw common interface files fw-api: CL 29370374 - update fw common interface files fw-api: CL 29370368 - update fw common interface files fw-api: CL 29347560 - update fw common interface files fw-api: CL 29346866 - update fw common interface files fw-api: CL 29346863 - update fw common interface files qca-cmn-fw : Add extra parameter in existing rate_upper_cap command fw-api: CL 29312190 - update fw common interface files fw-api: CL 29310832 - update fw common interface files fw-api: CL 29310378 - update fw common interface files fw-api: CL 29309854 - update fw common interface files fw-api: CL 29309837 - update fw common interface files fw-api: CL 29289452 - update fw common interface files fw-api: CL 29289444 - update fw common interface files fw-api: CL 29280684 - update fw common interface files fw-api: CL 29279982 - update fw common interface files fw-api: CL 29254060 - update fw common interface files fw-api: CL 29230158 - update fw common interface files fw-api: CL 29217789 - update fw common interface files fw-api: CL 29208203 - update fw common interface files fw-api: CL 29193068 - update fw common interface files fw-api: CL 29182219 - update fw common interface files fw-api: CL 29158320 - update fw common interface files fw-api: CL 29137988 - update fw common interface files fw-api: CL 29126604 - update fw common interface files fw-api: CL 29115376 - update fw common interface files fw-api: CL 29072944 - update fw common interface files fw-api: CL 29042940 - update fw common interface files fw-api: CL 29035093 - update fw common interface files fw-api: CL 29026260 - update fw common interface files fw-api: CL 29018064 - update fw common interface files fw-api: CL 29017022 - update fw common interface files fw-api: CL 29007944 - update fw common interface files fw-api: CL 28998846 - update fw common interface files fw-api: CL 28998301 - update fw common interface files fw-api: CL 28990820 - update fw common interface files fw-api: CL 28971130 - update fw common interface files fw-api: CL 28972929 - update fw common interface files fw-api: CL 28970374 - update fw common interface files fw-api: CL 28944690 - update fw common interface files fw-api: CL 28942439 - update fw common interface files fw-api: CL 28935775 - update fw common interface files fw-api: CL 28933869 - update fw common interface files fw-api: CL 28911997 - update fw common interface files fw-api: CL 28903851 - update fw common interface files fw-api: CL 28887056 - update fw common interface files fw-api: CL 28862777 - update fw common interface files fw-api: CL 28855140 - update fw common interface files fw-api: CL 28843692 - update fw common interface files fw-api: CL 28837244 - update fw common interface files fw-api: CL 28829747 - update fw common interface files fw-api: CL 28811455 - update fw common interface files fw-api: CL 28805911 - update fw common interface files fw-api: CL 28757294 - update fw common interface files fw-api: CL 28748436 - update fw common interface files fw-api: CL 28739491 - update fw common interface files fw-api: CL 28727084 - update fw common interface files fw-api: CL 28705885 - update fw common interface files fw-api: CL 28686055 - update fw common interface files fw-api: CL 28676060 - update fw common interface files fw-api: CL 28639946 - update fw common interface files fw-api: CL 28638758 - update fw common interface files fw-api: CL 28611293 - update fw common interface files fw-api: CL 28602565 - update fw common interface files fw-api: CL 28584645 - update fw common interface files fw-api: CL 28583592 - update fw common interface files Change-Id: If92c430fd46f708ab3642087b2c8f6ac655c4743
This commit is contained in:
commit
031cd7d112
10 changed files with 3821 additions and 532 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2012, 2014-2017, 2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2023, 2025 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -93,6 +93,11 @@ typedef enum {
|
|||
*/
|
||||
#define HTT_DATA3_MSG_SVC MAKE_SERVICE_ID(HTT_SERVICE_GROUP,2)
|
||||
|
||||
/* HTT_DATA4_MSG_SVC
|
||||
* H2T channel to transfer MSDU/MPDU queue info from host to target
|
||||
*/
|
||||
#define HTT_DATA4_MSG_SVC MAKE_SERVICE_ID(HTT_SERVICE_GROUP,3)
|
||||
|
||||
/* raw stream service (i.e. flash, tcmd, calibration apps) */
|
||||
#define HTC_RAW_STREAMS_SVC MAKE_SERVICE_ID(HTC_TEST_GROUP,0)
|
||||
|
||||
|
|
|
|||
|
|
@ -266,9 +266,14 @@
|
|||
* 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.
|
||||
* 3.139 Add CLASS_INFO_IDX field in MLO_R_PEER_MAP msg.
|
||||
* 3.140 Add H2T MPDUQ_AND_MSDUQ_INFO_HDR and MPDUQ_OF_MSDUQ_INFO defs.
|
||||
* 3.141 Add H2T HTT_AST_INFO for RxOLE.
|
||||
* 3.142 Add T2H GLOBAL_PEER_ID_UNMAP def, update H2T MPDUQ_OR_MSDUQ_INFO def.
|
||||
* 3.143 Add T2H HAPS msg def.
|
||||
*/
|
||||
#define HTT_CURRENT_VERSION_MAJOR 3
|
||||
#define HTT_CURRENT_VERSION_MINOR 138
|
||||
#define HTT_CURRENT_VERSION_MINOR 143
|
||||
|
||||
#define HTT_NUM_TX_FRAG_DESC 1024
|
||||
|
||||
|
|
@ -767,7 +772,10 @@ typedef enum {
|
|||
HTT_STATS_AST_ENTRY_TAG = 132, /* htt_ast_entry_tlv */
|
||||
HTT_STATS_TX_PDEV_BE_DL_MU_OFDMA_STATS_TAG = 133, /* htt_tx_pdev_dl_be_mu_ofdma_sch_stats_tlv, TOPIC=advanced */
|
||||
HTT_STATS_TX_PDEV_BE_UL_MU_OFDMA_STATS_TAG = 134, /* htt_tx_pdev_ul_be_mu_ofdma_sch_stats_tlv, TOPIC=advanced */
|
||||
HTT_STATS_TX_PDEV_RATE_STATS_BE_OFDMA_TAG = 135, /* htt_tx_pdev_rate_stats_be_ofdma_tlv */
|
||||
HTT_STATS_TX_PDEV_RATE_BE_BN_OFDMA_TAG = 135, /* htt_stats_tx_pdev_rate_be_bn_ofdma_tlv */
|
||||
/* retain deprecated name as an alias */
|
||||
HTT_STATS_TX_PDEV_RATE_STATS_BE_OFDMA_TAG =
|
||||
HTT_STATS_TX_PDEV_RATE_BE_BN_OFDMA_TAG,
|
||||
HTT_STATS_RX_PDEV_UL_MUMIMO_TRIG_BE_STATS_TAG = 136, /* htt_rx_pdev_ul_mumimo_trig_be_stats_tlv, TOPIC=advanced */
|
||||
HTT_STATS_TX_SELFGEN_BE_ERR_STATS_TAG = 137, /* htt_tx_selfgen_be_err_stats_tlv, TOPIC=advanced */
|
||||
HTT_STATS_TX_SELFGEN_BE_STATS_TAG = 138, /* htt_tx_selfgen_be_stats_tlv, TOPIC=advanced */
|
||||
|
|
@ -775,7 +783,10 @@ typedef enum {
|
|||
HTT_STATS_TX_PDEV_BE_UL_MU_MIMO_STATS_TAG = 140, /* htt_tx_pdev_be_ul_mu_mimo_sch_stats_tlv */
|
||||
HTT_STATS_RX_PDEV_BE_UL_MIMO_USER_STATS_TAG = 141, /* htt_rx_pdev_be_ul_mimo_user_stats_tlv */
|
||||
HTT_STATS_RX_RING_STATS_TAG = 142, /* htt_rx_fw_ring_stats_tlv_v */
|
||||
HTT_STATS_RX_PDEV_BE_UL_TRIG_STATS_TAG = 143, /* htt_rx_pdev_be_ul_trigger_stats_tlv, TOPIC=advanced */
|
||||
HTT_STATS_RX_PDEV_BE_BN_UL_TRIG_TAG = 143, /* htt_stats_rx_pdev_be_bn_ul_trig_tlv, TOPIC=advanced */
|
||||
/* retain deprecated name as an alias */
|
||||
HTT_STATS_RX_PDEV_BE_UL_TRIG_STATS_TAG =
|
||||
HTT_STATS_RX_PDEV_BE_BN_UL_TRIG_TAG,
|
||||
HTT_STATS_TX_PDEV_SAWF_RATE_STATS_TAG = 144, /* htt_tx_pdev_rate_stats_sawf_tlv, TOPIC=advanced */
|
||||
HTT_STATS_STRM_GEN_MPDUS_TAG = 145, /* htt_stats_strm_gen_mpdus_tlv_t */
|
||||
HTT_STATS_STRM_GEN_MPDUS_DETAILS_TAG = 146, /* htt_stats_strm_gen_mpdus_details_tlv_t */
|
||||
|
|
@ -844,6 +855,17 @@ typedef enum {
|
|||
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_PHY_PAPRD_PB_TAG = 212, /* htt_stats_phy_paprd_pb_tlv */
|
||||
HTT_STATS_HDS_PROF_STATS_TAG = 213, /* htt_stat_hds_prof_stats_tlv */
|
||||
HTT_STATS_TX_PDEV_MDSB_NUM_USERS_HISTOGRAM_TLV_TAG = 214, /* htt_stats_tx_pdev_mdsb_num_users_histogram_tlv */
|
||||
HTT_STATS_TX_PDEV_PENDING_SEQ_CNT_ON_SCHED_POST_HIST_TAG = 215, /* htt_stats_tx_pdev_pending_seq_cnt_on_sched_post_hist_tlv */
|
||||
HTT_STATS_TX_PDEV_PENDING_SEQ_CNT_IN_HWQ_HIST_TAG = 216, /* htt_stats_tx_pdev_pending_seq_cnt_in_hwq_hist_tlv */
|
||||
HTT_STATS_TX_PDEV_PENDING_SEQ_CNT_IN_TXQ_HIST_TAG = 217, /* htt_stats_tx_pdev_pending_seq_cnt_in_txq_hist_tlv */
|
||||
HTT_STATS_SCHED_TXQ_EARLY_COMPL_TAG = 218, /* htt_stats_sched_txq_early_compl_tlv */
|
||||
HTT_STATS_RX_PDEV_BN_UL_OFDMA_USER_TAG = 219, /* htt_stats_rx_pdev_bn_ul_ofdma_user_tlv */
|
||||
HTT_STATS_TX_SELFGEN_BN_ERR_TAG = 220, /* htt_stats_tx_selfgen_bn_err_tlv, TOPIC=advanced */
|
||||
HTT_STATS_TX_SELFGEN_BN_TAG = 221, /* htt_stats_tx_selfgen_bn_tlv, TOPIC=advanced */
|
||||
HTT_STATS_TX_SELFGEN_BN_SCHED_STATUS_TAG = 222, /* htt_stats_tx_selfgen_bn_sched_status_tlv, TOPIC=advanced */
|
||||
|
||||
HTT_STATS_MAX_TAG,
|
||||
} htt_stats_tlv_tag_t;
|
||||
|
|
@ -878,47 +900,50 @@ typedef htt_stats_tlv_tag_t htt_tlv_tag_t;
|
|||
/*=== host -> target messages ===============================================*/
|
||||
|
||||
enum htt_h2t_msg_type {
|
||||
HTT_H2T_MSG_TYPE_VERSION_REQ = 0x0,
|
||||
HTT_H2T_MSG_TYPE_TX_FRM = 0x1,
|
||||
HTT_H2T_MSG_TYPE_RX_RING_CFG = 0x2,
|
||||
HTT_H2T_MSG_TYPE_STATS_REQ = 0x3,
|
||||
HTT_H2T_MSG_TYPE_SYNC = 0x4,
|
||||
HTT_H2T_MSG_TYPE_AGGR_CFG = 0x5,
|
||||
HTT_H2T_MSG_TYPE_FRAG_DESC_BANK_CFG = 0x6,
|
||||
DEPRECATED_HTT_H2T_MSG_TYPE_MGMT_TX = 0x7, /* no longer used */
|
||||
HTT_H2T_MSG_TYPE_WDI_IPA_CFG = 0x8,
|
||||
HTT_H2T_MSG_TYPE_WDI_IPA_OP_REQ = 0x9,
|
||||
HTT_H2T_MSG_TYPE_AGGR_CFG_EX = 0xa, /* per vdev amsdu subfrm limit */
|
||||
HTT_H2T_MSG_TYPE_SRING_SETUP = 0xb,
|
||||
HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG = 0xc,
|
||||
HTT_H2T_MSG_TYPE_ADD_WDS_ENTRY = 0xd,
|
||||
HTT_H2T_MSG_TYPE_DELETE_WDS_ENTRY = 0xe,
|
||||
HTT_H2T_MSG_TYPE_RFS_CONFIG = 0xf,
|
||||
HTT_H2T_MSG_TYPE_EXT_STATS_REQ = 0x10,
|
||||
HTT_H2T_MSG_TYPE_PPDU_STATS_CFG = 0x11,
|
||||
HTT_H2T_MSG_TYPE_RX_FSE_SETUP_CFG = 0x12,
|
||||
HTT_H2T_MSG_TYPE_RX_FSE_OPERATION_CFG = 0x13,
|
||||
HTT_H2T_MSG_TYPE_CHAN_CALDATA = 0x14,
|
||||
HTT_H2T_MSG_TYPE_RX_FISA_CFG = 0x15,
|
||||
HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG = 0x16,
|
||||
HTT_H2T_MSG_TYPE_RX_FULL_MONITOR_MODE = 0x17,
|
||||
HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE = 0x18,
|
||||
HTT_H2T_MSG_TYPE_RXDMA_RXOLE_PPE_CFG = 0x19,
|
||||
HTT_H2T_MSG_TYPE_VDEVS_TXRX_STATS_CFG = 0x1a,
|
||||
HTT_H2T_MSG_TYPE_TX_MONITOR_CFG = 0x1b,
|
||||
HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ = 0x1c,
|
||||
HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ = 0x1d,
|
||||
HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ = 0x1e,
|
||||
HTT_H2T_MSG_TYPE_MSI_SETUP = 0x1f,
|
||||
HTT_H2T_MSG_TYPE_STREAMING_STATS_REQ = 0x20,
|
||||
HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP = 0x21,
|
||||
HTT_H2T_MSG_TYPE_VERSION_REQ = 0x0,
|
||||
HTT_H2T_MSG_TYPE_TX_FRM = 0x1,
|
||||
HTT_H2T_MSG_TYPE_RX_RING_CFG = 0x2,
|
||||
HTT_H2T_MSG_TYPE_STATS_REQ = 0x3,
|
||||
HTT_H2T_MSG_TYPE_SYNC = 0x4,
|
||||
HTT_H2T_MSG_TYPE_AGGR_CFG = 0x5,
|
||||
HTT_H2T_MSG_TYPE_FRAG_DESC_BANK_CFG = 0x6,
|
||||
DEPRECATED_HTT_H2T_MSG_TYPE_MGMT_TX = 0x7, /* no longer used */
|
||||
HTT_H2T_MSG_TYPE_WDI_IPA_CFG = 0x8,
|
||||
HTT_H2T_MSG_TYPE_WDI_IPA_OP_REQ = 0x9,
|
||||
HTT_H2T_MSG_TYPE_AGGR_CFG_EX = 0xa, /* per vdev amsdu subfrm limit */
|
||||
HTT_H2T_MSG_TYPE_SRING_SETUP = 0xb,
|
||||
HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG = 0xc,
|
||||
HTT_H2T_MSG_TYPE_ADD_WDS_ENTRY = 0xd,
|
||||
HTT_H2T_MSG_TYPE_DELETE_WDS_ENTRY = 0xe,
|
||||
HTT_H2T_MSG_TYPE_RFS_CONFIG = 0xf,
|
||||
HTT_H2T_MSG_TYPE_EXT_STATS_REQ = 0x10,
|
||||
HTT_H2T_MSG_TYPE_PPDU_STATS_CFG = 0x11,
|
||||
HTT_H2T_MSG_TYPE_RX_FSE_SETUP_CFG = 0x12,
|
||||
HTT_H2T_MSG_TYPE_RX_FSE_OPERATION_CFG = 0x13,
|
||||
HTT_H2T_MSG_TYPE_CHAN_CALDATA = 0x14,
|
||||
HTT_H2T_MSG_TYPE_RX_FISA_CFG = 0x15,
|
||||
HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG = 0x16,
|
||||
HTT_H2T_MSG_TYPE_RX_FULL_MONITOR_MODE = 0x17,
|
||||
HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE = 0x18,
|
||||
HTT_H2T_MSG_TYPE_RXDMA_RXOLE_PPE_CFG = 0x19,
|
||||
HTT_H2T_MSG_TYPE_VDEVS_TXRX_STATS_CFG = 0x1a,
|
||||
HTT_H2T_MSG_TYPE_TX_MONITOR_CFG = 0x1b,
|
||||
HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ = 0x1c,
|
||||
HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ = 0x1d,
|
||||
HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ = 0x1e,
|
||||
HTT_H2T_MSG_TYPE_MSI_SETUP = 0x1f,
|
||||
HTT_H2T_MSG_TYPE_STREAMING_STATS_REQ = 0x20,
|
||||
HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP = 0x21,
|
||||
HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_SOC_START_PRE_RESET = 0x22,
|
||||
HTT_H2T_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP = 0x23,
|
||||
HTT_H2T_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_RESP = 0x24,
|
||||
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,
|
||||
HTT_H2T_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP = 0x23,
|
||||
HTT_H2T_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_RESP = 0x24,
|
||||
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,
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR = 0x29,
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO = 0x2a,
|
||||
HTT_H2T_MSG_TYPE_AST_INFO = 0x2b,
|
||||
|
||||
/* keep this last */
|
||||
HTT_H2T_NUM_MSGS
|
||||
|
|
@ -11584,6 +11609,507 @@ PREPACK struct htt_h2t_mlo_latency_stats {
|
|||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MLO_LATENCY_STATS_NUM_OF_TX_PKT_S)); \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief host -> target msg to provide MSDUQ or MPDUQ for new TID in a peer
|
||||
*
|
||||
* MSG_TYPE => HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR
|
||||
*
|
||||
* @details
|
||||
* struct htt_h2t_mpduq_and_msduq_info_hdr:
|
||||
* HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR message is sent by the host to
|
||||
* target to tell how many mpduq and msduq info TLVs, in units of bytes,
|
||||
* are present in the htt payload
|
||||
* Example message contents:
|
||||
*-------------------------------------------------------------------
|
||||
*| htt_h2t_mpduq_and_msduq_info_hdr |
|
||||
*-------------------------------------------------------------------
|
||||
*| mpduq_info_tlv -> tid 0 , peer_id 1 |
|
||||
*-------------------------------------------------------------------
|
||||
*| mpduq_info_tlv -> tid 6, peer_id 1 |
|
||||
*-------------------------------------------------------------------
|
||||
*| msduq_info_tlv -> tid 0, peer_id 1 |
|
||||
*-------------------------------------------------------------------
|
||||
*| msduq_info_tlv -> tid 0, peer_id 1 |
|
||||
*-------------------------------------------------------------------
|
||||
*| msduq_info_tlv -> tid 6, peer_id 1 |
|
||||
*-------------------------------------------------------------------
|
||||
*
|
||||
* As shown in the above exampple, a single htt buffer can hold multiple mpduq
|
||||
* and msduq info tlvs, the info within the tlvs will indicate the peer and tid
|
||||
* to which they belong.
|
||||
*/
|
||||
|
||||
/* HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR */
|
||||
PREPACK struct htt_h2t_mpduq_and_msduq_info_hdr {
|
||||
A_UINT32 msg_type: 8, /* bits 7:0 */
|
||||
payload_size_bytes: 12, /* bits 19:8 */
|
||||
reserved_1a: 12; /* bits 31:20 */
|
||||
} POSTPACK;
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES_M 0x000FFF00
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES_S 8
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_AND_MSDUQ_INFO_HDR_PAYLOAD_SIZE_BYTES_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/**
|
||||
* @brief host -> target message to provide mpduq for a tid in a peer
|
||||
*
|
||||
* MSG_TYPE => HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO
|
||||
*
|
||||
* @details
|
||||
* struct htt_h2t_mpduq_or_msduq_info:
|
||||
* HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO message is sent by the host to
|
||||
* specify the configuration of new MPDUQ/MSDUQ for a tid in a peer.
|
||||
* This message supports the following configuration information:
|
||||
* 1. Info provided per MPDUQ:
|
||||
* upper 32 bit address of 256 byte aligned physical address for mpduq
|
||||
* mpduq number
|
||||
* pn address space
|
||||
* 2. Info provided per MSDUQ:
|
||||
* upper 32 bit address of 256 byte aligned physical address for msduq
|
||||
* msduq_number
|
||||
* service class id
|
||||
*
|
||||
* The message is interpreted as follows for mpduq type:
|
||||
* dword0 - b'7:0 - msg_type: Identifies msduq and mpduq info to FW
|
||||
* This will be set to 0x2a
|
||||
* (HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO)
|
||||
* b'12:8 - msduq_mpduq_type: Indicate whether this TLV is for
|
||||
* a MPDU queue or MSDU queue, and if for a MSDU queue,
|
||||
* what type.
|
||||
* For an MPDU queue, it will be fixed value of 30 based
|
||||
* on enum HTT_H2T_TID_MSDUQ_MPDUQ_TYPE.
|
||||
* b'16:13 - hw_link_id: Indicates which HW link the message is for.
|
||||
* This HW link ID is mainly relevant for split PHY
|
||||
* usecases to identify the correct link in same SOC.
|
||||
* dword1 - b'31:0 - mpduq_address_39_8: 256 byte aligned mpduq physical
|
||||
* address, since lowest octet is zero for 256 byte aligned
|
||||
* physical addresses just passing upper 32 bits of
|
||||
* 40 bit address
|
||||
* dword2 - b'11:0 – peer_id
|
||||
* b'16:12 – tid_num
|
||||
* b'23:17 – reserved
|
||||
* b'31:24 - pn_addr_32_39: Upper 8 bits of 40 bit pn physical address
|
||||
* Note that the mpduq_number is formed from the combination of
|
||||
* peer_id (in bits 11:0)
|
||||
* tid_num (in bits 16:12)
|
||||
* msduq_mpduq_type (in bits 21:17)
|
||||
* dword3 - b'31:0 - pn_addr_0_31: Lower 32 bits of 40 bit pn physical address
|
||||
* Additional reserved dwords for future use cases
|
||||
*
|
||||
*
|
||||
* The message is interpreted as follows for any msduq type:
|
||||
* dword0 - b'7:0 - msg_type: Identifies msduq info to fw
|
||||
* This will be set to 0x2A
|
||||
* (HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO)
|
||||
* b'12:8 - msduq_mpduq_type: type of the msduq based on
|
||||
* enum HTT_H2T_TID_MSDUQ_MPDUQ_TYPE
|
||||
* b'16:13 - hw_link_id: Indicates which HW link the message is
|
||||
* intended for.
|
||||
* This HW link ID is mainly relevant for split PHY
|
||||
* usecases to identify the correct link in same SOC.
|
||||
* dword1 - b'11:0 – peer_id
|
||||
* b'16:12 – tid_num
|
||||
* b'23:17 – reserved
|
||||
* b'31:24 - svc_class_id : service class id of the msduq
|
||||
* Note that the tx_msduq_number is formed from the combination of
|
||||
* peer_id (in bits 11:0)
|
||||
* tid_num (in bits 16:12)
|
||||
* msduq_mpduq_type (in bits 21:17)
|
||||
* dword2 - b'31:0 - msduq_address_39_8: 256 byte aligned msduq physical
|
||||
* address, since lowest octet is zero for 256 byte aligned
|
||||
* addresses just passing upper 32 bits of 40 bit address
|
||||
* Additional reserved dwords for future use cases
|
||||
*/
|
||||
|
||||
/*
|
||||
* Enum describes the various msduq/mpduq types,
|
||||
* First 8 types correspond to the standard msduq types for data
|
||||
* Next come custom flows for specific purposes
|
||||
* enum 30 is reserved for mpduq type
|
||||
*/
|
||||
typedef enum {
|
||||
HTT_H2T_TID_MSDUQ_NONUDP, /* 0 */
|
||||
HTT_H2T_TID_MSDUQ_UDP, /* 1 */
|
||||
HTT_H2T_TID_MSDUQ_CUSTOM_0, /* 2 */
|
||||
HTT_H2T_TID_MSDUQ_CUSTOM_1, /* 3 */
|
||||
HTT_H2T_TID_MSDUQ_CUSTOM_2, /* 4 */
|
||||
HTT_H2T_TID_MSDUQ_CUSTOM_3, /* 5 */
|
||||
HTT_H2T_TID_MSDUQ_CUSTOM_4, /* 6 */
|
||||
HTT_H2T_TID_MSDUQ_CUSTOM_5, /* 7 */
|
||||
|
||||
HTT_H2T_TID_MISC_MSDUQ_TYPE_START, /* 8 */
|
||||
HTT_H2T_TID_MSDUQ_HOL = HTT_H2T_TID_MISC_MSDUQ_TYPE_START, /* also 8 */
|
||||
HTT_H2T_TID_MSDUQ_MCAST, /* 9 */
|
||||
HTT_H2T_TID_MSDUQ_FAST_ROAMING, /* 10 */
|
||||
|
||||
HTT_H2T_TID_MSDUQ_DATA_TYPE_END = 29, /* 29 */
|
||||
HTT_H2T_TID_MPDUQ_TYPE, /* 30 */
|
||||
HTT_H2T_TID_MSDUQ_MPDUQ_TYPE_END, /* 31 */
|
||||
} HTT_H2T_TID_MSDUQ_MPDUQ_TYPE;
|
||||
|
||||
/*
|
||||
* Enum to denote tid nums that can be used
|
||||
* first 8 {0 - 7} numbers correspond to data access category
|
||||
* {8 - 15} are for user defined usecases
|
||||
* 16 is used to denote the non-qos tid
|
||||
*/
|
||||
typedef enum {
|
||||
HTT_H2T_DEFAULT_TID_NUM = 0,
|
||||
HTT_H2T_MAX_VALID_DATA_TID_NUM = 7,
|
||||
HTT_H2T_NON_QOS_TID_NUM = 16,
|
||||
HTT_H2T_MAX_TID_NUM = 31,
|
||||
} H2T_TX_TID;
|
||||
|
||||
/* HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO */
|
||||
PREPACK struct htt_h2t_mpduq_or_msduq_info {
|
||||
A_UINT32 msg_type: 8, /* bits 7:0 */
|
||||
msduq_mpduq_type: 5, /* bits 12:8 */
|
||||
hw_link_id: 4, /* bits 16:13 */
|
||||
reserved0: 15; /* bits 31:17 */
|
||||
|
||||
union {
|
||||
struct {
|
||||
A_UINT32 mpduq_address_39_8; /* bits 31:0 */
|
||||
A_UINT32 mpduq_number: 24, /* bits 23:0 */
|
||||
pn_addr_39_32: 8; /* bits 31:24 */
|
||||
A_UINT32 pn_addr_31_0; /* bits 31:0 */
|
||||
A_UINT32 reserved1a; /* bits 31:0 */
|
||||
A_UINT32 reserved1b; /* bits 31:0 */
|
||||
A_UINT32 reserved1c; /* bits 31:0 */
|
||||
A_UINT32 reserved1d; /* bits 31:0 */
|
||||
A_UINT32 reserved1e; /* bits 31:0 */
|
||||
A_UINT32 reserved1f; /* bits 31:0 */
|
||||
};
|
||||
struct {
|
||||
A_UINT32 tx_msduq_number: 24, /* bits 23:0 */
|
||||
svc_class_id: 8; /* bits 31:24 */
|
||||
A_UINT32 msduq_address_39_8; /* bits 31:0 */
|
||||
A_UINT32 reserved2a; /* bits 31:0 */
|
||||
A_UINT32 reserved2b; /* bits 31:0 */
|
||||
A_UINT32 reserved2c; /* bits 31:0 */
|
||||
A_UINT32 reserved2d; /* bits 31:0 */
|
||||
A_UINT32 reserved2e; /* bits 31:0 */
|
||||
A_UINT32 reserved2f; /* bits 31:0 */
|
||||
A_UINT32 reserved2g; /* bits 31:0 */
|
||||
};
|
||||
};
|
||||
} POSTPACK;
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE_M 0x00001F00
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE_S 8
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_MSDUQ_MPDUQ_TYPE_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID_M 0x0001E000
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID_S 13
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_INFO_HW_LINK_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID_M 0x00000FFF
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID_S 0
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_PEER_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM_M 0x0001F000
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM_S 12
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_TID_NUM_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE_M 0x003E0000
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE_S 17
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_OR_MSDUQ_NUMBER_MSDUQ_MPDUQ_TYPE_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8_M 0xFFFFFFFF
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8_S 0
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_ADDRESS_39_8_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_NUMBER_M 0x00FFFFFF
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_NUMBER_S 0
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_NUMBER_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_MPDUQ_INFO_MPDUQ_NUMBER_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_NUMBER_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_NUMBER_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_NUMBER, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_INFO_MPDUQ_NUMBER_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32_M 0xFF000000
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32_S 24
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_39_32_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0_M 0xFFFFFFFF
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0_S 0
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0_S)
|
||||
#define HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MPDUQ_INFO_PN_ADDRESS_31_0_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER_M 0x00FFFFFF
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER_S 0
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER_S)
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MSDUQ_INFO_TX_MSDUQ_NUMBER_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID_M 0xFF000000
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID_S 24
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID_S)
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MSDUQ_INFO_SVC_CLASS_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8_M 0xFFFFFFFF
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8_S 0
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8_GET(_var) \
|
||||
(((_var) & HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8_M) >> \
|
||||
HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8_S)
|
||||
#define HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_MSG_TYPE_MSDUQ_INFO_MSDUQ_ADDRESS_39_8_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/*
|
||||
* @brief host -> target HTT_AST_INFO message
|
||||
*
|
||||
* MSG_TYPE => HTT_H2T_MSG_TYPE_AST_INFO
|
||||
*
|
||||
* The message would appear as follows:
|
||||
* |31 24|23 21|20|19|18|17|16|15 8|7 0|
|
||||
* |--------------+-------------------------------------+-------------------|
|
||||
* |ast_max_search| ast_table_size | msg_type |
|
||||
* |------------------------------------------------------------------------|
|
||||
* | ast_base_addr_31_0 |
|
||||
* |------------------------------------------------------------------------|
|
||||
* | ase_hash_key1 |
|
||||
* |------------------------------------------------------------------------|
|
||||
* | ase_hash_key2 |
|
||||
* |------------------------------------------------------------------------|
|
||||
* | ase_hash_key3 |
|
||||
* |--------------------+--+--+--+--+--+----------------+-------------------|
|
||||
* | reserved |L |K |J |I |H | tmo |ast_base_addr_39_32|
|
||||
* |--------------------+--+--+--+--+--+----------------+-------------------|
|
||||
*
|
||||
* The message is interpreted as follows:
|
||||
* dword0 b'7:0 - msg_type
|
||||
* 0 b'23:8 - ast table size
|
||||
* b'31:24 - ast max search
|
||||
* dword1 - b'31:0 - ast table base address
|
||||
* dword2 - b'31:0 - ase hash key 1
|
||||
* dword3 - b'31:0 - ase hash key 2
|
||||
* dword4 - b'31:0 - ase hash key 3
|
||||
* dword5 - b'7:0 - ast_base_addr_39_32
|
||||
* b'15:8 - ast_timeout_threshold
|
||||
* b'16 - H - ast cache disable knob
|
||||
* b'17 - I - ast cache faluires disable knob
|
||||
* b'18 - J - ast cache cmd read bypass
|
||||
* Bypassing the reads from memory when an entry is not
|
||||
* found in cache, in case of full cache commands,
|
||||
* write back or invalidate commands.
|
||||
* b'19 - K - ast cache write back fx
|
||||
* If this fix is disabled, then any write back command
|
||||
* for a cache line will also lead to invalidation of
|
||||
* that cache line.
|
||||
* b'20 - L - ast cache only entry command fix
|
||||
* If enabled, a new cache entry will always be created
|
||||
* for requests for which matching data was found
|
||||
* neither in cache nor in memory.
|
||||
*/
|
||||
PREPACK struct htt_ast_info_t {
|
||||
A_UINT32 msg_type: 8,
|
||||
ast_table_size: 16, /* number of entries in AST */
|
||||
ast_max_search: 8;
|
||||
A_UINT32 ast_base_addr; /* base address of the AST table */
|
||||
A_UINT32 ase_hash_key1;
|
||||
A_UINT32 ase_hash_key2;
|
||||
A_UINT32 ase_hash_key3;
|
||||
A_UINT32 ast_base_addr_39_32: 8, /* 7:0 */
|
||||
ast_timeout_threshold: 8, /* 15:8 */
|
||||
ast_cache_disable: 1, /* 16 */
|
||||
ast_cache_failures_disable: 1, /* 17 */
|
||||
ast_cache_cmd_read_bypass_dis: 1, /* 18 */
|
||||
ast_cache_write_back_fix_dis: 1, /* 19 */
|
||||
ast_cache_only_entry_cmd_fix_dis: 1, /* 20 */
|
||||
reserved: 11;
|
||||
} POSTPACK;
|
||||
|
||||
|
||||
#define HTT_AST_INFO_SZ (sizeof(struct htt_ast_info_t))
|
||||
|
||||
/* DWORD0 */
|
||||
#define HTT_AST_INFO_AST_TABLE_SIZE_M 0x00ffff00
|
||||
#define HTT_AST_INFO_AST_TABLE_SIZE_S 8
|
||||
#define HTT_AST_INFO_AST_TABLE_SIZE_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_TABLE_SIZE_M) >> \
|
||||
HTT_AST_INFO_AST_TABLE_SIZE_S)
|
||||
#define HTT_AST_INFO_AST_TABLE_SIZE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_TABLE_SIZE, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_TABLE_SIZE__S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_AST_INFO_AST_MAX_SEARCH_M 0xff000000
|
||||
#define HTT_AST_INFO_AST_MAX_SEARCH_S 24
|
||||
#define HTT_AST_INFO_AST_MAX_SEARCH_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_MAX_SEARCH_M) >> \
|
||||
HTT_AST_INFO_AST_MAX_SEARCH_S)
|
||||
#define HTT_AST_INFO_AST_MAX_SEARCH_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_MAX_SEARCH, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_MAX_SEARCH_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* DWORD5 */
|
||||
|
||||
#define HTT_AST_INFO_AST_BASE_ADDR_39_32_M 0x000000ff
|
||||
#define HTT_AST_INFO_AST_BASE_ADDR_39_32_S 0
|
||||
#define HTT_AST_INFO_AST_BASE_ADDR_39_32_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_BASE_ADDR_39_32_M) >> \
|
||||
HTT_AST_INFO_AST_BASE_ADDR_39_32_S)
|
||||
#define HTT_AST_INFO_AST_BASE_ADDR_39_32_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_BASE_ADDR_39_32, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_BASE_ADDR_39_32_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_AST_INFO_AST_TIMEOUT_THRESHOLD_M 0x0000ff00
|
||||
#define HTT_AST_INFO_AST_TIMEOUT_THRESHOLD_S 8
|
||||
#define HTT_AST_INFO_AST_TIMEOUT_THRESHOLD_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_TIMEOUT_THRESHOLD_M) >> \
|
||||
HTT_AST_INFO_AST_TIMEOUT_THRESHOLD_S)
|
||||
#define HTT_AST_INFO_AST_TIMEOUT_THRESHOLD_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_TIMEOUT_THRESHOLD, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_TIMEOUT_THRESHOLD_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_AST_INFO_AST_CACHE_DISABLE_M 0x00010000
|
||||
#define HTT_AST_INFO_AST_CACHE_DISABLE_s 16
|
||||
#define HTT_AST_INFO_AST_CACHE_DISABLE_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_CACHE_DISABLE_M) >> \
|
||||
HTT_AST_INFO_AST_CACHE_DISABLE_s)
|
||||
#define HTT_AST_INFO_AST_CACHE_DISABLE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_CACHE_DISABLE, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_CACHE_DISABLE_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE_M 0x00020000
|
||||
#define HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE_s 17
|
||||
#define HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE_M) >> \
|
||||
HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE_s)
|
||||
#define HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_CACHE_FALUIRES_DISABLE_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS_M 0x00040000
|
||||
#define HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS_s 18
|
||||
#define HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS_M) >> \
|
||||
HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS_s)
|
||||
#define HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_CACHE_CMD_READ_BYPASS_DIS_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS_M 0x00080000
|
||||
#define HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS_s 19
|
||||
#define HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS_M) >> \
|
||||
HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS_s)
|
||||
#define HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_CACHE_WRITE_BACK_FIX_DIS_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS_M 0x00100000
|
||||
#define HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS_s 20
|
||||
#define HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS_GET(_var) \
|
||||
(((_var) & HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS_M) >> \
|
||||
HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS_s)
|
||||
#define HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS, _val); \
|
||||
((_var) |= ((_val) << HTT_AST_INFO_AST_CACHE_ONLY_ENTRY_CMD_FIX_DIS_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
|
||||
/*=== target -> host messages ===============================================*/
|
||||
|
|
@ -11659,6 +12185,8 @@ enum htt_t2h_msg_type {
|
|||
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_GLOBAL_PEER_ID_UNMAP = 0x3e,
|
||||
HTT_T2H_MSG_TYPE_HAPS = 0x3f,
|
||||
|
||||
|
||||
HTT_T2H_MSG_TYPE_TEST,
|
||||
|
|
@ -14661,40 +15189,41 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
|
|||
* with, so that the host can use that MLO peer ID to determine which peer
|
||||
* transmitted the rx frame.
|
||||
*
|
||||
* |31 |29 27|26 24|23 20|19 17|16|15 8|7 0|
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |RSVD | PRC |NUMLINK| MLO peer ID | msg type |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* | MAC addr 3 | MAC addr 2 | MAC addr 1 | MAC addr 0 |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* | RSVD_16_31 | MAC addr 5 | MAC addr 4 |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |CACHE_SET_NUM| TIDMASK |CHIPID|V| Primary TCL AST IDX 0 |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |CACHE_SET_NUM| TIDMASK |CHIPID|V| Primary TCL AST IDX 1 |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |CACHE_SET_NUM| TIDMASK |CHIPID|V| Primary TCL AST IDX 2 |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |RSVD |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |RSVD |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* | htt_tlv_hdr_t |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |RSVD_27_31 |CHIPID| VDEVID | SW peer ID |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* | htt_tlv_hdr_t |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |RSVD_27_31 |CHIPID| VDEVID | SW peer ID |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* | htt_tlv_hdr_t |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |RSVD_27_31 |CHIPID| VDEVID | SW peer ID |
|
||||
* |-------------------------------------------------------------------------|
|
||||
* |31 |29 27|26|25|24|23 20|19 17|16|15 8|7 0|
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |RSVD | PRC | NUMLINK| MLO peer ID | msg type |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* | MAC addr 3 | MAC addr 2 | MAC addr 1 | MAC addr 0 |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* | RSVD_25_31 |CV| CLASS_INFO_IDX | MAC addr 5 | MAC addr 4 |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |CACHE_SET_NUM| TIDMASK |CHIPID|V| Primary TCL AST IDX 0 |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |CACHE_SET_NUM| TIDMASK |CHIPID|V| Primary TCL AST IDX 1 |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |CACHE_SET_NUM| TIDMASK |CHIPID|V| Primary TCL AST IDX 2 |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |RSVD |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |RSVD |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* | htt_tlv_hdr_t |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |RSVD_27_31 | CHIPID | VDEVID | SW peer ID |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* | htt_tlv_hdr_t |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |RSVD_27_31 | CHIPID | VDEVID | SW peer ID |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* | htt_tlv_hdr_t |
|
||||
* |--------------------------------------------------------------------------|
|
||||
* |RSVD_27_31 | CHIPID | VDEVID | SW peer ID |
|
||||
* |--------------------------------------------------------------------------|
|
||||
*
|
||||
* Where:
|
||||
* PRC - Primary REO CHIPID - 3 Bits Bit24,25,26
|
||||
* NUMLINK - NUM_LOGICAL_LINKS - 3 Bits Bit27,28,29
|
||||
* CV - CLASSIFY_INFO_IDX_VALID - 1 Bit Bit24
|
||||
* V (valid) - 1 Bit Bit17
|
||||
* CHIPID - 3 Bits
|
||||
* TIDMASK - 8 Bits
|
||||
|
|
@ -14734,6 +15263,16 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
|
|||
* Purpose: Identifies which peer node the peer ID is for.
|
||||
* Value: upper 2 bytes of peer node's MAC address
|
||||
*
|
||||
* - CLASS_INFO_IDX
|
||||
* Bits 23:16
|
||||
* Purpose: Classify info index assists TCL-L Block in certain families of
|
||||
* WLAN chips to start finding the flow from the corresponding
|
||||
* entry in the FLOW LOOK UP TABLE in MLO case
|
||||
* - CV (CLASS_INFO_IDX_VALID)
|
||||
* Bit 24
|
||||
* Purpose: if set indicates that the CLASS_INFO_IDX is valid,
|
||||
* else ignore the value reported
|
||||
*
|
||||
* - PRIMARY_TCL_AST_IDX
|
||||
* Bits 15:0
|
||||
* Purpose: Primary TCL AST index for this peer.
|
||||
|
|
@ -14805,6 +15344,11 @@ typedef enum {
|
|||
#define HTT_RX_MLO_PEER_MAP_MAC_ADDR_U16_M 0x0000ffff
|
||||
#define HTT_RX_MLO_PEER_MAP_MAC_ADDR_U16_S 0
|
||||
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_M 0x00ff0000
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_S 16
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_M 0x01000000
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_S 24
|
||||
|
||||
#define HTT_RX_MLO_PEER_MAP_PRIMARY_AST_INDEX_M 0x0000ffff
|
||||
#define HTT_RX_MLO_PEER_MAP_PRIMARY_AST_INDEX_S 0
|
||||
#define HTT_RX_MLO_PEER_MAP_AST_INDEX_VALID_FLAG_M 0x00010000
|
||||
|
|
@ -14853,6 +15397,30 @@ typedef enum {
|
|||
#define HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_GET(word) \
|
||||
(((word) & HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_M) >> HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_S)
|
||||
|
||||
#define HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID, value); \
|
||||
(word) |= (value) << HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_GET(word) \
|
||||
(((word) & HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_M) >> HTT_RX_MLO_PEER_PRIMARY_REO_CHIP_ID_S)
|
||||
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX, value); \
|
||||
(word) |= (value) << HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_GET(word) \
|
||||
(((word) & HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_M) >> HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_S)
|
||||
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG, value); \
|
||||
(word) |= (value) << HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_S; \
|
||||
} while (0)
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_GET(word) \
|
||||
(((word) & HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_M) >> HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_S)
|
||||
|
||||
#define HTT_RX_MLO_PEER_MAP_PRIMARY_AST_INDEX_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_RX_MLO_PEER_MAP_PRIMARY_AST_INDEX, value); \
|
||||
|
|
@ -14935,6 +15503,8 @@ typedef enum {
|
|||
|
||||
|
||||
#define HTT_RX_MLO_PEER_MAP_MAC_ADDR_OFFSET 4 /* bytes */
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_OFFSET 8 /* bytes */
|
||||
#define HTT_RX_MLO_PEER_MAP_CLASSIFY_INFO_IDX_VALID_FLAG_OFFSET 8 /* bytes */
|
||||
#define HTT_RX_MLO_PEER_MAP_PRIMARY_AST_INDEX_0_OFFSET 12 /* bytes */
|
||||
#define HTT_RX_MLO_PEER_MAP_PRIMARY_AST_INDEX_1_OFFSET 16 /* bytes */
|
||||
#define HTT_RX_MLO_PEER_MAP_PRIMARY_AST_INDEX_2_OFFSET 20 /* bytes */
|
||||
|
|
@ -23449,4 +24019,177 @@ PREPACK struct htt_t2h_mlo_latency_req_t {
|
|||
} while (0)
|
||||
|
||||
|
||||
/* MSG_TYPE => HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP
|
||||
*
|
||||
* The following diagram shows the format of the global peer unmap message sent
|
||||
* from the target to the host. This message is used to send unmap event to host
|
||||
* after tid and msduq/mpduq cleanup in FW, host cleans up msduq/mpduq based on
|
||||
* message.
|
||||
*
|
||||
* |31 24|23 20|19 8|7 0|
|
||||
* |-----------------------------------------------------------------------|
|
||||
* | reserved | hw_link_id | global_peer_id | msg type |
|
||||
* |-----------------------------------------------------------------------|
|
||||
* @details
|
||||
* struct htt_t2h_global_peer_id_unmap_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 0x3e
|
||||
* (HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP)
|
||||
* b'19:8 - global_peer_id : global peer id assigned by host
|
||||
* b'23:20 - hw_link_id : hw link id for which unmap is being sent
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP */
|
||||
PREPACK struct htt_t2h_global_peer_id_unmap_t {
|
||||
A_UINT32 msg_type: 8, /* bits 7:0 */
|
||||
global_peer_id: 12, /* bits 19:8 */
|
||||
hw_link_id: 4, /* bits 23:20 */
|
||||
reserved: 8; /* bits 31:16 */
|
||||
} POSTPACK;
|
||||
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID_M 0x000FFF00
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID_S 8
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID_GET(_var) \
|
||||
(((_var) & HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID_M) >> \
|
||||
HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID_S)
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_GLOBAL_PEER_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID_M 0x00F00000
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID_S 20
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID_GET(_var) \
|
||||
(((_var) & HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID_M) >> \
|
||||
HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID_S)
|
||||
#define HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_T2H_MSG_TYPE_GLOBAL_PEER_ID_UNMAP_HW_LINK_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/*
|
||||
* @brief target -> pause/unpause host tx queues based on FW indication
|
||||
* MSG_TYPE => HTT_T2H_MSG_TYPE_HAPS
|
||||
*
|
||||
* @details * Header fields:
|
||||
*
|
||||
* |31 22|21 20|19 16|15 8|7 0|
|
||||
* |---------+-------------+-----------+------------------+---------------|
|
||||
* | RSVD |time_type |action_code| vdev_id | msg type |
|
||||
* |----------------------------------------------------------------------|
|
||||
* | time_high |
|
||||
* |----------------------------------------------------------------------|
|
||||
* | time_low |
|
||||
* |----------------------------------------------------------------------|
|
||||
*
|
||||
* dword0 - b'7:0 - msg_type: This will be set to
|
||||
* 0x3f (HTT_T2H_MSG_TYPE_HAPS)
|
||||
* b'15:8 - vdev_id
|
||||
* b'19:16 - action_code (HTT_T2H_HAPS_ACTION_CODE):
|
||||
* b'0000: Pause
|
||||
* b'0001: Pause with One-Shot Unpause
|
||||
* b'0010: Unpause
|
||||
* values 3-15: reserved
|
||||
* b'21:20 - time_type
|
||||
* b'31:22 - rsvd
|
||||
* reverse action_code at time specified below
|
||||
* (units are specified by the type_type bitfield)
|
||||
* dword1 - b'31:0 uint32_t time_high
|
||||
* dword2 - b'31:0 uint32_t time_low
|
||||
*/
|
||||
typedef enum {
|
||||
HTT_T2H_HAPS_ACTION_PAUSE = 0x00,
|
||||
HTT_T2H_HAPS_ACTION_PAUSE_WITH_ONESHOT_UNPAUSE = 0x01,
|
||||
HTT_T2H_HAPS_ACTION_UNPAUSE = 0x02,
|
||||
} HTT_T2H_HAPS_ACTION_CODE;
|
||||
|
||||
typedef enum {
|
||||
HTT_T2H_HAPS_TIME_TYPE_HOST_QTIME = 0x00,
|
||||
HTT_T2H_HAPS_TIME_TYPE_TSF = 0x01,
|
||||
} HTT_T2H_HAPS_TIME_TYPE;
|
||||
|
||||
PREPACK struct htt_t2h_power_state_info {
|
||||
uint32_t msg_type : 8, /* [7:0] */
|
||||
vdev_id : 8, /* [15:8] */
|
||||
action_code : 4, /* [19:16] */
|
||||
time_type: 2, /* [21:20] */
|
||||
rsvd: 10; /* [31:22] */
|
||||
uint32_t time_low;
|
||||
uint32_t time_high;
|
||||
} POSTPACK;
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_SIZE (sizeof(struct htt_t2h_power_state_info))
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID_M 0x0000FF00
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID_S 8
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID_GET(_var) \
|
||||
(((_var) & HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID_M) >> \
|
||||
HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID_S)
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_T2H_POWER_STATE_INFO_HTT_VDEV_ID_S));\
|
||||
} while (0)
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE_M 0x000F0000
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE_S 16
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE_GET(_var) \
|
||||
(((_var) & HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE_M) >> \
|
||||
HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE_S)
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE, _val); \
|
||||
((_var) |= ((_val) << HTT_T2H_POWER_STATE_INFO_HTT_ACTION_CODE_S));\
|
||||
} while (0)
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE_M 0x00300000
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE_S 20
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE_GET(_var) \
|
||||
(((_var) & HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE_M) >> \
|
||||
HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE_S)
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE, _val); \
|
||||
((_var) |= ((_val) << HTT_T2H_POWER_STATE_INFO_HTT_TIME_TYPE_S));\
|
||||
} while (0)
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH_M 0xFFFFFFFF
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH_S 0
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH_GET(_var) \
|
||||
(((_var) & HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH_M) >> \
|
||||
HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH_S)
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH, _val); \
|
||||
((_var) |= ((_val) << HTT_T2H_POWER_STATE_INFO_HTT_TIME_HIGH_S));\
|
||||
} while (0)
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW_M 0xFFFFFFFF
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW_S 0
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW_GET(_var) \
|
||||
(((_var) & HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW_M) >> \
|
||||
HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW_S)
|
||||
|
||||
#define HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW, _val); \
|
||||
((_var) |= ((_val) << HTT_T2H_POWER_STATE_INFO_HTT_TIME_LOW_S));\
|
||||
} while (0)
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -707,6 +707,58 @@ typedef enum HTT_PPDU_STATS_SPATIAL_REUSE HTT_PPDU_STATS_SPATIAL_REUSE;
|
|||
(((_val) & HTT_PPDU_STATS_COMMON_TRIG_COOKIE_M) >> \
|
||||
HTT_PPDU_STATS_COMMON_TRIG_COOKIE_S)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE_M 0x00000001
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE_S 0
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE_M) >> \
|
||||
HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE_S)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_HTT_SEQ_TYPE_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER_M 0x00000002
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER_S 1
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER_M) >> \
|
||||
HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER_S)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BASIC_TRIGGER_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER_M 0x00000004
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER_S 2
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER_M) >> \
|
||||
HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER_S)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_IS_MANUAL_ULOFDMA_TRIGGER_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER_M 0x00000008
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER_S 3
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER_M) >> \
|
||||
HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER_S)
|
||||
|
||||
#define HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_IS_COMBINED_UL_BSRP_TRIGGER_S)); \
|
||||
} while (0)
|
||||
|
||||
enum HTT_SEQ_TYPE {
|
||||
WAL_PPDU_SEQ_TYPE = 0,
|
||||
HTT_PPDU_SEQ_TYPE = 1,
|
||||
|
|
@ -902,26 +954,26 @@ typedef struct {
|
|||
* HTT_PPDU_SEQ_TYPE then decoder should interpret the
|
||||
* seq type as HTT_PPDU_STATS_SEQ_TYPE.
|
||||
* htt_seq_type field will be set to HTT_PPDU_SEQ_TYPE in
|
||||
* firmware versions where this field is defined.
|
||||
* BIT [31: 1] - reserved
|
||||
* BIT [1 : 1] - is_combined_ul_basic_trigger - Flag to indicate if a
|
||||
* given UL OFDMA/MU-MIMO Basic trigger is sent combined
|
||||
* as part of existing DL data sequence.
|
||||
* BIT [2 : 2] - is_manual_ulofdma_trigger - Flag to indicate if a
|
||||
* given UL OFDMA trigger is manually triggered from the Host.
|
||||
* BIT [3 : 3] - is_combined_ul_bsrp_trigger - Flag to indicate if a
|
||||
* given UL BSRP trigger is sent combined as part of
|
||||
* an existing DL/UL data sequence
|
||||
* BIT [31: 4] - reserved
|
||||
*/
|
||||
union {
|
||||
A_UINT32 reserved__htt_seq_type;
|
||||
struct {
|
||||
A_UINT32 htt_seq_type: 1,
|
||||
reserved3: 31;
|
||||
is_combined_ul_basic_trigger: 1,
|
||||
is_manual_ulofdma_trigger: 1,
|
||||
is_combined_ul_bsrp_trigger: 1,
|
||||
reserved3: 28;
|
||||
};
|
||||
};
|
||||
/* is_manual_ulofdma_trigger:
|
||||
* Flag to indicate if a given UL OFDMA trigger is manually triggered
|
||||
* from the Host
|
||||
*/
|
||||
A_UINT32 is_manual_ulofdma_trigger;
|
||||
/* is_combined_ul_bsrp_trigger:
|
||||
* Flag to indicate if a given UL BSRP trigger is sent combined as
|
||||
* 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;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -161,6 +161,18 @@ typedef enum {
|
|||
MODE_11BE_EHT40_2G = 32, /* For WIN */
|
||||
#endif
|
||||
|
||||
#if defined(SUPPORT_11BN) && SUPPORT_11BN
|
||||
MODE_11BN_UHR20 = 33,
|
||||
MODE_11BN_UHR40 = 34,
|
||||
MODE_11BN_UHR80 = 35,
|
||||
MODE_11BN_UHR80_80 = 36,
|
||||
MODE_11BN_UHR160 = 37,
|
||||
MODE_11BN_UHR160_160 = 38,
|
||||
MODE_11BN_UHR320 = 39,
|
||||
MODE_11BN_UHR20_2G = 40,
|
||||
MODE_11BN_UHR40_2G = 41,
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MODE_UNKNOWN should not be used within the host / target interface.
|
||||
* Thus, it is permissible for MODE_UNKNOWN to be conditionally-defined,
|
||||
|
|
@ -262,6 +274,20 @@ typedef enum {
|
|||
((mode) == MODE_11BE_EHT40_2G))
|
||||
#endif /* SUPPORT_11BE */
|
||||
|
||||
#if defined(SUPPORT_11BN) && SUPPORT_11BN
|
||||
#define IS_MODE_UHR(mode) (((mode) == MODE_11BN_UHR20) || \
|
||||
((mode) == MODE_11BN_UHR40) || \
|
||||
((mode) == MODE_11BN_UHR80) || \
|
||||
((mode) == MODE_11BN_UHR80_80) || \
|
||||
((mode) == MODE_11BN_UHR160) || \
|
||||
((mode) == MODE_11BN_UHR160_160)|| \
|
||||
((mode) == MODE_11BN_UHR320) || \
|
||||
((mode) == MODE_11BN_UHR20_2G) || \
|
||||
((mode) == MODE_11BN_UHR40_2G))
|
||||
#define IS_MODE_UHR_2G(mode) (((mode) == MODE_11BN_UHR20_2G) || \
|
||||
((mode) == MODE_11BN_UHR40_2G))
|
||||
#endif /* SUPPORT_11BN */
|
||||
|
||||
#define IS_MODE_VHT_2G(mode) (((mode) == MODE_11AC_VHT20_2G) || \
|
||||
((mode) == MODE_11AC_VHT40_2G) || \
|
||||
((mode) == MODE_11AC_VHT80_2G))
|
||||
|
|
|
|||
|
|
@ -196,6 +196,8 @@ typedef enum {
|
|||
WLAN_MODULE_C2C, /* 0x98 */
|
||||
WLAN_MODULE_VBSS, /* 0x99 */
|
||||
WLAN_MODULE_OPT_DATA, /* 0x9a */
|
||||
WLAN_MODULE_ASD, /* 0x9b */
|
||||
WLAN_MODULE_ENERGY_MGMT, /* 0x9c */
|
||||
|
||||
WLAN_MODULE_ID_MAX,
|
||||
WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
|
||||
|
|
|
|||
|
|
@ -695,6 +695,32 @@ typedef enum {
|
|||
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_SERVICE_MLO_ROAM_PARTNER_BRINGUP_FROM_HOST = 439, /* Indicates FW supports new design in which FW expects the host to bringup the partner link during roaming */
|
||||
WMI_SERVICE_CTRL_PATH_PEER_BA_STATS = 440, /* FW supports retrieving BlockAck stats through WMI_REQUEST_CTRL_PATH_PEER_STAT */
|
||||
WMI_SERVICE_CTRL_PATH_STA_DAR_STATS_SUPPORT = 441, /* FW supports DAR stats reporting for STA mode */
|
||||
WMI_SERVICE_APF_DATA_OFFLOAD_SUPPORT_ENABLED = 442, /* Indicates FW support for APFv6 handling offloads and disable QC data offloads */
|
||||
WMI_SERVICE_PER_VDEV_TWT_RESP_DISABLE_SUPPORT = 443, /* FW supports vdev level TWT responder disable */
|
||||
WMI_SERVICE_VENDOR_OUI_ACTION_V2 = 444, /* FW supports vendor OUI action version 2 */
|
||||
WMI_SERVICE_HW_BLACKLIST_CHAN_SUPPORT = 445, /* Indicates FW support for computing and sending the HW channel blacklist for the current country and applicable power mode */
|
||||
WMI_SERVICE_NDP_DFS_CHANNEL_SUPPORT = 446, /* FW supports forming NDP on DFS channels */
|
||||
WMI_SERVICE_WFD_R2 = 447, /* Indicates FW supports WiFi-Direct R2 */
|
||||
WMI_SERVICE_STA_MLO_RCFG_SUPPORT = 448, /* FW supports STA ML reconfig op */
|
||||
WMI_SERVICE_PDEV_SUSPEND_EVENT_SUPPORT = 449, /* FW supports PDEV_SUSPEND event */
|
||||
WMI_SERVICE_PCC_MODE = 450, /* Indicates FW support for PCC (P2P Connection Compatibility) Mode */
|
||||
WMI_SERVICE_TDLS_NSS_CONFIRM_SUPPORT = 451, /* FW supports confirmation to host requested TDLS NSS operation */
|
||||
|
||||
WMI_SERVICE_EM_PCIE_CONFIG_CBW_SUPPORT = 452, /* Indicates support for channel bandwidth based PCIe config adjustment */
|
||||
WMI_SERVICE_EM_PCIE_CONFIG_LPM_SUPPORT = 453, /* Indicates support for PCIe low power mode L0S/L1 */
|
||||
WMI_SERVICE_EM_DCVS_SUPPORT = 454, /* Indicates support for Dynamic clock and voltage scaling */
|
||||
WMI_SERVICE_EM_EDPS_SUPPORT = 455, /* Indicates support for Dynamic AP power save */
|
||||
WMI_SERVICE_EM_PUO_SUPPORT = 456, /* Indicates support for TWT based periodic unavailability operation. */
|
||||
WMI_SERVICE_EM_ECO_MODE_SUPPORT = 457, /* Indicates support for ECO mode config (LP BBF+ADC+SYNCT) */
|
||||
|
||||
WMI_SERVICE_11BN = 458, /* Indicates FW supports 802.11bn */
|
||||
WMI_SERVICE_HOST_AWARE_POWERSAVE = 459, /* FW supports indicating the powerstate of FW to host */
|
||||
WMI_SERVICE_PDEV_DIV_STATES_REPORT = 460, /* FW supports reporting antenna diversity states */
|
||||
WMI_SERVICE_EAPOL_OVER_RAW = 461, /* FW supports sending EAPOL frames in raw mode even when the vdev is brought up in nwifi/ethernet mode */
|
||||
WMI_SERVICE_MLO_SAP_LINK_REMOVAL_SUPPORT = 462, /* Indicates FW supports MLO SAP link removal operation */
|
||||
|
||||
|
||||
WMI_MAX_EXT2_SERVICE
|
||||
|
|
|
|||
|
|
@ -1476,6 +1476,29 @@ typedef enum {
|
|||
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_STRUC_wmi_ndp_set_latency_tput_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_roam_partner_link_param,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_link_ttlm_complete_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_ctrl_path_sta_dar_stats_struct,
|
||||
WMITLV_TAG_STRUC_wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_data,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_suspend_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_bpf_set_apf_mode_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_peer_assoc_operating_mode_params,
|
||||
WMITLV_TAG_STRUC_wmi_recv_bcn_stats,
|
||||
WMITLV_TAG_STRUC_wmi_vdev_vbss_peer_dyn_info,
|
||||
WMITLV_TAG_STRUC_wmi_energy_mgmt_pcie_config_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_energy_mgmt_pcie_lpm_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_energy_mgmt_dcvs_config_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_energy_mgmt_edps_config_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_energy_mgmt_puo_config_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_energy_mgmt_eco_mode_config_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_peer_assoc_mgmt_mpduq_params,
|
||||
WMITLV_TAG_STRUC_wmi_peer_assoc_mgmt_msduq_params,
|
||||
WMITLV_TAG_STRUC_wmi_peer_assoc_hol_mdsuq_params,
|
||||
WMITLV_TAG_STRUC_wmi_peer_tid_rate_custom_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_co_located_chan_info,
|
||||
} WMITLV_TAG_ID;
|
||||
/*
|
||||
* IMPORTANT: Please add _ALL_ WMI Commands Here.
|
||||
|
|
@ -2037,6 +2060,17 @@ typedef enum {
|
|||
OP(WMI_MLO_LINK_RECONFIG_COMPLETE_CMDID) \
|
||||
OP(WMI_SAWF_EZMESH_HOP_COUNT_CMDID) \
|
||||
OP(WMI_VDEV_VBSS_CONFIG_CMDID) \
|
||||
OP(WMI_NDP_SET_LATENCY_TPUT_CMDID) \
|
||||
OP(WMI_MLO_LINK_TTLM_COMPLETE_CMDID) \
|
||||
OP(WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID) \
|
||||
OP(WMI_BPF_SET_APF_MODE_CMDID) \
|
||||
OP(WMI_ENERGY_MGMT_PCIE_CONFIG_CMDID) \
|
||||
OP(WMI_ENERGY_MGMT_PCIE_LPM_CMDID) \
|
||||
OP(WMI_ENERGY_MGMT_DCVS_CONFIG_CMDID) \
|
||||
OP(WMI_ENERGY_MGMT_EDPS_CONFIG_CMDID) \
|
||||
OP(WMI_ENERGY_MGMT_PUO_CONFIG_CMDID) \
|
||||
OP(WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID) \
|
||||
OP(WMI_PEER_TID_RATE_CUSTOM_CMDID) \
|
||||
/* add new CMD_LIST elements above this line */
|
||||
|
||||
|
||||
|
|
@ -2372,6 +2406,8 @@ typedef enum {
|
|||
OP(WMI_PDEV_WIFI_RADAR_CAPABILITIES_EVENTID) \
|
||||
OP(WMI_VDEV_VBSS_CONFIG_EVENTID) \
|
||||
OP(WMI_OPT_DP_DIAG_EVENTID) \
|
||||
OP(WMI_HW_BLACKLIST_CHAN_EVENTID) \
|
||||
OP(WMI_PDEV_SUSPEND_EVENTID) \
|
||||
/* add new EVT_LIST elements above this line */
|
||||
|
||||
|
||||
|
|
@ -2867,7 +2903,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, mlo_params, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_eht_rate_set, peer_eht_rates, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_tid_to_link_map, peer_tid_to_link_map, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_tid_to_link_map, peer_tid_to_link_map, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_operating_mode_params, operating_mode_params, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mgmt_mpduq_params, mgmt_mpduq_params, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mgmt_msduq_params, mgmt_msduq_params, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_hol_mdsuq_params, hol_mdsuq_params, WMITLV_SIZE_VAR)
|
||||
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID);
|
||||
|
||||
|
|
@ -3611,7 +3651,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_CMDID);
|
|||
|
||||
/* Vdev up Cmd */
|
||||
#define WMITLV_TABLE_WMI_VDEV_UP_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, wmi_vdev_up_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, wmi_vdev_up_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_co_located_chan_info, co_located_chan_info, WMITLV_SIZE_VAR)
|
||||
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UP_CMDID);
|
||||
|
||||
|
|
@ -3643,7 +3684,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UPDATE_MAC_ADDR_CMDID);
|
|||
#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_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_sn_info, vbss_peer_sn_info, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_dyn_info, vbss_peer_dyn_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_VBSS_CONFIG_CMDID);
|
||||
|
||||
/* Pdev suspend Cmd */
|
||||
|
|
@ -4099,6 +4141,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_REQ_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_cmd_param, wmi_ndp_cmd_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CMDID);
|
||||
|
||||
/* NDP Set Latency Tput Cmd */
|
||||
#define WMITLV_TABLE_WMI_NDP_SET_LATENCY_TPUT_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_set_latency_tput_fixed_param, wmi_ndp_set_latency_tput_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_NDP_SET_LATENCY_TPUT_CMDID);
|
||||
|
||||
/* RCPI Info Request Cmd */
|
||||
#define WMITLV_TABLE_WMI_REQUEST_RCPI_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param, wmi_request_rcpi_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
|
|
@ -5384,6 +5431,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_RECONFIG_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_reconfig_complete_fixed_param, wmi_mlo_link_reconfig_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_RECONFIG_COMPLETE_CMDID);
|
||||
|
||||
/** WMI cmd to notify fw completion of link TTLM negotiation */
|
||||
#define WMITLV_TABLE_WMI_MLO_LINK_TTLM_COMPLETE_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_ttlm_complete_fixed_param, wmi_mlo_link_ttlm_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_TTLM_COMPLETE_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) \
|
||||
|
|
@ -5745,6 +5797,50 @@ WMITLV_CREATE_PARAM_STRUC(WMI_GET_SCAN_CACHE_RESULT_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sawf_ezmesh_hop_count_cmd_fixed_param, wmi_sawf_ezmesh_hop_count_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_SAWF_EZMESH_HOP_COUNT_CMDID);
|
||||
|
||||
#define WMITLV_TABLE_WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param, wmi_bpf_set_supported_offload_bitmap_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID);
|
||||
|
||||
#define WMITLV_TABLE_WMI_BPF_SET_APF_MODE_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_set_apf_mode_cmd_fixed_param, wmi_bpf_set_apf_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_APF_MODE_CMDID);
|
||||
|
||||
/* WMI cmd used to control PCIe config */
|
||||
#define WMITLV_TABLE_WMI_ENERGY_MGMT_PCIE_CONFIG_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_pcie_config_cmd_fixed_param, wmi_energy_mgmt_pcie_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_PCIE_CONFIG_CMDID);
|
||||
|
||||
/* WMI cmd used for PCIe LPM config */
|
||||
#define WMITLV_TABLE_WMI_ENERGY_MGMT_PCIE_LPM_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_pcie_lpm_cmd_fixed_param, wmi_energy_mgmt_pcie_lpm_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_PCIE_LPM_CMDID);
|
||||
|
||||
/* WMI cmd used to control DCVS config */
|
||||
#define WMITLV_TABLE_WMI_ENERGY_MGMT_DCVS_CONFIG_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_dcvs_config_cmd_fixed_param, wmi_energy_mgmt_dcvs_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_DCVS_CONFIG_CMDID);
|
||||
|
||||
/* WMI cmd used to control Dynamic AP Power Save config */
|
||||
#define WMITLV_TABLE_WMI_ENERGY_MGMT_EDPS_CONFIG_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_edps_config_cmd_fixed_param, wmi_energy_mgmt_edps_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_EDPS_CONFIG_CMDID);
|
||||
|
||||
/* WMI cmd used to control Scheduled AP Power Save config */
|
||||
#define WMITLV_TABLE_WMI_ENERGY_MGMT_PUO_CONFIG_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_puo_config_cmd_fixed_param, wmi_energy_mgmt_puo_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_PUO_CONFIG_CMDID);
|
||||
|
||||
/* WMI cmd used to control Un-scheduled AP Power Save config */
|
||||
#define WMITLV_TABLE_WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_eco_mode_config_cmd_fixed_param, wmi_energy_mgmt_eco_mode_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID);
|
||||
|
||||
/* peer tid rate customization cmd */
|
||||
#define WMITLV_TABLE_WMI_PEER_TID_RATE_CUSTOM_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_rate_custom_cmd_fixed_param, wmi_peer_tid_rate_custom_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rate_code, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_RATE_CUSTOM_CMDID);
|
||||
|
||||
|
||||
|
||||
/************************** TLV definitions of WMI events *******************************/
|
||||
|
|
@ -6092,7 +6188,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_AGGR_STATE_TRIG_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, deauth_disassoc_frame, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_hw_mode_transition_event_fixed_param, hw_mode_transition_fixed_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_bss_info_param, bss_info_param, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_bss_info_param, bss_info_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_partner_link_param, partner_link_param, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID);
|
||||
|
||||
/* Roam Synch Event */
|
||||
|
|
@ -6365,7 +6462,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HOST_SWFDA_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pmf_bcn_protect_stats, pmf_bcn_protect_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_extd_stats, pdev_extd_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_telemetry_stats, pdev_telemetry_stats, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_telemetry_stats, pdev_telemetry_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_recv_bcn_stats, recv_bcn_stats, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_STATS_EVENTID);
|
||||
|
||||
/* Update PN response Event */
|
||||
|
|
@ -6801,6 +6899,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MDNS_STATS_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_resume_event_fixed_param, wmi_pdev_resume_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RESUME_EVENTID);
|
||||
|
||||
/* pdev suspend event */
|
||||
#define WMITLV_TABLE_WMI_PDEV_SUSPEND_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_suspend_event_fixed_param, wmi_pdev_suspend_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SUSPEND_EVENTID);
|
||||
|
||||
/* SAP Authentication offload event */
|
||||
#define WMITLV_TABLE_WMI_SAP_OFL_ADD_STA_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_add_sta_event_fixed_param, wmi_sap_ofl_add_sta_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
|
|
@ -6954,7 +7057,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_chan_priority_struct, reg_chan_priority, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_fcc_rule_struct, reg_fcc_rule, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_reg_chan_list_cc_ext_additional_params, reg_more_data, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_meta_data, reg_meta_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_meta_data, reg_meta_data, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_fixed_param, hw_blacklist_chan_fixed_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_data, hw_blacklist_chan_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID);
|
||||
|
||||
/* WMI AFC info event */
|
||||
|
|
@ -6964,9 +7069,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EXT_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_afc_power_event_param, wmi_afc_power_event_param, afc_power_event_param, WMITLV_SIZE_FIX)\
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_6g_afc_frequency_info, freq_info_array, WMITLV_SIZE_VAR)\
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_6g_afc_channel_info, channel_info_array, WMITLV_SIZE_VAR)\
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_afc_chan_eirp_power_info, chan_eirp_power_info_array, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_afc_chan_eirp_power_info, chan_eirp_power_info_array, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_fixed_param, hw_blacklist_chan_fixed_param, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_data, hw_blacklist_chan_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_AFC_EVENTID);
|
||||
|
||||
/* HW blacklist channels for the current country code */
|
||||
#define WMITLV_TABLE_WMI_HW_BLACKLIST_CHAN_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hw_blacklist_chan_fixed_param, wmi_hw_blacklist_chan_fixed_param, hw_blacklist_chan_fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hw_blacklist_chan_data, hw_blacklist_chan_data, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_HW_BLACKLIST_CHAN_EVENTID);
|
||||
|
||||
/* Indicate LPI AP detect or not to Host */
|
||||
#define WMITLV_TABLE_WMI_C2C_DETECT_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_c2c_detect_event_fixed_param, wmi_c2c_detect_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
|
|
@ -7257,7 +7370,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_vdev_bcn_tx_stats_struct, ctrl_path_vdev_bcn_tx_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pdev_bcn_tx_stats_struct, ctrl_path_pdev_bcn_tx_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pdev_conn_stats_struct, ctrl_path_pdev_conn_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_ml_rcfg_stats_struct, ctrl_path_ml_rcfg_stats, WMITLV_SIZE_VAR)
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_ml_rcfg_stats_struct, ctrl_path_ml_rcfg_stats, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_sta_dar_stats_struct, ctrl_path_sta_dar_stats, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID);
|
||||
|
||||
/*
|
||||
|
|
@ -7775,7 +7889,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_EVENTID);
|
|||
#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_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_sn_info, vbss_peer_sn_info, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_vbss_peer_dyn_info, vbss_peer_dyn_info, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_VBSS_CONFIG_EVENTID);
|
||||
|
||||
/* link switch event */
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -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_ 1575
|
||||
#define __WMI_REVISION_ 1637
|
||||
|
||||
/** The Version Namespace should not be normally changed. Only
|
||||
* host and firmware of the same WMI namespace will work
|
||||
|
|
|
|||
Loading…
Reference in a new issue