diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h index 5fb291122195..be9e8f863c29 100644 --- a/fw/htt_ppdu_stats.h +++ b/fw/htt_ppdu_stats.h @@ -971,7 +971,8 @@ typedef struct { is_combined_ul_basic_trigger: 1, is_manual_ulofdma_trigger: 1, is_combined_ul_bsrp_trigger: 1, - reserved3: 28; + is_sta_dps_seq: 1, + reserved3: 27; }; }; /* Flag to indicate if the channel chosen is 320_1 / 320_2 */ diff --git a/fw/wmi_services.h b/fw/wmi_services.h index b0ea65d4cce8..1bd84737785d 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -740,6 +740,7 @@ typedef enum { WMI_SERVICE_CCK_TX_SUPPORT_5GHZ = 476, /* Indicates FW supports CCK TX in 5 GHZ band */ WMI_SERVICE_DIRECT_REFILL_SUPPORT = 477, /* Indicates FW supports direct refill for RX buffer ring */ WMI_SERVICE_NAN_STANDARD_MODE_SUPPORT = 478, /* Indicates FW supports NAN in standard mode (supplicant-based NAN architecture model) */ + WMI_SERVICE_CONC_2VDEV_DCS_STATS_SUPPORT = 479, /* Indicate FW support for collecting DCS stats for more than 1 vdev (max 2 concurrent vdevs) */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 577576be46f9..e44f024185d8 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -5129,8 +5129,12 @@ typedef struct { * to the secondary refill ring. * Refer to the below definitions of WMI_RSRC_CFG_HOST_SERVICE_FLAG * DIRECT_REFILL_SUPPORT_GET and _SET macros. + * Bit 24 + * This bit will be set by host to inform FW that HOST will be + * expecting and will be able to handle DCS stats event sent + * by FW for concurrent vdevs (event can support max 2 vdevs data). * - * Bits 31:24 - Reserved + * Bits 31:25 - Reserved */ A_UINT32 host_service_flags; @@ -5737,6 +5741,11 @@ typedef struct { #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_DIRECT_REFILL_SUPPORT_SET(host_service_flags, val) \ WMI_SET_BITS(host_service_flags, 23, 1, val) +/* This bit will be used to inform FW that HOST will be handling DCS stats for multiple vdevs (max 2) */ +#define WMI_RSRC_CFG_DCS_STATS_FOR_2VDEVS_ENABLE_GET(host_service_flags) \ + WMI_GET_BITS(host_service_flags, 24, 1) +#define WMI_RSRC_CFG_DCS_STATS_FOR_2VDEVS_ENABLE_SET(host_service_flags, value) \ + WMI_SET_BITS(host_service_flags, 24, 1, value) #define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \ WMI_GET_BITS(carrier_config, 0, 1) @@ -23163,6 +23172,24 @@ typedef struct _wlan_dcs_im_tgt_stats { /** BSS rx cycle count */ A_UINT32 my_bss_rx_cycle_count; + + /*------*/ + /* vdev id and pdev id will be added accordingly in each TLV, + * when combined event for 2 vdevs in case of concurrency. + */ + + /* vdev_id_and_pdev_id_valid: + * If set, then the below vdev_id and pdev_id fields have valid values. + * If not set, then the below vdev_id and pdev_id fields must be ignored. + */ + A_UINT32 vdev_id_and_pdev_id_valid; + + /** vdev id **/ + A_UINT32 vdev_id; /* unique vdev id for DCS stats info */ + + /** pdev id **/ + A_UINT32 pdev_id; /* unique pdev id for DCS stats info */ + /*------*/ } wlan_dcs_im_tgt_stats_t; typedef struct wlan_dcs_awgn_info { @@ -23252,7 +23279,10 @@ typedef struct { * elements (not arrays). union { wlan_dcs_cw_int cw_int; wlan_dcs_im_tgt_stats_t wlan_stat; } int_event; * * wlan_dcs_cw_int cw_int[]; <-- cw_interference event - * wlan_dcs_im_tgt_stats_t wlan_stat[]; <-- wlan im interference stats + * wlan_dcs_im_tgt_stats_t wlan_stat[]; <-- wlan im interference stats, + * Contains vdev_id + pdev_id + * to specify who the stats + * are for. * wmi_dcs_awgn_int_t awgn_int[]; <-- Additive white Gaussian noise (AWGN) interference * wmi_dcs_obss_int_t obss_int[]; <-- Overlapping Basic Service Set (OBSS) interference */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 00d17076d0e2..e6d0c658800c 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_ 1672 +#define __WMI_REVISION_ 1673 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work