Loading fw/htt.h +8 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 fw/htt_ppdu_stats.h +42 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; is_smart_ulofdma_basic_trig: 1, reserved2 : 15; /* * Transmit powers (signed values packed into unsigned bitfields) Loading Loading @@ -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, Loading Loading @@ -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 Loading Loading @@ -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 Loading fw/htt_stats.h +120 −4 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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 { \ Loading Loading @@ -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 { Loading Loading @@ -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; Loading Loading @@ -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 { Loading Loading @@ -6500,8 +6554,11 @@ typedef enum { 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 */ Loading Loading @@ -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 Loading fw/wmi_services.h +5 −0 Original line number Diff line number Diff line Loading @@ -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 Loading fw/wmi_tlv_defs.h +28 −3 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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 */ Loading Loading @@ -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 */ Loading Loading @@ -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 *******************************/ Loading Loading @@ -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 */ Loading Loading @@ -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); /* Loading Loading @@ -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 */ Loading Loading @@ -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 } Loading Loading
fw/htt.h +8 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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
fw/htt_ppdu_stats.h +42 −4 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; is_smart_ulofdma_basic_trig: 1, reserved2 : 15; /* * Transmit powers (signed values packed into unsigned bitfields) Loading Loading @@ -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, Loading Loading @@ -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 Loading Loading @@ -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 Loading
fw/htt_stats.h +120 −4 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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 { \ Loading Loading @@ -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 { Loading Loading @@ -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; Loading Loading @@ -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 { Loading Loading @@ -6500,8 +6554,11 @@ typedef enum { 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 */ Loading Loading @@ -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 Loading
fw/wmi_services.h +5 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
fw/wmi_tlv_defs.h +28 −3 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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 */ Loading Loading @@ -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 */ Loading Loading @@ -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 *******************************/ Loading Loading @@ -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 */ Loading Loading @@ -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); /* Loading Loading @@ -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 */ Loading Loading @@ -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 } Loading