diff --git a/fw/htt.h b/fw/htt.h index 55ceb9cb8c..67c187debd 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -762,6 +762,8 @@ typedef enum { HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v */ HTT_STATS_PDEV_BW_MGR_STATS_TAG = 170, /* htt_pdev_bw_mgr_stats_tlv */ HTT_STATS_TX_PDEV_AP_EDCA_PARAMS_STATS_TAG = 171, /* htt_tx_pdev_ap_edca_params_stats_tlv_v */ + HTT_STATS_TXBF_OFDMA_AX_STEER_MPDU_STATS_TAG = 172, /* htt_txbf_ofdma_ax_steer_mpdu_stats_tlv */ + HTT_STATS_TXBF_OFDMA_BE_STEER_MPDU_STATS_TAG = 173, /* htt_txbf_ofdma_be_steer_mpdu_stats_tlv */ HTT_STATS_MAX_TAG, diff --git a/fw/htt_stats.h b/fw/htt_stats.h index cb8707f155..1c48ab8b27 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -2672,6 +2672,18 @@ typedef struct { htt_txbf_ofdma_ax_steer_stats_elem_t ax_steer[1]; /* variable length */ } htt_txbf_ofdma_ax_steer_stats_tlv; +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /* 11AX HE OFDMA MPDUs tried in rbo steering */ + A_UINT32 ax_ofdma_rbo_steer_mpdus_tried; + /* 11AX HE OFDMA MPDUs failed in rbo steering */ + A_UINT32 ax_ofdma_rbo_steer_mpdus_failed; + /* 11AX HE OFDMA MPDUs tried in sifs steering */ + A_UINT32 ax_ofdma_sifs_steer_mpdus_tried; + /* 11AX HE OFDMA MPDUs failed in sifs steering */ + A_UINT32 ax_ofdma_sifs_steer_mpdus_failed; +} htt_txbf_ofdma_ax_steer_mpdu_stats_tlv; + typedef struct { /** 11BE EHT OFDMA NDPA frame queued to the HW */ A_UINT32 be_ofdma_ndpa_queued; @@ -2806,16 +2818,30 @@ typedef struct { htt_txbf_ofdma_be_steer_stats_elem_t be_steer[1]; /* variable length */ } htt_txbf_ofdma_be_steer_stats_tlv; +typedef struct { + htt_tlv_hdr_t tlv_hdr; + /* 11BE EHT OFDMA MPDUs tried in rbo steering */ + A_UINT32 be_ofdma_rbo_steer_mpdus_tried; + /* 11BE EHT OFDMA MPDUs failed in rbo steering */ + A_UINT32 be_ofdma_rbo_steer_mpdus_failed; + /* 11BE EHT OFDMA MPDUs tried in sifs steering */ + A_UINT32 be_ofdma_sifs_steer_mpdus_tried; + /* 11BE EHT OFDMA MPDUs failed in sifs steering */ + A_UINT32 be_ofdma_sifs_steer_mpdus_failed; +} htt_txbf_ofdma_be_steer_mpdu_stats_tlv; + /* STATS_TYPE : HTT_DBG_EXT_STATS_TXBF_OFDMA * TLV_TAGS: * - HTT_STATS_TXBF_OFDMA_NDPA_STATS_TAG * - HTT_STATS_TXBF_OFDMA_NDP_STATS_TAG * - HTT_STATS_TXBF_OFDMA_BRP_STATS_TAG * - HTT_STATS_TXBF_OFDMA_STEER_STATS_TAG + * - HTT_STATS_TXBF_OFDMA_AX_STEER_MPDU_STATS_TAG * - HTT_STATS_TXBF_OFDMA_BE_NDPA_STATS_TAG * - HTT_STATS_TXBF_OFDMA_BE_NDP_STATS_TAG * - HTT_STATS_TXBF_OFDMA_BE_BRP_STATS_TAG * - HTT_STATS_TXBF_OFDMA_BE_STEER_STATS_TAG + * - HTT_STATS_TXBF_OFDMA_BE_STEER_MPDU_STATS_TAG */ typedef struct { diff --git a/fw/wlan_module_ids.h b/fw/wlan_module_ids.h index 13fc6b8fba..97ec58fd06 100644 --- a/fw/wlan_module_ids.h +++ b/fw/wlan_module_ids.h @@ -139,6 +139,7 @@ typedef enum { WLAN_MODULE_T2LM, /* 0x64 */ WLAN_MODULE_HEALTH_MON, /* 0x65 */ WLAN_MODULE_XGAP, /* 0x66 */ + WLAN_MODULE_MLO_OWNERSHIP_UPDATE, /* 0x67 */ WLAN_MODULE_ID_MAX, diff --git a/fw/wmi_services.h b/fw/wmi_services.h index e066b19556..fc2b7539c3 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -602,6 +602,7 @@ typedef enum { WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT = 349, /* Extended Multiple VDEV Restart with Bitmap Support */ WMI_SERVICE_WMI_SERVICE_WPA3_SHA384_ROAM_SUPPORT = 350, /* Indicates FW supports WPA3 SHA384 roaming */ WMI_SERVICE_ODD_LIVEDUMP_SUPPORT = 351, /* Support for ODD Livedump from the FW */ + WMI_SERVICE_EIRP_PREFERRED_SUPPORT = 352, /* Support for OOBE feature where only EIRP powers will be sent in 6G TPC WMI */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 8d6dab6903..662fe53da4 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1302,6 +1302,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_wfa_config_ofdma, WMITLV_TAG_STRUC_wmi_livedump_request_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_livedump_response_event_fixed_param, + WMITLV_TAG_STRUC_wmi_prb_resp_tmpl_ml_info, } WMITLV_TAG_ID; /* @@ -2542,7 +2543,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_STA_UAPSD_AUTO_TRIG_CMDID); #define WMITLV_TABLE_WMI_PRB_TMPL_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param, wmi_prb_tmpl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_prb_info, wmi_bcn_prb_info, bcn_prb_info, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_prb_resp_tmpl_ml_info, ml_prb_resp_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PRB_TMPL_CMDID); diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 29a8935774..c8b1a662fa 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2336,7 +2336,7 @@ typedef enum { WMI_QUIET_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_QUIET_OFL), /* ODD events */ - WMI_ODD_LIVEDUMP_RESPONSE_EVENTID = WMI_CMD_GRP_START_ID(WMI_GRP_ODD), + WMI_ODD_LIVEDUMP_RESPONSE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_ODD), } WMI_EVT_ID; /* defines for OEM message sub-types */ @@ -3282,6 +3282,20 @@ typedef enum { WMI_AFC_FEATURE_6G_DEPLOYMENT_OUTDOOR_ONLY = 2, } WMI_AFC_FEATURE_6G_DEPLOYMENT_TYPE; +typedef enum { + WMI_BDF_VERSION_OK = 0, + + /* WMI_BDF_VERSION_TOO_OLD: + * BDF version is older than the oldest version supported by FW. + */ + WMI_BDF_VERSION_TOO_OLD = 1, + + /* WMI_BDF_VERSION_TOO_NEW: + * BDF version is newer than the newest version supported by FW. + */ + WMI_BDF_VERSION_TOO_NEW = 2, +} wmi_hw_bd_status_type; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_service_ready_ext2_event_fixed_param.*/ @@ -3401,6 +3415,11 @@ typedef struct { */ A_UINT32 afc_deployment_type; + /* + * Board data check report. Please see wmi_hw_bd_status_type enum values. + */ + A_UINT32 hw_bd_status; + /* Followed by next TLVs: * WMI_DMA_RING_CAPABILITIES dma_ring_caps[]; * wmi_spectral_bin_scaling_params wmi_bin_scaling_params[]; @@ -15480,6 +15499,26 @@ typedef struct { #define WMI_BEACON_PROTECTION_EN_GET(param) \ WMI_GET_BITS(param, WMI_BEACON_PROTECTION_BIT_POS, 1) +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_prb_resp_tmpl_ml_info */ + /** hw_link_id: + * Unique link id across SOCs, got as part of QMI handshake + */ + A_UINT32 hw_link_id; + /** + * CU vdev map for the Critical update category-1 + * (Inclusion of CU IES) + */ + A_UINT32 cu_vdev_map_cat1_lo; /* bits 31:0 */ + A_UINT32 cu_vdev_map_cat1_hi; /* bits 63:32 */ + /** + * CU vdev map for the Critical update category-2 + * (modification of CU IES) + */ + A_UINT32 cu_vdev_map_cat2_lo; /* bits 31:0 */ + A_UINT32 cu_vdev_map_cat2_hi; /* bits 63:32 */ +} wmi_prb_resp_tmpl_ml_info; + typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param */ /** unique id identifying the VDEV, generated by the caller */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 1910cde93c..8d5e34213b 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -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_ 1220 +#define __WMI_REVISION_ 1223 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work