Merge 90b5d6b4e3 on remote branch

Change-Id: I89555a096ec2a285317d08c01a732d807c61fd47
This commit is contained in:
Linux Build Service Account 2025-08-29 03:15:43 -07:00
commit db5f117cb5
9 changed files with 1482 additions and 176 deletions

View file

@ -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)

141
fw/htt.h
View file

@ -270,9 +270,10 @@
* 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 142
#define HTT_CURRENT_VERSION_MINOR 143
#define HTT_NUM_TX_FRAG_DESC 1024
@ -771,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 */
@ -779,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 */
@ -850,6 +857,15 @@ typedef enum {
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;
@ -12170,6 +12186,7 @@ enum htt_t2h_msg_type {
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,
@ -24057,4 +24074,122 @@ PREPACK struct htt_t2h_global_peer_id_unmap_t {
} 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

View file

@ -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

View file

@ -197,6 +197,7 @@ typedef enum {
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,

View file

@ -707,6 +707,21 @@ typedef enum {
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

View file

@ -1484,7 +1484,21 @@ typedef enum {
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_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.
@ -2050,6 +2064,13 @@ typedef enum {
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 */
@ -2882,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);
@ -3626,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);
@ -3658,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 */
@ -5778,6 +5805,42 @@ WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID);
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 *******************************/
@ -6399,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 */
@ -7825,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 */

View file

@ -369,7 +369,8 @@ typedef enum {
WMI_GRP_QUIET_OFL, /* 0x4a Quiet offloads */
WMI_GRP_ODD, /* 0x4b ODD */
WMI_GRP_TDMA, /* 0x4c TDMA */
WMI_GRP_MANUAL_UL_TRIG /* 0x4d Manual UL OFDMA Trigger */
WMI_GRP_MANUAL_UL_TRIG, /* 0x4d Manual UL OFDMA Trigger */
WMI_GRP_ENERGY_MGMT, /* 0x4e energy management */
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@ -851,6 +852,9 @@ typedef enum {
/* WMI command to setup reorder queue for multiple TIDs */
WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID,
/** Customize MCS range for specific tid */
WMI_PEER_TID_RATE_CUSTOM_CMDID,
/* beacon/management specific commands */
/** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */
@ -1728,6 +1732,21 @@ typedef enum {
/** WMI Command to set Manual MU UL OFDMA trigger parameters */
WMI_VDEV_SET_ULOFDMA_MANUAL_MU_TRIG_CMDID,
/** WMI commands specific to Energy Management **/
/** WMI cmd used to control PCIe config */
WMI_ENERGY_MGMT_PCIE_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ENERGY_MGMT),
/** WMI cmd used to control PCIe LPM */
WMI_ENERGY_MGMT_PCIE_LPM_CMDID,
/** WMI cmd used to control Clock and Voltage config */
WMI_ENERGY_MGMT_DCVS_CONFIG_CMDID,
/** WMI cmd used to control AP Dynamic Power Save feature */
WMI_ENERGY_MGMT_EDPS_CONFIG_CMDID,
/** WMI cmd used to control periodic unavailability operation */
WMI_ENERGY_MGMT_PUO_CONFIG_CMDID,
/** WMI cmd used to control ECO mode config */
WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID,
} WMI_CMD_ID;
typedef enum {
@ -4870,8 +4889,13 @@ typedef struct {
* 11 -> reserved
* Refer to the below WMI_RSRC_CFG_FLAGS2_OPTIMIZE_POWER_GET/SET
* macros.
* Bit 25 - enable recv_bcn_stats feature
* 0 -> disable the feature
* 1 -> enable the feature
* Refer to below WMI_RSRC_CFG_FLAGS2_RECV_BCN_STATS_ENABLED_GET/SET
* macros.
*
* Bits 31:25 - Reserved
* Bits 31:26 - Reserved
*/
A_UINT32 flags2;
/** @brief host_service_flags - can be used by Host to indicate
@ -5160,6 +5184,13 @@ typedef struct {
reserved: 31;
};
};
/**
* @brief HAPS flags setting for power save config
* bit 0 : Enable disable haps feature
* bit 1 : Sync and update qtime cnss timestamp
* BIT 2-31: Reserved
*/
A_UINT32 dp_haps_config;
} wmi_resource_config;
#define WMI_RSRC_CFG_APF_DATA_OFLD_ENABLE_GET(word32) \
WMI_GET_BITS(word32, 0, 1)
@ -5458,6 +5489,11 @@ typedef struct {
#define WMI_RSRC_CFG_FLAGS2_OPTIMIZE_POWER_SET(flags2, value) \
WMI_SET_BITS(flags2, 23, 2, value)
#define WMI_RSRC_CFG_FLAGS2_RECV_BCN_STATS_ENABLED_GET(flags2) \
WMI_GET_BITS(flags2, 25, 1)
#define WMI_RSRC_CFG_FLAGS2_RECV_BCN_STATS_ENABLED_SET(flags2, value) \
WMI_SET_BITS(flags2, 25, 1, value)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_GET(host_service_flags) \
WMI_GET_BITS(host_service_flags, 0, 1)
@ -10069,6 +10105,9 @@ typedef enum {
/* To enable/disable DFS radar detection for scan radio */
WMI_PDEV_PARAM_ENABLE_SCAN_RADIO_DFS,
/* configure CCE rules based on ethertype match */
WMI_PDEV_PARAM_CONFIG_CUSTOM_CCE_RULE,
} WMI_PDEV_PARAM;
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@ -10728,6 +10767,16 @@ typedef struct {
*/
} wmi_pdev_tpc_config_event_fixed_param;
typedef enum {
WMI_ASD_PRIMARY_ANT = 0,
WMI_ASD_DIVERSITY_ANT = 1,
WMI_ASD_THIRD_ANT = 2,
WMI_ASD_FOURTH_ANT = 3,
WMI_ASD_MAX_ANTTYPE = 4
} WMI_ASD_ANT_TYPE;
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_div_rssi_antid_event_fixed_param */
A_UINT32 tlv_header;
@ -10741,6 +10790,17 @@ typedef struct {
wmi_mac_addr macaddr;
/* EVM value for stream0 and stream1 20Mhz, dB units */
A_INT32 chain_evm[WMI_MAX_CHAINS];
/** num_antennas_valid:
* how many elements in the WMI_ASD_MAX_ANTTYPE arrays below
* contain valid info
*/
A_UINT32 num_antennas_valid;
/** switch count on each antenna attached to each chain */
A_UINT32 ant_cnt[WMI_MAX_CHAINS][WMI_ASD_MAX_ANTTYPE];
/** stay duration on each antenna attached to each chain (units: ms) */
A_UINT32 ant_dur[WMI_MAX_CHAINS][WMI_ASD_MAX_ANTTYPE];
/** RSSI on each antenna attached to each chain in dbm */
A_INT32 ant_rssi[WMI_MAX_CHAINS][WMI_ASD_MAX_ANTTYPE];
} wmi_pdev_div_rssi_antid_event_fixed_param;
typedef struct {
@ -11182,6 +11242,7 @@ typedef enum {
WMI_REQUEST_VDEV_EXTD_STAT = 0x10000,
WMI_REQUEST_PDEV_EXTD_STAT = 0x20000,
WMI_REQUEST_PDEV_TELEMETRY_STAT = 0x40000,
WMI_REQUEST_VDEV_RECV_BCN_STAT = 0x80000,
} wmi_stats_id;
/*
@ -12172,6 +12233,10 @@ typedef struct {
* wmi_pdev_telemetry_stats wmi_pdev_telemetry_stats[]
* follows the other TLVs
*/
/* If WMI_REQUEST_VDEV_RECV_BCN_STAT is set in stats_id, then TLV
* wmi_recv_bcn_stats wmi_recv_bcn_stats[]
* follows the other TLVs
*/
} wmi_stats_event_fixed_param;
/* WLAN channel CCA stats bitmap */
@ -15536,6 +15601,30 @@ typedef struct{
A_UINT32 estimated_air_time_per_ac;
} wmi_pdev_telemetry_stats;
#define WMI_MAX_BCN_HISTORY 10 /* max beacon history entry */
typedef struct {
/* Beacon real RSSI, non-averaged rssi, dBm units; -128 means invalid */
A_INT32 bcn_rssi;
/* Beacon tsf, 0 means invalid */
A_UINT32 bcn_tsf;
/* NOTE:
* Due to backwards-compatibility requirements, no new fields
* can be added to this struct.
*/
} wmi_bcn_his_info;
typedef struct {
/* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_recv_bcn_stats */
A_UINT32 tlv_header;
/* Vdev id */
A_UINT32 vdev_id;
/* Received History of last ten Beacon of the connected Bss */
wmi_bcn_his_info bcn_history[WMI_MAX_BCN_HISTORY];
} wmi_recv_bcn_stats;
/**
* VDEV statistics
* @todo
@ -18243,6 +18332,8 @@ typedef struct {
/* Target TSF value by which VDEV restart procedure should be completed in FW */
A_UINT32 target_tsf_us_lo; /* bits 31:0 */
A_UINT32 target_tsf_us_hi; /* bits 63:32 */
A_UINT32 vdev_op_ul_nss; /* vdev operating uplink nss. 1 ~ n: 1ss ~ nss */
A_UINT32 vdev_op_dl_nss; /* vdev operating downlink nss. 1 ~ n: 1ss ~ nss */
/* The TLVs follows this structure:
* wmi_channel chan; <-- WMI channel
@ -18302,6 +18393,12 @@ enum WMI_VDEV_UP_FLAGS {
WMI_VDEV_UP_FLAG_VBSS_PASSIVE = 0x00000004,
};
typedef struct{
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_co_located_chan_info */
/* co-located link frequency discovered on connected ap */
A_UINT32 link_freq; /* MHz units */
} wmi_co_located_chan_info;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_up_cmdid_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
@ -18318,6 +18415,10 @@ typedef struct {
A_UINT32 profile_num;
/** flags - this is a bitwise-or combination of WMI_VDEV_UP_FLAGS values */
A_UINT32 flags;
/* The below TLVs follow this struct:
* - wmi_co_located_chan_info co_located_chan_info[];
* Connected AP's co-located channel info
*/
} wmi_vdev_up_cmd_fixed_param;
typedef struct {
@ -18442,6 +18543,7 @@ typedef enum {
WMI_RATE_PREAMBLE_VHT,
WMI_RATE_PREAMBLE_HE,
WMI_RATE_PREAMBLE_EHT,
WMI_RATE_PREAMBLE_UHR,
} WMI_RATE_PREAMBLE;
/** Value to disable fixed rate setting */
@ -20602,91 +20704,96 @@ enum wmi_sta_ps_scheme_cfg {
WMI_STA_PS_OPM_CONSERVATIVE = 0,
WMI_STA_PS_OPM_AGGRESSIVE = 1,
WMI_STA_PS_USER_DEF = 2,
WMI_STA_PS_LATENCY_DEF = 3,
};
enum wmi_sta_powersave_param {
/**
* Controls how frames are retrievd from AP while STA is sleeping
*
* (see enum wmi_sta_ps_param_rx_wake_policy)
*/
WMI_STA_PS_PARAM_RX_WAKE_POLICY = 0,
/**
* Controls how frames are retrievd from AP while STA is sleeping
*
* (see enum wmi_sta_ps_param_rx_wake_policy)
*/
WMI_STA_PS_PARAM_RX_WAKE_POLICY = 0,
/**
* The STA will go active after this many TX
*
* (see enum wmi_sta_ps_param_tx_wake_threshold)
*/
WMI_STA_PS_PARAM_TX_WAKE_THRESHOLD = 1,
/**
* The STA will go active after this many TX
*
* (see enum wmi_sta_ps_param_tx_wake_threshold)
*/
WMI_STA_PS_PARAM_TX_WAKE_THRESHOLD = 1,
/**
* Number of PS-Poll to send before STA wakes up
*
* (see enum wmi_sta_ps_param_pspoll_count)
*
*/
WMI_STA_PS_PARAM_PSPOLL_COUNT = 2,
/**
* Number of PS-Poll to send before STA wakes up
*
* (see enum wmi_sta_ps_param_pspoll_count)
*
*/
WMI_STA_PS_PARAM_PSPOLL_COUNT = 2,
/**
* TX/RX inactivity time in msec before going to sleep.
*
* The power save SM will monitor tx/rx activity on the VDEV, if no
* activity for the specified msec of the parameter the Power save SM will
* go to sleep.
*/
WMI_STA_PS_PARAM_INACTIVITY_TIME = 3,
/**
* TX/RX inactivity time in msec before going to sleep.
*
* The power save SM will monitor tx/rx activity on the VDEV, if no
* activity for the specified msec of the parameter the Power save SM will
* go to sleep.
*/
WMI_STA_PS_PARAM_INACTIVITY_TIME = 3,
/**
* Set uapsd configuration.
*
* (see enum wmi_sta_ps_param_uapsd)
*/
WMI_STA_PS_PARAM_UAPSD = 4,
/**
* Set uapsd configuration.
*
* (see enum wmi_sta_ps_param_uapsd)
*/
WMI_STA_PS_PARAM_UAPSD = 4,
/**
* Number of PS-Poll to send before STA wakes up in QPower Mode
*/
WMI_STA_PS_PARAM_QPOWER_PSPOLL_COUNT = 5,
/**
* Number of PS-Poll to send before STA wakes up in QPower Mode
*/
WMI_STA_PS_PARAM_QPOWER_PSPOLL_COUNT = 5,
/**
* Enable OPM
*/
WMI_STA_PS_ENABLE_QPOWER = 6,
WMI_STA_PS_ENABLE_OPM = WMI_STA_PS_ENABLE_QPOWER, /* alias */
/**
* Enable OPM
*/
WMI_STA_PS_ENABLE_QPOWER = 6,
WMI_STA_PS_ENABLE_OPM = WMI_STA_PS_ENABLE_QPOWER, /* alias */
/**
* Number of TX frames before the entering the Active state
*/
WMI_STA_PS_PARAM_QPOWER_MAX_TX_BEFORE_WAKE = 7,
/**
* Number of TX frames before the entering the Active state
*/
WMI_STA_PS_PARAM_QPOWER_MAX_TX_BEFORE_WAKE = 7,
/**
* QPower SPEC PSPOLL interval
*/
WMI_STA_PS_PARAM_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL = 8,
/**
* QPower SPEC PSPOLL interval
*/
WMI_STA_PS_PARAM_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL = 8,
/**
* Max SPEC PSPOLL to be sent when the PSPOLL response has
* no-data bit set
*/
WMI_STA_PS_PARAM_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL = 9,
/**
* Max SPEC PSPOLL to be sent when the PSPOLL response has
* no-data bit set
*/
WMI_STA_PS_PARAM_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL = 9,
/**
* Max value of ITO reset when there is no tx-rx
* after AP has set the TIM bit
*/
WMI_STA_PS_PARAM_MAX_RESET_ITO_COUNT_ON_TIM_NO_TXRX = 10,
/**
* Max value of ITO reset when there is no tx-rx
* after AP has set the TIM bit
*/
WMI_STA_PS_PARAM_MAX_RESET_ITO_COUNT_ON_TIM_NO_TXRX = 10,
/**
* Flag to enable/disable Powersave Optimization
* in WOW
*/
WMI_STA_PS_PARAM_ENABLE_PS_OPT_IN_WOW = 11,
/**
* Flag to enable/disable Powersave Optimization
* in WOW
*/
WMI_STA_PS_PARAM_ENABLE_PS_OPT_IN_WOW = 11,
/**
* Speculative interval in ms
*/
WMI_STA_PS_PARAM_SPEC_WAKE_INTERVAL = 12,
/**
* Speculative interval in ms
*/
WMI_STA_PS_PARAM_SPEC_WAKE_INTERVAL = 12,
/**
* Value determines the ITO level to apply
*/
WMI_STA_PS_PARAM_ITO_LEVEL = 13,
};
typedef struct {
@ -21202,6 +21309,9 @@ typedef struct {
wmi_mlo_flags mlo_flags; /* only mlo enable flag need by STA mode peer create */
} wmi_peer_create_mlo_params;
#define WMI_PEER_CREATE_GET_HW_PEER_ID_VALID(flags) WMI_GET_BITS(flags,0,1)
#define WMI_PEER_CREATE_SET_HW_PEER_ID_VALID(flags) WMI_SET_BITS(flags,0,1,value)
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
@ -21210,7 +21320,19 @@ typedef struct {
wmi_mac_addr peer_macaddr;
/** peer type: see enum values above */
A_UINT32 peer_type;
/* The TLVs follows this structure:
/** Peer create flags */
union {
struct {
A_UINT32 hw_peer_id_valid :1,
reserved :31;
};
A_UINT32 flags;
};
/** Global sw peer id, valid only if non-zero */
A_UINT32 sw_peer_id;
/** Global hardware id, valid only if hw_peer_id_valid is set */
A_UINT32 hw_peer_id;
/* The TLVs follow this structure:
* wmi_peer_create_mlo_params mlo_params[]; <-- MLO flags on peer_create
* Optional TLV, only present for MLO peers.
* If the peer is non-MLO, the array length should be 0.
@ -22090,6 +22212,120 @@ typedef struct {
wmi_mac_addr link_macaddr;
} wmi_pdev_mesh_rx_filter_enable_fixed_param;
typedef struct {
A_UINT32 tlv_header; /** TLV tag (WMITLV_TAG_STRUC_wmi_peer_assoc_operating_mode_params) and len */
/* rx_nss:
* self rx nss indicated to AP through capability IEs or operating mode IE.
* 1 ~ n: 1ss ~ nss
*/
A_UINT32 rx_nss;
/* tx_nss:
* self tx nss indicated to AP through capability IEs or operating mode IE.
* 1 ~ n: 1ss ~ nss
*/
A_UINT32 tx_nss;
/* bw:
* self BW indicated to AP through capability IEs or operating mode IE,
* refer to wmi_channel_width for definition of the values this field
* can hold.
*/
A_UINT32 bw;
} wmi_peer_assoc_operating_mode_params;
typedef enum {
WMI_MGMT_TID_MSDUQ_LINK_SPECIFIC,/* legacy and link peer */
WMI_MGMT_TID_MSDUQ_LINK_AGNOSTIC,
WMI_MGMT_TID_MSDUQ_TYPE_MAX,
} WMI_MGMT_TID_MSDUQ_TYPE;
#define WMI_MGMT_MSDUQ_GET_LINK_ID(msduq_type) WMI_GET_BITS(msduq_type,0,3)
#define WMI_MGMT_MSDUQ_SET_LINK_ID(msduq_type) WMI_SET_BITS(msduq_type,0,3,value)
#define WMI_MGMT_MSDUQ_GET_FLOW_TYPE(msduq_type) WMI_GET_BITS(msduq_type,3,5)
#define WMI_MGMT_MSDUQ_SET_FLOW_TYPE(msduq_type) WMI_SET_BITS(msduq_type,3,5,value)
typedef struct {
A_UINT32 tlv_header; /* TLV tag and Len. Tag: WMITLV_TAG_STRUC_wmi_peer_assoc_mgmt_msduq_params*/
union {
struct {
A_UINT32 link_id : 3, /* HW Link ID */
flow_type : 5, /* WMI_MGMT_TID_MSDUQ_TYPE */
reserved : 24;
};
A_UINT32 msduq_type;
};
/* 40 bit physical address, 256 bytes alligned, LSB 8 bits are zero */
A_UINT32 mgmt_msduq_paddr_39_8;
} wmi_peer_assoc_mgmt_msduq_params;
typedef struct {
A_UINT32 tlv_header; /* TAG_ID : WMITLV_TAG_STRUC_wmi_peer_assoc_mgmt_mpduq_params */
/* 40 bit physical address, 256 bytes alligned, LSB 8 bits are zero */
A_UINT32 mgmt_mpduq_paddr_39_8;
A_UINT32 pn_paddr_31_0;
A_UINT32 pn_paddr_39_32;
} wmi_peer_assoc_mgmt_mpduq_params;
#define WMI_HOL_QUEUE_GET_PEER_ID(mpduq_msduq_number) \
WMI_GET_BITS(mpduq_msduq_number,0,12)
#define WMI_HOL_QUEUE_SET_PEER_ID(mpduq_msduq_number) \
WMI_SET_BITS(mpduq_msduq_number,0,12,value)
#define WMI_HOL_QUEUE_GET_TID_NUM(mpduq_msduq_number) \
WMI_GET_BITS(mpduq_msduq_number,12,5)
#define WMI_HOL_QUEUE_SET_TID_NUM(mpduq_msduq_number) \
WMI_SET_BITS(mpduq_msduq_number,12,5,value)
#define WMI_HOL_QUEUE_GET_MPDUQ_TYPE(mpduq_msduq_number) \
WMI_GET_BITS(mpduq_msduq_number,17,5)
#define WMI_HOL_MSDUQ_SET_MPDUQ_TYPE(mpduq_msduq_number) \
WMI_SET_BITS(mpduq_msduq_number,17,5,value)
#define WMI_HOL_QUEUE_GET_MSDUQ_TYPE(mpduq_msduq_number) \
WMI_GET_BITS(mpduq_msduq_number,22,5)
#define WMI_HOL_MSDUQ_SET_MSDUQ_TYPE(mpduq_msduq_number) \
WMI_SET_BITS(mpduq_msduq_number,22,5,value)
typedef struct {
A_UINT32 tlv_header; /* TAG_ID : WMITLV_TAG_STRUC_wmi_peer_assoc_hol_mdsuq_params */
/**
* A_UINT32
* WMI_HOL_MSDUQ_GET_PEER_ID / WMI_HOL_MSDU_SET_PEER_ID
* peer_id:12,
*
* WMI_HOL_MSDUQ_GET_TID_NUM / WMI_HOL_MSDUQ_SET_TID_NUM
* tid_num:5,
*
* WMI_HOL_MPDUQ_GET_QUEUE_TYPE / WMI_HOL_MPDUQ_SET_QUEUE_TYPE
* mpduq_type:5,
*
* WMI_HOL_MSDUQ_GET_QUEUE_TYPE / WMI_HOL_MSDUQ_SET_QUEUE_TYPE
* msduq_type:5,
*
* rsvd:5;
*/
union {
struct {
A_UINT32 peer_id : 12,
tid_num : 5,
mpduq_type : 5,
msduq_type : 5,
reserved : 5;
};
A_UINT32 mpduq_msduq_number;
};
/* 40 bit address, 256 bytes alligned LSB 8 bits are zero */
A_UINT32 mpduq_paddr_39_8;
/* 40 bit address, 256 bytes alligned LSB 8 bits are zero */
A_UINT32 msduq_paddr_39_8;
/* First 32 bits for pn physical address */
A_UINT32 pn_paddr_31_0;
/* Upper 8 bits of 40 bit pn physical address */
A_UINT32 pn_paddr_39_32;
} wmi_peer_assoc_hol_mdsuq_params;
/*
* PEER assoc_flags for assoc complete:
@ -22233,6 +22469,11 @@ typedef struct {
A_UINT32 assoc_flags;
/** maximum number of spatial streams supported by peer for tx */
A_UINT32 peer_max_tx_nss;
/* max_downlink_nss:
* max downlink nss, intersected between self rx and peer tx.
* 1~N means 1ss~Nss
*/
A_UINT32 max_downlink_nss;
/* Following this struct are the TLV's:
* A_UINT8 peer_legacy_rates[];
@ -22245,6 +22486,8 @@ typedef struct {
* wmi_eht_rate_set peer_eht_rates; <-- EHT capabilities of the peer
* wmi_peer_assoc_mlo_partner_link_params link_info[] <-- partner link info
* wmi_peer_assoc_tid_to_link_map[] <-- tid to link_map info
* wmi_peer_assoc_operating_mode_params <-- operating mode param that
* host sends to AP in peer assoc req, optional TLV
*/
} wmi_peer_assoc_complete_cmd_fixed_param;
@ -27509,13 +27752,32 @@ typedef struct {
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_peer_update_cmd_fixed_param */
A_UINT32 tlv_header;
A_UINT32 tlv_header;
/** unique id identifying the VDEV */
A_UINT32 vdev_id;
A_UINT32 vdev_id;
/** peer MAC address */
wmi_mac_addr peer_macaddr;
wmi_mac_addr peer_macaddr;
/** new TDLS state for peer (wmi_tdls_peer_state) */
A_UINT32 peer_state;
A_UINT32 peer_state;
/** need_nss_conf:
* only set to 1 when this TDLS peer is required to operating
* in particular HW mode NSS
*/
A_UINT32 need_nss_conf;
/* preferred_tx_nss:
* for peering state, it means advertised nss,
* for connected state, it means final negotiated nss.
* 1 ~ n: 1ss ~ nss
*/
A_UINT32 preferred_tx_nss;
/* preferred_rx_nss:
* for peering state, it means advertised nss,
* for connected state, it means final negotiated nss.
* 1 ~ n: 1ss ~ nss
*/
A_UINT32 preferred_rx_nss;
/* The TLV for wmi_tdls_peer_capabilities will follow.
* wmi_tdls_peer_capabilities peer_caps;
*/
@ -27577,6 +27839,8 @@ enum wmi_tdls_peer_notification {
WMI_TDLS_PEER_DISCONNECTED,
/** TDLS/BT role change notification for connection tracker */
WMI_TDLS_CONNECTION_TRACKER_NOTIFICATION,
/** resp to WMI_TDLS_PEER_UPDATE_CMDID as host requested */
WMI_TDLS_PEER_UPDATE_RESP,
};
enum wmi_tdls_peer_reason {
@ -27606,6 +27870,8 @@ enum wmi_tdls_peer_reason {
WMI_TDLS_SCAN_STARTED_EVENT,
/** TDLS module received a scan complete event, TDLS connection tracker needs to handle this */
WMI_TDLS_SCAN_COMPLETED_EVENT,
/** TDLS max supported operating NSS in current HW mode */
WMI_TDLS_OPERATING_NSS_CONF_EVENT,
};
/* WMI_TDLS_PEER_EVENTID */
@ -27620,6 +27886,10 @@ typedef struct {
A_UINT32 peer_reason;
/** unique id identifying the VDEV */
A_UINT32 vdev_id;
/** operating TX NSS 1 ~ n: 1ss ~ nss */
A_UINT32 tx_nss;
/** operating RX NSS 1 ~ n: 1ss ~ nss */
A_UINT32 rx_nss;
} wmi_tdls_peer_event_fixed_param;
/* NOTE: wmi_vdev_mcc_bcn_intvl_change_event_fixed_param would be deprecated. Please
@ -33607,6 +33877,23 @@ typedef struct {
A_UINT32 tid_mask; /* bits 0 to 15 = QoS TIDs, bit 16 = non-qos TID */
} wmi_peer_reorder_queue_remove_cmd_fixed_param;
/**
* This command is sent from WLAN host driver to firmware for
* customizing MCS range & retry count for specific TID of specific peer
*/
typedef struct {
A_UINT32 tlv_header;
A_UINT32 vdev_id;
wmi_mac_addr peer_macaddr; /* Peer MAC address */
A_UINT32 tid;
/* on_off:
* Rate customization enable/disable. 1 for enable and 0 for disable.
*/
A_UINT32 on_off;
A_UINT32 bw; /* Unit MHz */
A_UINT32 retry_count;
} wmi_peer_tid_rate_custom_cmd_fixed_param;
/* DEPRECATED - use wmi_pdev_set_mac_config_response_event_fixed_param instead */
typedef struct {
@ -37525,8 +37812,9 @@ typedef struct {
supports_11ac:1,
supports_11ax:1,
supports_11be:1,
supports_11bn:1,
unused: 21,
unused: 20,
max_mubfee: 4; /* max MU beamformees supported per MAC */
};
@ -39224,6 +39512,13 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_MLO_LINK_TTLM_COMPLETE_CMDID);
WMI_RETURN_STRING(WMI_BPF_SET_SUPPORTED_OFFLOAD_BITMAP_CMDID);
WMI_RETURN_STRING(WMI_BPF_SET_APF_MODE_CMDID);
WMI_RETURN_STRING(WMI_ENERGY_MGMT_PCIE_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_ENERGY_MGMT_PCIE_LPM_CMDID);
WMI_RETURN_STRING(WMI_ENERGY_MGMT_DCVS_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_ENERGY_MGMT_EDPS_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_ENERGY_MGMT_PUO_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_PEER_TID_RATE_CUSTOM_CMDID);
}
return (A_UINT8 *) "Invalid WMI cmd";
@ -40720,7 +41015,10 @@ typedef struct {
#define WLM_FLAGS_ROAM_SUPPRESS 1
#define WLM_FLAGS_ALLOW_FINAL_BMISS_ROAM 2
/* bit 8: reserved for roaming */
/* bit 8: Final bmiss roam will be triggered when all active links
* are final bmiss reported.
*/
#define WLM_FLAGS_ROAM_WHEN_ALL_LINKS_FBMISS 1
/* bit 9-11 of flags is used for powersave operation */
/* bit 9: WLM_FLAGS_PS_DISABLE_BMPS, disable BMPS if bit is set */
@ -40764,6 +41062,8 @@ typedef struct {
#define WLM_FLAGS_TSF_LATENCY_COMPENSATE_ENABLED_SET(flag) WMI_SET_BITS(flag, 4, 1, val)
#define WLM_FLAGS_ROAM_GET_POLICY(flag) WMI_GET_BITS(flag, 6, 2)
#define WLM_FLAGS_ROAM_SET_POLICY(flag, val) WMI_SET_BITS(flag, 6, 2, val)
#define WLM_FLAGS_ROAM_GET_WHEN_ALL_LINKS_FBMISS(flag) WMI_GET_BITS(flag, 8, 1)
#define WLM_FLAGS_ROAM_SET_WHEN_ALL_LINKS_FBMISS(flag, val) WMI_SET_BITS(flag, 8, 1, val)
#define WLM_FLAGS_PS_IS_BMPS_DISABLED(flag) WMI_GET_BITS(flag, 9, 1)
#define WLM_FLAGS_PS_IS_CSS_CLPS_DISABLED(flag) WMI_GET_BITS(flag, 10, 1)
#define WLM_FLAGS_PS_SET_CSS_CLPS_DISABLE(flag, val) WMI_SET_BITS(flag, 10, 1, val)
@ -50922,8 +51222,9 @@ typedef struct {
};
/*
* 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_peer_sn_info[];
* - wmi_vdev_vbss_peer_dyn_info;
*/
} wmi_vdev_vbss_config_cmd_fixed_param;
@ -50956,12 +51257,34 @@ typedef struct {
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 struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_vbss_peer_dyn_info */
union {
A_UINT32 peer_dyn_info1_word32;
struct {
/** 15:0 omi
* 31:16 eht_omi
*/
A_UINT32
omi: 16,
eht_omi: 16;
};
};
union {
A_UINT32 peer_dyn_info2_word32;
struct {
/** 1:0 pm
* 31:2 reserved
*/
A_UINT32
pm : 1,
rsvd : 31;
};
};
} wmi_vdev_vbss_peer_dyn_info;
typedef enum {
WMI_VBSS_GET_PEER_CONTEXT = 1,
WMI_VBSS_SET_PEER_CONTEXT = 2,
@ -50980,6 +51303,15 @@ typedef enum {
#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)
#define WMI_VDEV_VBSS_DYN_INFO_GET_OMI(peer_dyn_info1) WMI_GET_BITS(omi, 0, 16)
#define WMI_VDEV_VBSS_DYN_INFO_SET_OMI(peer_dyn_info1, value) WMI_SET_BITS(omi, 0, 16, value)
#define WMI_VDEV_VBSS_DYN_INFO_GET_EHT_OMI(peer_dyn_info1) WMI_GET_BITS(eht_omi, 16, 16)
#define WMI_VDEV_VBSS_DYN_INFO_SET_EHT_OMI(peer_dyn_info1, value) WMI_SET_BITS(eht_omi, 16, 16, value)
#define WMI_VDEV_VBSS_DYN_INFO_GET_PM(peer_dyn_info2) WMI_GET_BITS(pm, 0, 1)
#define WMI_VDEV_VBSS_DYN_INFO_SET_PM(peer_dyn_info2, value) WMI_SET_BITS(pm, 0, 1, value)
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_vbss_config_event_fixed_param */
@ -50994,6 +51326,93 @@ typedef struct {
} wmi_vdev_vbss_config_event_fixed_param;
typedef enum {
/* Channel bandwidth based semi static PCIe config */
WMI_PCIE_CONFIG_TYPE_CHANNEL_BANDWIDTH,
/* Force a specific PCIe config */
WMI_PCIE_CONFIG_TYPE_FORCED_STATIC,
} wmi_pcie_config_type_e;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_energy_mgmt_pcie_config_cmd_fixed_param */
A_UINT32 tlv_header;
/** enable or disable PCIe config */
A_UINT32 enable;
/* PCIe config type (holds a wmi_pcie_config_type_e value) */
A_UINT32 config_type;
/** pcie_gen: pcie generation to be used
* pcie_lane:pcie lane config (lane number) to be used
*/
A_UINT32 pcie_gen;
A_UINT32 pcie_lane;
} wmi_energy_mgmt_pcie_config_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_energy_mgmt_pcie_lpm_cmd_fixed_param */
A_UINT32 tlv_header;
/** enable or disable PCIe LPM */
A_UINT32 enable;
} wmi_energy_mgmt_pcie_lpm_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_energy_mgmt_dcvs_config_cmd_fixed_param */
A_UINT32 tlv_header;
/** enable or disable DCVS config */
A_UINT32 enable;
} wmi_energy_mgmt_dcvs_config_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_energy_mgmt_dps_config_cmd_fixed_param */
A_UINT32 tlv_header;
/** enable or disable DPS config */
A_UINT32 enable;
/** PDEV identifier */
A_UINT32 pdev_id;
/** Channel to be used in DPS Low cap mode, freq must match the primary home chan freq */
wmi_channel low_cap_channel;
/** Tx chainmask to be used in DPS Low cap mode */
A_UINT32 low_cap_tx_chainmask;
/** Rx chainmask to be used in DPS Low cap mode */
A_UINT32 low_cap_rx_chainmask;
/** Mbps throughput after which DPS will be exited and notified to Host */
A_UINT32 exit_thpt_thrsld_mbps;
/** number of wakeups per second after which DPS will be exited and notified to Host */
A_UINT32 exit_wakeup_thrsld_per_second;
} wmi_energy_mgmt_edps_config_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_energy_mgmt_puo_config_cmd_fixed_param */
A_UINT32 tlv_header;
/** enable or disable DPS config */
A_UINT32 enable;
/** PDEV identifier */
A_UINT32 pdev_id;
/** Channel to be used in PUO Low cap mode, freq must match the primary home chan freq */
wmi_channel low_cap_channel;
/** Tx chainmask to be used in Low cap mode */
A_UINT32 low_cap_tx_chainmask;
/** Rx chainmask to be used in Low cap mode */
A_UINT32 low_cap_rx_chainmask;
/** minimum duration required between SP end and SP start to trigger entering to doze state */
A_UINT32 min_doze_thrsld_in_us;
} wmi_energy_mgmt_puo_config_cmd_fixed_param;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_energy_mgmt_eco_mode_config_cmd_fixed_param */
A_UINT32 tlv_header;
/** enable or disable DPS config */
A_UINT32 enable;
/** PDEV identifier */
A_UINT32 pdev_id;
} wmi_energy_mgmt_eco_mode_config_cmd_fixed_param;
/* ADD NEW DEFS HERE */

View file

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