Merge 5bbd356e53 on remote branch

Change-Id: I226e9c264a64af350d79ddf747e5dea15c631911
This commit is contained in:
Linux Build Service Account 2023-08-28 00:48:16 -07:00
commit 2984f7d689
7 changed files with 444 additions and 35 deletions

View file

@ -251,9 +251,10 @@
* 3.123 Add HTT_OPTION_TLV_TCL_METADATA_V21 def.
* 3.124 Add HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT def.
* 3.125 Expand fisa_aggr_limit bits in fisa_control_bits_v2.
* 3.126 Add HTT_RXDATA_ERR_INVALID_PEER def.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 125
#define HTT_CURRENT_VERSION_MINOR 126
#define HTT_NUM_TX_FRAG_DESC 1024
@ -21383,6 +21384,12 @@ typedef enum htt_t2h_rx_data_msdu_err {
*/
HTT_RXDATA_ERR_ZERO_LEN_MSDU = 7,
/* ERR_INVALID_PEER:
* FW sets this error flag when MSDU is recived from invalid PEER
* HOST decides to send DEAUTH or not, recyles buffer.
*/
HTT_RXDATA_ERR_INVALID_PEER = 8,
/* add new error codes here */
HTT_RXDATA_ERR_MAX = 32

View file

@ -1057,6 +1057,20 @@ typedef struct {
((_var) |= ((_val) << HTT_PPDU_STATS_USER_COMMON_TLV_CHAIN_ENABLE_BITS_S)); \
} while (0)
#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG_M 0x00010000
#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG_S 16
#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG_GET(_var) \
(((_var) & HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG_M) >> \
HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG_S)
#define HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG, _val); \
((_var) |= ((_val) << HTT_PPDU_STATS_USER_COMMON_TLV_IS_SMART_ULOFDMA_BASIC_TRIG_S)); \
} while (0)
#define HTT_PPDU_STATS_USER_COMMON_TLV_TX_PWR_CHAINS_PER_U32 4
#define HTT_PPDU_STATS_USER_COMMON_TLV_TX_PWR_MASK 0x000000ff
@ -1194,10 +1208,15 @@ typedef struct {
* Default value: 1
* tx_pwr[0] value is used for all chains if chain_enable_bits field
* is set to 1.
*
* is_smart_ulofdma_basic_trig:
* To check if user grouped in UL OFDMA Basic Trigger Frame is
* due to Smart Basic Trigger.
*/
A_UINT32 tx_pwr_multiplier : 8,
chain_enable_bits : 8,
reserved2 : 16;
A_UINT32 tx_pwr_multiplier : 8,
chain_enable_bits : 8,
is_smart_ulofdma_basic_trig: 1,
reserved2 : 15;
/*
* Transmit powers (signed values packed into unsigned bitfields)
@ -1819,6 +1838,19 @@ typedef enum HTT_PPDU_STATS_RESP_PPDU_TYPE HTT_PPDU_STATS_RESP_PPDU_TYPE;
((_var) |= ((_val) << HTT_PPDU_STATS_USER_RATE_TLV_EXTRA_EHT_LTF_S)); \
} while (0)
#define HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE_M 0x00020000
#define HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE_S 17
#define HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE_GET(_var) \
(((_var) & HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE_M) >> \
HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE_S)
#define HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE_SET (_var , _val) \
do { \
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE, _val); \
((_var) |= ((_val) << HTT_PPDU_STATS_USER_RATE_TLV_IS_MIN_RATE_S)); \
} while (0)
typedef enum HTT_PPDU_STATS_RU_SIZE {
HTT_PPDU_STATS_RU_26,
HTT_PPDU_STATS_RU_52,
@ -2009,7 +2041,8 @@ typedef struct {
*/
A_UINT32 punc_pattern_bitmap: 16,
extra_eht_ltf: 1,
reserved4: 15;
is_min_rate: 1,
reserved4: 14;
} htt_ppdu_stats_user_rate_tlv;
#define HTT_PPDU_STATS_USR_RATE_VALID_M 0x80000000
@ -2479,6 +2512,11 @@ typedef struct {
* for BW supported by Smart Antenna - 320 MHZ
*/
A_UINT32 max_rates_ext;
/* hw_prot_dur_us:
* hw protection frame's FES duration in micro seconds.
*/
A_UINT32 hw_prot_dur_us;
} htt_ppdu_stats_user_cmpltn_common_tlv;
#define HTT_PPDU_STATS_USER_CMPLTN_BA_BITMAP_TLV_TID_NUM_M 0x000000ff

View file

@ -555,6 +555,34 @@ enum htt_dbg_ext_stats_type {
*/
HTT_DBG_CODEL_STATS = 58,
/** HTT_DBG_ODD_PDEV_BE_TX_MU_OFDMA_STATS
* PARAMS:
* - No Params
* RESP MSG:
* - htt_tx_pdev_mpdu_stats_tlv
*/
HTT_DBG_ODD_PDEV_BE_TX_MU_OFDMA_STATS = 59,
/** HTT_DBG_EXT_STATS_PDEV_UL_TRIGGER
* PARAMS:
* - No Params
* RESP MSG:
* - htt_rx_pdev_be_ul_ofdma_user_stats_tlv
*/
HTT_DBG_ODD_UL_BE_OFDMA_STATS = 60,
/** HTT_DBG_ODD_BE_TXBF_OFDMA_STATS
*/
HTT_DBG_ODD_BE_TXBF_OFDMA_STATS = 61,
/** HTT_DBG_ODD_STATS_PDEV_BE_UL_MUMIMO_TRIG_STATS
* PARAMS:
* - No Params
* RESP MSG:
* - htt_rx_pdev_be_ul_ofdma_user_stats_tlv
*/
HTT_DBG_ODD_STATS_PDEV_BE_UL_MUMIMO_TRIG_STATS = 62,
/* keep this last */
HTT_DBG_NUM_EXT_STATS = 256,
@ -1636,6 +1664,13 @@ typedef struct {
#define HTT_PEER_DETAILS_ML_PEER_ID_S 1
#define HTT_PEER_DETAILS_LINK_IDX_M 0x001fe000
#define HTT_PEER_DETAILS_LINK_IDX_S 13
#define HTT_PEER_DETAILS_USE_PPE_M 0x00200000
#define HTT_PEER_DETAILS_USE_PPE_S 21
#define HTT_PEER_DETAILS_SRC_INFO_M 0x00000fff
#define HTT_PEER_DETAILS_SRC_INFO_S 0
#define HTT_PEER_DETAILS_SET(word, httsym, val) \
do { \
@ -1664,7 +1699,11 @@ typedef struct {
A_UINT32 ml_peer_id_valid : 1, /* [0:0] */
ml_peer_id : 12, /* [12:1] */
link_idx : 8, /* [20:13] */
rsvd : 11; /* [31:21] */
use_ppe : 1, /* [21:21] */
rsvd0 : 10; /* [31:22] */
/* Dword 9 */
A_UINT32 src_info : 12, /* [11:0] */
rsvd1 : 20; /* [31:12] */
} htt_peer_details_tlv;
typedef struct {
@ -2417,6 +2456,8 @@ typedef enum {
#define HTT_TX_NUM_MUMIMO_GRP_INVALID_WORDS \
(HTT_STATS_MAX_MUMIMO_GRP_SZ * HTT_STATS_MAX_INVALID_REASON_CODE)
#define HTT_MAX_NUM_SBT_INTR 4
typedef struct {
htt_tlv_hdr_t tlv_hdr;
@ -2469,6 +2510,19 @@ typedef struct {
/** 11AX HE MU Standalone Freq. BSRP Trigger completed with error(s) */
A_UINT32 standalone_ax_bsr_trigger_err[HTT_NUM_AC_WMM];
/* END DEPRECATED FIELDS */
/** smart_basic_trig_sch_histogram:
* Count how many times the interval between predictive basic triggers
* sent to a given STA based on analysis of that STA's traffic patterns
* is within a given range:
*
* smart_basic_trig_sch_histogram[0]: SBT interval <= 10 ms
* smart_basic_trig_sch_histogram[1]: 10 ms < SBT interval <= 20 ms
* smart_basic_trig_sch_histogram[2]: 20 ms < SBT interval <= 30 ms
* smart_basic_trig_sch_histogram[3]: 30 ms < SBT interval <= 40 ms
*
* (Smart basic triggers are only used with intervals <= 40 ms.)
*/
A_UINT32 smart_basic_trig_sch_histogram[HTT_MAX_NUM_SBT_INTR];
} htt_tx_selfgen_cmn_stats_tlv;
typedef struct {
@ -6496,12 +6550,15 @@ typedef enum {
} htt_txbf_sound_steer_modes;
typedef enum {
HTT_TX_AC_SOUNDING_MODE = 0,
HTT_TX_AX_SOUNDING_MODE = 1,
HTT_TX_BE_SOUNDING_MODE = 2,
HTT_TX_AC_SOUNDING_MODE = 0,
HTT_TX_AX_SOUNDING_MODE = 1,
HTT_TX_BE_SOUNDING_MODE = 2,
HTT_TX_CMN_SOUNDING_MODE = 3,
HTT_TX_CV_CORR_MODE = 4,
} htt_stats_sounding_tx_mode;
#define HTT_TX_CV_CORR_MAX_NUM_COLUMNS 8
typedef struct {
htt_tlv_hdr_t tlv_hdr;
A_UINT32 tx_sounding_mode; /* HTT_TX_XX_SOUNDING_MODE */
@ -6614,6 +6671,65 @@ typedef struct {
A_UINT32 adaptive_snd_kicked_in;
/** Total number of times we switched back to normal sounding interval */
A_UINT32 adaptive_snd_back_to_default;
/**
* Below are CV correlation feature related stats.
* This feature is used for DL MU MIMO, but is not available
* from certain legacy targets.
*/
/** number of CV Correlation triggers for online mode */
A_UINT32 cv_corr_trigger_online_mode;
/** number of CV Correlation triggers for offline mode */
A_UINT32 cv_corr_trigger_offline_mode;
/** number of CV Correlation triggers for hybrid mode */
A_UINT32 cv_corr_trigger_hybrid_mode;
/** number of CV Correlation triggers with computation level 0 */
A_UINT32 cv_corr_trigger_computation_level_0;
/** number of CV Correlation triggers with computation level 1 */
A_UINT32 cv_corr_trigger_computation_level_1;
/** number of CV Correlation triggers with computation level 2 */
A_UINT32 cv_corr_trigger_computation_level_2;
/** number of users for which CV Correlation was triggered */
A_UINT32 cv_corr_trigger_num_users[HTT_TX_CV_CORR_MAX_NUM_COLUMNS];
/** number of streams for which CV Correlation was triggered */
A_UINT32 cv_corr_trigger_num_streams[HTT_TX_CV_CORR_MAX_NUM_COLUMNS];
/** number of CV Correlation buffers received through IPC tickle */
A_UINT32 cv_corr_upload_total_buf_received;
/** number of CV Correlation buffers fed back to the IPC ring */
A_UINT32 cv_corr_upload_total_buf_fed_back;
/** number of CV Correlation buffers for which processing failed */
A_UINT32 cv_corr_upload_total_processing_failed;
/**
* number of CV Correlation buffers for which processing failed,
* due to no users being present in parsed buffer
*/
A_UINT32 cv_corr_upload_failed_total_users_zero;
/**
* number of CV Correlation buffers for which processing failed,
* due to number of users present in parsed buffer exceeded
* CV_CORR_MAX_NUM_COLUMNS
*/
A_UINT32 cv_corr_upload_failed_total_users_exceeded;
/**
* number of CV Correlation buffers for which processing failed,
* due to peer pointer for parsed peer not available
*/
A_UINT32 cv_corr_upload_failed_peer_not_found;
/**
* number of CV Correlation buffers for which processing encountered,
* Nss of peer exceeding SCHED_ALGO_MAX_SUPPORTED_MUMIMO_NSS
*/
A_UINT32 cv_corr_upload_user_nss_exceeded;
/**
* number of CV Correlation buffers for which processing encountered,
* invalid reverse look up index for fetching CV correlation results
*/
A_UINT32 cv_corr_upload_invalid_lookup_index;
/** number of users present in uploaded CV Correlation results buffer */
A_UINT32 cv_corr_upload_total_num_users[HTT_TX_CV_CORR_MAX_NUM_COLUMNS];
/** number of streams present in uploaded CV Correlation results buffer */
A_UINT32 cv_corr_upload_total_num_streams[HTT_TX_CV_CORR_MAX_NUM_COLUMNS];
} htt_tx_sounding_stats_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO

View file

@ -634,6 +634,11 @@ typedef enum {
WMI_SERVICE_N_LINK_MLO_SUPPORT = 381, /* Indicate FW supports N MLO link & vdev re-purpose between links */
WMI_SERVICE_ATF_MAX_CLIENT_512_SUPPORT = 382, /* Indicates FW supports maximum of 512 clients when ATF is enabled */
WMI_SERVICE_FISA_DYNAMIC_MSDU_AGGR_SIZE_SUPPORT = 383, /* Indicates FW support for FISA aggregation size up to 64 instead of only 16 */
WMI_SERVICE_BRIDGE_VDEV_SUPPORT = 384, /* Indicated FW supports Bridge VDEV */
WMI_SERVICE_MLO_MODE1_RECOVERY_SUPPORTED = 385, /* Indicate fw support for mlo mode1 recovery */
WMI_SERVICE_TX_PWR_PER_PPDU_STATS_SUPPORT = 386, /* FW support to check tx power stats per PPDU */
WMI_SERVICE_DISABLE_WDS_PEER_MAP_UNMAP_EVENT_SUPPORT = 387, /* Indicate FW support to disable wds peer map/unmap events */
WMI_SERVICE_PDEV_WSI_STATS_INFO_SUPPORT = 388, /* Support for WSI Stats Info. */
WMI_MAX_EXT2_SERVICE

View file

@ -1392,6 +1392,10 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_aux_dev_capabilities,
WMITLV_TAG_STRUC_wmi_nan_oem_data_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_nan_oem_data_event_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param,
WMITLV_TAG_STRUC_wmi_enhanced_aoa_gain_phase_data_hdr,
WMITLV_TAG_STRUC_wmi_ctrl_path_sta_rrm_stats_struct,
WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
* IMPORTANT: Please add _ALL_ WMI Commands Here.
@ -1926,6 +1930,7 @@ typedef enum {
OP(WMI_MLO_LINK_SET_BSS_PARAMS_CMDID) \
OP(WMI_MLO_LINK_SWITCH_CONF_CMDID) \
OP(WMI_NAN_OEM_DATA_CMDID) \
OP(WMI_PDEV_WSI_STATS_INFO_CMDID) \
/* add new CMD_LIST elements above this line */
@ -2241,6 +2246,7 @@ typedef enum {
OP(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID) \
OP(WMI_MLO_LINK_SWITCH_REQUEST_EVENTID) \
OP(WMI_NAN_OEM_DATA_EVENTID) \
OP(WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID) \
/* add new EVT_LIST elements above this line */
@ -5452,6 +5458,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_BSS_PARAMS_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param, wmi_mlo_link_switch_cnf_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID);
/* WMI CMD used to send WSI stats info. */
#define WMITLV_TABLE_WMI_PDEV_WSI_STATS_INFO_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param, wmi_pdev_wsi_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WSI_STATS_INFO_CMDID);
/************************** TLV definitions of WMI events *******************************/
@ -5725,7 +5736,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_KICKOUT_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bpcc_bufp, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_is_my_mgmt_frame, my_frame, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_link_removal_tbtt_count, link_removal_tbtt_count, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_bcast_t2lm_info, mlo_bcast_t2lm_info, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_bcast_t2lm_info, mlo_bcast_t2lm_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_EVENTID);
/* Management Rx FW Consumed Event */
@ -6916,7 +6928,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_t2lm_stats_struct, ctrl_path_t2lm_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_blanking_stats_struct, ctrl_path_blanking_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_peer_stats_struct, ctrl_path_peer_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_vdev_stats_struct, ctrl_path_vdev_stats, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_vdev_stats_struct, ctrl_path_vdev_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_sta_rrm_stats_struct, ctrl_path_sta_rrm_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID);
/*
@ -7224,7 +7237,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_SESSION_STATS_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_active_vdev_bitmap, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_vdev_bitmap, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_active_ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_ieee_link_id_bitmap, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, force_inactive_ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, current_active_ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, current_inactive_ieee_link_id_bitmap, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID);
/* Get DPD status Event */
@ -7431,6 +7446,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_primary_link_peer_migration_status, primary_link_peer_migration_status, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID);
/*
* Update AOA Phase delta values for all gain tables event
* Below definition shows TLV packing of AOA Phase delta values for all gain tables event
*/
#define WMITLV_TABLE_WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param, wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_enhanced_aoa_gain_phase_data_hdr, aoa_data_hdr, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, aoa_data_buf, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID);
#ifdef __cplusplus
}

View file

@ -512,6 +512,8 @@ typedef enum {
WMI_PDEV_SET_TGTR2P_TABLE_CMDID,
/* WMI cmd to set RF path for PHY */
WMI_PDEV_SET_RF_PATH_CMDID,
/** WSI stats info WMI command */
WMI_PDEV_WSI_STATS_INFO_CMDID,
/* VDEV (virtual device) specific commands */
@ -1748,6 +1750,8 @@ typedef enum {
/* Event to indicate completion on RF path */
WMI_PDEV_SET_RF_PATH_RESP_EVENTID,
/* Event to get AOA phasedelta values for all gain tables from HALPHY */
WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID,
/* VDEV specific events */
/** VDEV started event in response to VDEV_START request */
@ -4478,8 +4482,17 @@ typedef struct {
* 0 - Primary
* 1 - Secondary
* Refer to WMI_RSRC_CFG_FLAGS2_RF_PATH_MODE_GET/SET macros.
* Bit 18 - disable_wds_peer_map_unmap_event
* Flag to indicate whether the WDS peer map/unmap event should be
* processed or ignored.
* 0 - leave the WDS peer map/unmap event enabled
* 1 - disable the WDS peer map/unmap event
* This flag shall only be set if the target has set the
* WMI_SERVICE_DISABLE_WDS_PEER_MAP_UNMAP_EVENT_SUPPORT flag.
* Refer to WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_PEER_MAP_UNMAP_EVENT_GET
* and _SET macros.
*
* Bits 31:18 - Reserved
* Bits 31:19 - Reserved
*/
A_UINT32 flags2;
/** @brief host_service_flags - can be used by Host to indicate
@ -4945,6 +4958,11 @@ typedef struct {
#define WMI_RSRC_CFG_FLAGS2_RF_PATH_MODE_SET(flags2, value) \
WMI_SET_BITS(flags2, 17, 1, value)
#define WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_PEER_MAP_UNMAP_EVENT_GET(flags2) \
WMI_GET_BITS(flags2, 18, 1)
#define WMI_RSRC_CFG_FLAGS2_DISABLE_WDS_PEER_MAP_UNMAP_EVENT_SET(flags2, value) \
WMI_SET_BITS(flags2, 18, 1, value)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_GET(host_service_flags) \
WMI_GET_BITS(host_service_flags, 0, 1)
@ -9241,6 +9259,27 @@ typedef enum {
* units are microseconds
*/
WMI_PDEV_PARAM_SLOT_TIME,
/** VO dedicated time -
* allocate dedicated time slots for VO access category across all
* ATF groups in a pdev.
* Note :
* 1. Per AC airtime per group is already available through
* ATF WMM WMI commands
* 2. The dedicated time slot is applicable per second
* 3. Units are in milli-seconds
*/
WMI_PDEV_PARAM_ATF_VO_DEDICATED_TIME,
/** VI dedicated time -
* allocate dedicated time slots for VI access category across all
* ATF groups in a pdev.
* Note :
* 1. Per AC airtime per group is already given through ATF WMM WMI cmds
* 2. The dedicated time slot is applicable per second
* 3. Units are in milli-seconds
*/
WMI_PDEV_PARAM_ATF_VI_DEDICATED_TIME,
} WMI_PDEV_PARAM;
#define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1)
@ -10535,20 +10574,6 @@ typedef enum {
WMI_CHAN_WIDTH_MAX,
} wmi_channel_width;
/* channel width switch type */
typedef enum {
WMI_CHAN_WIDTH_SWITCH_TYPE_TXRX = 0,
WMI_CHAN_WIDTH_SWITCH_TYPE_TXONLY = 1,
WMI_CHAN_WIDTH_SWITCH_TYPE_MAX,
} wmi_chan_width_switch_type;
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_GET_CHAN_WIDTH(chwidth_notify) WMI_GET_BITS(chwidth_notify, 0, 8)
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_SET_CHAN_WIDTH(chwidth_notify, value) WMI_SET_BITS(chwidth_notify, 0, 8, value)
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_GET_SWITCH_TYPE(chwidth_notify) WMI_GET_BITS(chwidth_notify, 8, 2)
#define WMI_VDEV_CHAN_WIDTH_NOTIFY_SET_SWITCH_TYPE(chwidth_notify, value) WMI_SET_BITS(chwidth_notify, 8, 2, value)
/* Clear stats */
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param */
@ -15675,6 +15700,18 @@ typedef struct {
#define WMI_VDEV_STATS_IS_MULTI_GROUP_KEY_ENABLED_GET(flag) \
WMI_GET_BITS(flag, 31, 1)
typedef struct {
/* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ctrl_path_sta_rrm_stats_struct */
A_UINT32 tlv_header;
A_UINT32 dot11GroupTransmittedFrameCount;
A_UINT32 dot11GroupReceivedFrameCount;
A_UINT32 dot11TransmittedFrameCount;
A_UINT32 dot11AckFailureCount;
A_UINT32 dot11FailedCount;
A_UINT32 dot11FCSErrorCount;
A_UINT32 dot11RTSSuccessCount;
A_UINT32 dot11RTSFailureCount;
} wmi_ctrl_path_sta_rrm_stats_struct;
/**
* peer statistics.
@ -16168,6 +16205,12 @@ typedef enum {
* If SW encryption is enabled, key plumbing will not happen in FW.
*/
#define WMI_UNIFIED_VDEV_START_HW_ENCRYPTION_DISABLED (1<<4)
/** Indicates VAP is used for MLO repurpose.
* This Indicates that vap can be brought up as 11ax or 11be and can be
* repurposed based on the above stack on the fly to change from MLO to
* non MLO, currently we support only 11ax and 11be transition.
*/
#define WMI_UNIFIED_VDEV_START_MLO_REPURPOSE_VAP (1<<5)
/* BSS color 0-6 */
#define WMI_HEOPS_COLOR_GET_D2(he_ops) WMI_GET_BITS(he_ops, 0, 6)
@ -18058,11 +18101,7 @@ typedef enum {
* Please note incase of STA VDEV only BSS peer gets updated,
* associated TDLS peer bandwidth won't be impacted.
*
* bit 7:0 the updated bandwidth is specified with
* a wmi_channel_width value
* bit 9:8 the updated bandwidth switch type is specified with
* a wmi_chan_width_switch_type value
* bit 31:10 reserved
* The updated bandwidth is specified with a wmi_channel_width value.
*/
WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY, /* 0xBA */
@ -18084,6 +18123,18 @@ typedef enum {
*/
WMI_VDEV_PARAM_RTT_11AZ_TB_MAX_SESSION_EXPIRY, /* 0xBD */
/*
* WiFi Standard version to be supported.
* Value is from enum WMI_WIFI_STANDARD
*/
WMI_VDEV_PARAM_WIFI_STANDARD_VERSION, /* 0xBE */
/*
* Allow to disable TWT on 2G channel
* if corresponding INI is set
*/
WMI_VDEV_PARAM_DISABLE_2G_TWT, /* 0xBF */
/*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
* The below vdev param types are used for prototyping, and are
@ -19076,6 +19127,12 @@ enum wmi_sta_ps_param_uapsd {
WMI_STA_PS_UAPSD_AC3_TRIGGER_EN = (1 << 7),
};
enum wmi_sta_ps_scheme_cfg {
WMI_STA_PS_OPM_CONSERVATIVE = 0,
WMI_STA_PS_OPM_AGGRESSIVE = 1,
WMI_STA_PS_USER_DEF = 2,
};
enum wmi_sta_powersave_param {
/**
* Controls how frames are retrievd from AP while STA is sleeping
@ -19121,9 +19178,10 @@ WMI_STA_PS_PARAM_UAPSD = 4,
WMI_STA_PS_PARAM_QPOWER_PSPOLL_COUNT = 5,
/**
* Enable QPower
* 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
@ -19152,6 +19210,12 @@ WMI_STA_PS_PARAM_MAX_RESET_ITO_COUNT_ON_TIM_NO_TXRX = 10,
* in WOW
*/
WMI_STA_PS_PARAM_ENABLE_PS_OPT_IN_WOW = 11,
/**
* Speculative interval in ms
*/
WMI_STA_PS_PARAM_SPEC_WAKE_INTERVAL = 12,
};
typedef struct {
@ -20147,6 +20211,8 @@ typedef struct {
#define WMI_PEER_FT_ROAMING_PEER_UPDATE 0x29
#define WMI_PEER_PARAM_DMS_SUPPORT 0x2A
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
@ -23202,6 +23268,8 @@ typedef enum wake_reason_e {
WOW_REASON_XGAP,
/* COEX channel avoid event */
WOW_REASON_COEX_CHAVD,
/* vdev repurpose request event */
WOW_REASON_VDEV_REPURPOSE,
/* add new WOW_REASON_ defs before this line */
WOW_REASON_MAX,
@ -24853,6 +24921,13 @@ typedef enum
*/
WMI_VENDOR_OUI_ACTION_ENABLE_CTS2SELF_WITH_QOS_NULL = 11,
/*
* Send SMPS frame following OMN frame on VHT conncection if specific
* vendor OUI received in beacon.
*/
WMI_VENDOR_OUI_ACTION_SEND_SMPS_FRAME_WITH_OMN = 12,
/* Add any action before this line */
WMI_VENDOR_OUI_ACTION_MAX_ACTION_ID
} wmi_vendor_oui_action_id;
@ -34624,6 +34699,7 @@ typedef enum {
WMI_REQUEST_CTRL_PATH_BLANKING_STAT = 15,
WMI_REQUEST_CTRL_PATH_PEER_STAT = 16,
WMI_REQUEST_CTRL_PATH_VDEV_DEBUG_STAT = 17,
WMI_REQUEST_CTRL_STA_RRM_STAT = 18,
} wmi_ctrl_path_stats_id;
typedef enum {
@ -36748,6 +36824,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_CMDID);
WMI_RETURN_STRING(WMI_MLO_LINK_RECOMMENDATION_CMDID);
WMI_RETURN_STRING(WMI_NAN_OEM_DATA_CMDID);
WMI_RETURN_STRING(WMI_PDEV_WSI_STATS_INFO_CMDID);
}
return (A_UINT8 *) "Invalid WMI cmd";
@ -38385,6 +38462,8 @@ typedef enum _WMI_ADD_TWT_STATUS_T {
WMI_ADD_TWT_STATUS_DIALOG_ID_BUSY, /* FW is in the process of handling this dialog */
WMI_ADD_TWT_STATUS_BTWT_NOT_ENBABLED, /* Broadcast TWT is not enabled */
WMI_ADD_TWT_STATUS_RTWT_NOT_ENBABLED, /* Restricted TWT is not enabled */
WMI_ADD_TWT_STATUS_LINK_SWITCH_IN_PROGRESS, /* Link switch is ongoing */
WMI_ADD_TWT_STATUS_UNSUPPORTED_MODE_MLMR, /* Unsupported in MLMR mode */
} WMI_ADD_TWT_STATUS_T;
typedef struct {
@ -40385,6 +40464,131 @@ typedef struct {
A_UINT32 perChainIbfCalVal[WMI_MAX_CHAINS_FOR_AOA_RCC];
} wmi_pdev_aoa_phasedelta_evt_fixed_param;
#define WMI_AOA_MAX_SUPPORTED_CHAINS_GET(chain_data) \
WMI_GET_BITS(chain_data, 0, 16)
#define WMI_AOA_MAX_SUPPORTED_CHAINS_SET(chain_data, value) \
WMI_SET_BITS(chain_data, 0, 16, value)
#define WMI_AOA_SUPPORTED_CHAINMASK_GET(chain_data) \
WMI_GET_BITS(chain_data, 16, 16)
#define WMI_AOA_SUPPORTED_CHAINMASK_SET(chain_data, value) \
WMI_SET_BITS(chain_data, 16, 16, value)
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_eventid */
A_UINT32 tlv_header;
/* Current Operating Channel Frequency in MHz */
A_UINT32 freq;
/** pdev_id:
* Identify the MAC.
* See macros starting with WMI_PDEV_ID_ for values.
* In non-DBDC case host should set it to 0.
*/
A_UINT32 pdev_id;
/** chain_info:
* B0 -- B15 : Max number of chains supported
* B16 --B31 : Data shared for chainmask -
* indicates the chains to which the data shared.
*/
union {
struct {
A_UINT32 max_supported_chains:16,
data_for_chainmask:16;
};
A_UINT32 chain_info;
};
/** XBAR configuration to get RF2BB/BB2RF chain mapping
* Samples of xbar_config,
* If xbar_config is 0xFAC688(hex):
* RF chains 0-7 are connected to BB chains 0-7
* here,
* bits 0 to 2 = 0, maps BB chain 0 for RF chain 0
* bits 3 to 5 = 1, maps BB chain 1 for RF chain 1
* bits 6 to 8 = 2, maps BB chain 2 for RF chain 2
* bits 9 to 11 = 3, maps BB chain 3 for RF chain 3
* bits 12 to 14 = 4, maps BB chain 4 for RF chain 4
* bits 15 to 17 = 5, maps BB chain 5 for RF chain 5
* bits 18 to 20 = 6, maps BB chain 6 for RF chain 6
* bits 21 to 23 = 7, maps BB chain 7 for RF chain 7
*
* If xbar_config is 0x688FAC(hex):
* RF chains 0-3 are connected to BB chains 4-7
* RF chains 4-7 are connected to BB chains 0-3
* here,
* bits 0 to 2 = 4, maps BB chain 4 for RF chain 0
* bits 3 to 5 = 5, maps BB chain 5 for RF chain 1
* bits 6 to 8 = 6, maps BB chain 6 for RF chain 2
* bits 9 to 11 = 7, maps BB chain 7 for RF chain 3
* bits 12 to 14 = 0, maps BB chain 0 for RF chain 4
* bits 15 to 17 = 1, maps BB chain 1 for RF chain 5
* bits 18 to 20 = 2, maps BB chain 2 for RF chain 6
* bits 21 to 23 = 3, maps BB chain 3 for RF chain 7
*/
A_UINT32 xbar_config;
/**
* IBF cal values:
* Used for final AoA calculation
* [AoAPhase = ( PhaseDeltaValue + IBFcalValue ) % 1024]
*/
A_UINT32 per_chain_ibf_cal_val[WMI_MAX_CHAINS];
/**
* This TLV is followed by TLV arrays containing
* different types of data header and data buffer TLVs:
* 1. wmi_enhanced_aoa_gain_phase_data_hdr.
* This TLV contains the array of structure fields which indicate
* the type and format of data carried in the following data buffer
* TLV.
* 2. aoa_data_buf[] - Data buffer TLV.
* TLV header contains the total buffer size.
* Data buffer contains the phase_delta_array[Chains][GainEntries]
* in absolute phase values ranging 0-1024 and
* gain_delta_array[Chains][GainEntries] are gain index values.
*/
} wmi_pdev_enhanced_aoa_phasedelta_evt_fixed_param;
#define WMI_AOA_DATA_TYPE_GET(data_info) \
WMI_GET_BITS(data_info, 0, 8)
#define WMI_AOA_DATA_TYPE_SET(data_info,value) \
WMI_SET_BITS(data_info, 0, 8, value)
#define WMI_AOA_NUM_ENTIRES_GET(data_info) \
WMI_GET_BITS(data_info, 8, 8)
#define WMI_AOA_NUM_DATA_ENTRIES_SET(data_info,value) \
WMI_SET_BITS(data_info, 8, 8, value)
typedef enum _WMI_AOA_EVENT_DATA_TYPE {
WMI_PHASE_DELTA_ARRAY = 0x0,
WMI_GAIN_GROUP_STOP_ARRAY = 0x1,
/* add new types here */
WMI_MAX_DATA_TYPE_ARRAY,
} WMI_AOA_EVENT_DATA_TYPE;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_pdev_enhanced_aoa_phasedelta_eventid */
A_UINT32 tlv_header;
/** data_info:
* Data follows the LSB first and MSB second order in a 32bit word
* bit mapping:
* B0 -- B7 : Data type
* B8 -- B15 : Number of entries to be parsed in terms of 32bit word
*
* If data is Phase delta values - Data type is 0x0
* group stop gain index values - Data type is 0x1
*
* num_entries - Total number of data entries in uint32
*/
union {
struct {
A_UINT32 data_type:8,
num_entries:8,
reserved:16;
};
A_UINT32 data_info;
};
} wmi_enhanced_aoa_gain_phase_data_hdr;
/* WMI_HALPHY_CAL_LIST:
*
* Below is the list of HALPHY online CAL currently enabled in
@ -44134,6 +44338,10 @@ typedef struct wmi_mlo_link_set_active_resp_event
* If use_ieee_link_id_bitmap equals 1, ieee_link_id_bitmap[] are valid.
* A_UINT32 force_active_ieee_link_id_bitmap[];
* A_UINT32 force_inactive_ieee_link_id_bitmap[];
*---
* current active ieee link id bitmap & inactive ieee link id bitmap
* A_UINT32 current_active_ieee_link_id_bitmap[];
* A_UINT32 current_inactive_ieee_link_id_bitmap[];
*/
} wmi_mlo_link_set_active_resp_event_fixed_param;
@ -45606,7 +45814,7 @@ typedef struct {
struct {
A_UINT32 vdev_id:8, /* vdev id for this link */
link_id:8, /* link id defined as in 802.11 BE spec. */
link_status:2, /* link_status - 0: active, 1: inactive */
link_status:2, /* link_status - 0: inactive, 1: active */
reserved:14;
};
A_UINT32 link_info;
@ -46196,6 +46404,16 @@ typedef struct {
A_UINT32 emlsr_pdev_id_map;
} wmi_aux_dev_capabilities;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param
*/
A_UINT32 tlv_header;
A_UINT32 pdev_id; /* for identifying the MAC */
A_UINT32 wsi_ingress_load_info;
A_UINT32 wsi_egress_load_info;
} wmi_pdev_wsi_stats_info_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_ 1357
#define __WMI_REVISION_ 1375
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work