From b1c558a8c922c47608cfd54509ac9786cb170aae Mon Sep 17 00:00:00 2001 From: spuligil Date: Sun, 25 Jun 2023 06:01:08 -0700 Subject: [PATCH 01/28] fw-api: CL 23581168 - update fw common interface files add WMI_SERVICE_BRIDGE_VDEV_SUPPORT def Change-Id: Ic1a0ca508c0432f76fbce5948498ded97d99fa82 CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + 1 file changed, 1 insertion(+) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 016c7c25e08a..bb8f28064834 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -634,6 +634,7 @@ 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_MAX_EXT2_SERVICE From 4d563e07cd6abfd2d54f72d5fa70b0763f5dfa09 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 27 Jun 2023 12:01:06 -0700 Subject: [PATCH 02/28] fw-api: CL 23606285 - update fw common interface files add WMI_VDEV_PARAM_WIFI_STANDARD_VERSION def Change-Id: Ia21f0bbd4d4f49b3546b4692a2a258e787008552 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 6 ++++++ fw/wmi_version.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 781425119ca2..d853a19ce3d9 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -18084,6 +18084,12 @@ 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 */ + /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === * The below vdev param types are used for prototyping, and are diff --git a/fw/wmi_version.h b/fw/wmi_version.h index cd7766461b8a..308abca1e342 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_ 1357 +#define __WMI_REVISION_ 1358 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From eed8d8104c12b967d8a56fce32eb4464c2213057 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 27 Jun 2023 12:01:59 -0700 Subject: [PATCH 03/28] fw-api: CL 23606322 - update fw common interface files add WMI_SERVICE_MLO_MODE1_RECOVERY_SUPPORTED WMI svc flag def Change-Id: Ic08a7b1e5ffd4ebf6557d0a330e2f36ddbabae9b CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + 1 file changed, 1 insertion(+) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index bb8f28064834..81cf32b97237 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -635,6 +635,7 @@ typedef enum { 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_MAX_EXT2_SERVICE From 889bda9da75942e718cec029aa321617f20ac55a Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 29 Jun 2023 06:01:31 -0700 Subject: [PATCH 04/28] fw-api: CL 23627777 - update fw common interface files add WMI_PDEV_PARAM_ATF_[VI,VO]_DEDICATED_TIME defs Change-Id: I52b3f8d0bb032e9937fbe46a080b49da9510b47b CRs-Fixed: 2262693 --- fw/wmi_unified.h | 21 +++++++++++++++++++++ fw/wmi_version.h | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index d853a19ce3d9..8fcfb04fd7e8 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9241,6 +9241,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) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 308abca1e342..398e3140f133 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_ 1358 +#define __WMI_REVISION_ 1359 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 0132c4f4ba975585c6a11beb49fd16063837b5d1 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 29 Jun 2023 12:01:27 -0700 Subject: [PATCH 05/28] fw-api: CL 23629843 - update fw common interface files add hw_prot_dur_us field in htt_ppdu_stats_user_cmpltn_common TLV Change-Id: I4cae12b0244903b62af650c0d85a9952652ac7e6 CRs-Fixed: 2262693 --- fw/htt_ppdu_stats.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h index 54dd0b67c1fd..29fac3666355 100644 --- a/fw/htt_ppdu_stats.h +++ b/fw/htt_ppdu_stats.h @@ -2479,6 +2479,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 From fbba0a745b71780d7772fea5496ece4da710715b Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 29 Jun 2023 12:02:28 -0700 Subject: [PATCH 06/28] fw-api: CL 23631091 - update fw common interface files add wmi_sta_ps_enable_opm enum def Change-Id: I26273bd3dffbc499217e7f42ac014004c12da76d CRs-Fixed: 2262693 --- fw/wmi_unified.h | 15 ++++++++++++++- fw/wmi_version.h | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 8fcfb04fd7e8..7fb511b04d4c 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -19103,6 +19103,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 @@ -19148,9 +19154,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 @@ -19179,6 +19186,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 { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 398e3140f133..358002bd0ebf 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_ 1359 +#define __WMI_REVISION_ 1360 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 8b63dd984462c5aa60d0d1eeef85f7383ff4235e Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 30 Jun 2023 06:01:22 -0700 Subject: [PATCH 07/28] fw-api: CL 23638576 - update fw common interface files HTT stats: add use_ppe and src_info bitfields in peer_details TLV Change-Id: I326e6dca11f9d76e5dc5eaadfe2204d3739dee91 CRs-Fixed: 2262693 --- fw/htt_stats.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 11e67bc1ff6a..800ee6e9d56d 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -1636,6 +1636,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 +1671,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 { From 41ef4ae7421602fbd503616d37b505b881e5ee1a Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 30 Jun 2023 06:02:35 -0700 Subject: [PATCH 08/28] fw-api: CL 23639466 - update fw common interface files Change-Id: Iaeb4c05220748d84be6406f71e1e3bf5f339260c WMI: flip the sense of the link_status values in mlo_vdev_link_info TLV CRs-Fixed: 2262693 --- fw/wmi_unified.h | 2 +- fw/wmi_version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7fb511b04d4c..ace32763bac6 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -45646,7 +45646,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; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 358002bd0ebf..ff4ab6839b01 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_ 1360 +#define __WMI_REVISION_ 1361 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 59b20e6616bb4c2ca1ef864f1f1cb85768430ab3 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 4 Jul 2023 12:01:41 -0700 Subject: [PATCH 09/28] fw-api: CL 23675183 - update fw common interface files Change-Id: Ifd599d030bb0744f91fc95f5218a2640dc187cd0 WMI: add ctrl_path_sta_rrm_stats in CTRL_PATH_STATS_EVENT msg CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 3 ++- fw/wmi_unified.h | 13 +++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 624b8449afe2..988f0df05bae 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -6916,7 +6916,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); /* diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index ace32763bac6..b130cf54e0fd 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -15696,6 +15696,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. @@ -34664,6 +34676,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 { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index ff4ab6839b01..b323d691f53c 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_ 1361 +#define __WMI_REVISION_ 1362 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 1a7f0651933b56740a117ba9eae5ee08828f4bf4 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 12 Jul 2023 06:01:21 -0700 Subject: [PATCH 10/28] fw-api: CL 23772239 - update fw common interface files HTT PPDU stats: add is_min_rate flag in user_rate TLV Change-Id: I39750c66c95a415bd4cb26bdcc04bc8135ca07c5 CRs-Fixed: 2262693 --- fw/htt_ppdu_stats.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h index 29fac3666355..1799410381d6 100644 --- a/fw/htt_ppdu_stats.h +++ b/fw/htt_ppdu_stats.h @@ -1819,6 +1819,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 +2022,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 From 078c19b0eb55989b1fda8bb2d5095da2c0e03fc8 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 12 Jul 2023 06:02:30 -0700 Subject: [PATCH 11/28] fw-api: CL 23772256 - update fw common interface files add WMI_VDEV_PARAM_DISABLE_2G_TWT def Change-Id: I614d124b7e06cc9d4b6b793db749630f5295f04c CRs-Fixed: 2262693 --- fw/wmi_unified.h | 6 ++++++ fw/wmi_version.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index b130cf54e0fd..df70de4947d5 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -18123,6 +18123,12 @@ typedef enum { */ 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 diff --git a/fw/wmi_version.h b/fw/wmi_version.h index b323d691f53c..758fa6c35efc 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_ 1362 +#define __WMI_REVISION_ 1363 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From ced8b2ba4167e610eaa432e55620d12d5699fa2c Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 13 Jul 2023 06:01:17 -0700 Subject: [PATCH 12/28] fw-api: CL 23782068 - update fw common interface files Change-Id: Ifcc4d1c1a0c4dd621b4bd9f87ab94717a5822ed2 WMI: add PDEV_ENHANCED_AOA_PHASEDELTA_EVENT msg def CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 13 +++++ fw/wmi_unified.h | 127 ++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 141 insertions(+), 1 deletion(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 988f0df05bae..1ea989ef35cd 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1392,6 +1392,8 @@ 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_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2241,6 +2243,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 */ @@ -7432,6 +7435,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 } diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index df70de4947d5..f2a13940bbaf 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1748,6 +1748,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 */ @@ -40444,6 +40446,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 diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 758fa6c35efc..bf78f1013fd6 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_ 1363 +#define __WMI_REVISION_ 1364 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 09878460c5148cff988266ead7d6dd2752bc9744 Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 14 Jul 2023 06:01:18 -0700 Subject: [PATCH 13/28] fw-api: CL 23799210 - update fw common interface files Change-Id: I0d28df3a8bf99276cd5603bbe597d3b20a6d1318 WMI: add [active,inactive] link bitmap fields in MLO_LINK_SET_ACTIVE_RESP_EVENT CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 4 +++- fw/wmi_unified.h | 4 ++++ fw/wmi_version.h | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 1ea989ef35cd..90df76a79e8f 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -7228,7 +7228,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 */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index f2a13940bbaf..7cf448ec4153 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -44320,6 +44320,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; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index bf78f1013fd6..f6a072c21452 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_ 1364 +#define __WMI_REVISION_ 1365 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From d47254c57877873b89d3802b8142a53041e0350c Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 15 Jul 2023 18:01:26 -0700 Subject: [PATCH 14/28] fw-api: CL 23810815 - update fw common interface files add WMI_UNIFIED_VDEV_START_MLO_REPURPOSE_VAP def Change-Id: I22b612169041c23abb4b72f78c8612468ac587e4 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 6 ++++++ fw/wmi_version.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7cf448ec4153..befd15ce2523 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -16203,6 +16203,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) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index f6a072c21452..d272a80a24f6 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_ 1365 +#define __WMI_REVISION_ 1366 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 4e4fb82793162bdf4d47a4ce42a0c4b80e6857eb Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 19 Jul 2023 06:01:22 -0700 Subject: [PATCH 15/28] fw-api: CL 23852898 - update fw common interface files add WMI_SERVICE_TX_PWR_PER_PPDU_STATS_SUPPORT def Change-Id: I1f0197e96b365d13200aea55100ead6bd0a33a9e CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_version.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 81cf32b97237..aff03e214736 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -636,6 +636,7 @@ typedef enum { 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_MAX_EXT2_SERVICE diff --git a/fw/wmi_version.h b/fw/wmi_version.h index d272a80a24f6..9881f74da9fd 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_ 1366 +#define __WMI_REVISION_ 1367 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 4273cb269aa1f4086374b3ab41b97aa4345678f7 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 20 Jul 2023 06:01:38 -0700 Subject: [PATCH 16/28] fw-api: CL 23872196 - update fw common interface files Change-Id: Icfd5cc2cbb821f6e3d5c8fcb9401d04132fea43c WMI: DISABLE_WDS_PEER svc flag + DISABLE_WDS_PEER flag for MAP_UNMAP_EVENT CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_unified.h | 16 +++++++++++++++- fw/wmi_version.h | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index aff03e214736..80e30b975c5d 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -637,6 +637,7 @@ typedef enum { 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_MAX_EXT2_SERVICE diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index befd15ce2523..088fa78e6fc2 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -4480,8 +4480,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 @@ -4947,6 +4956,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) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 9881f74da9fd..25f2dc073797 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_ 1367 +#define __WMI_REVISION_ 1368 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From f4e54fd877b03a224d372419a00e5c339f5bcebf Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 20 Jul 2023 06:02:42 -0700 Subject: [PATCH 17/28] fw-api: CL 23874450 - update fw common interface files HTT PPDU stats: add is_smart_ulofdma_basic_trig flag Change-Id: I62cddf908ab86ec662ce13d44c7566956a874736 CRs-Fixed: 2262693 --- fw/htt_ppdu_stats.h | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/fw/htt_ppdu_stats.h b/fw/htt_ppdu_stats.h index 1799410381d6..fed6e2d63975 100644 --- a/fw/htt_ppdu_stats.h +++ b/fw/htt_ppdu_stats.h @@ -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) From 45525c758a8a433b5cd9b1f67ba62616b565e684 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 20 Jul 2023 18:01:31 -0700 Subject: [PATCH 18/28] fw-api: CL 23887001 - update fw common interface files add WOW_REASON_VDEV_REPURPOSE def Change-Id: Ib8fcb568c958ae2b9c639fd934fc5e1c4d275537 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 2 ++ fw/wmi_version.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 088fa78e6fc2..b6c960851079 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -23282,6 +23282,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, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 25f2dc073797..cf57eb712337 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_ 1368 +#define __WMI_REVISION_ 1369 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From ac337aa24a2a32ea2758c0fd986adb00692bb3c3 Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 21 Jul 2023 12:01:48 -0700 Subject: [PATCH 19/28] fw-api: CL 23894107 - update fw common interface files add WMI_VENDOR_OUI_ACTION_SEND_SMPS_FRAME_WITH_OMN def Change-Id: Iad32aa61e31e3f287b7feec67efcdf53b260af8f CRs-Fixed: 2262693 --- fw/wmi_unified.h | 7 +++++++ fw/wmi_version.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index b6c960851079..4562ac83526c 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -24935,6 +24935,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; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index cf57eb712337..02c7f0567126 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_ 1369 +#define __WMI_REVISION_ 1370 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From a266f4009f3f36d010b2c559dfe121c4bd50ccfd Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 22 Jul 2023 06:01:46 -0700 Subject: [PATCH 20/28] fw-api: CL 23907437 - update fw common interface files HTT stats: add CV correlation stats Change-Id: I0a646178d10132e757685a688504ea2c57d6f6b3 CRs-Fixed: 2262693 --- fw/htt_stats.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 3 deletions(-) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 800ee6e9d56d..7296a29db63f 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -6507,12 +6507,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 */ @@ -6625,6 +6628,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 From d45ced86032be4731fd2037fa8306d4fb510e0f3 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sun, 23 Jul 2023 06:01:41 -0700 Subject: [PATCH 21/28] fw-api: CL 23911002 - update fw common interface files Change-Id: I3ade6f49b50bda753436369ea0290c48e49f7cc8 WMI: add ie_data TLV to MGMT_RX_EVENT CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 3 ++- fw/wmi_version.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 90df76a79e8f..625642da77c0 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -5728,7 +5728,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 */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 02c7f0567126..674c005579f3 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_ 1370 +#define __WMI_REVISION_ 1371 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 5c4b083b97ae5c90b152fb46a975b80b55dd6455 Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 24 Jul 2023 06:01:46 -0700 Subject: [PATCH 22/28] fw-api: CL 23915932 - update fw common interface files add WMI_PEER_PARAM_DMS_SUPPORT def Change-Id: I9f950ed25ceac0bae23ca374c33e53c35e266de8 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 2 ++ fw/wmi_version.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 4562ac83526c..d5bbcda18092 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -20227,6 +20227,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 */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 674c005579f3..76f698a42c7a 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_ 1371 +#define __WMI_REVISION_ 1372 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 854ca0a3b9e47b08a0021fad65e171ec09970436 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 25 Jul 2023 06:02:05 -0700 Subject: [PATCH 23/28] fw-api: CL 23933290 - update fw common interface files Change-Id: Ia41a0294a5048451595d6e80e383256d935e9592 WMI: revert recent change of WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY interpretation CRs-Fixed: 2262693 --- fw/wmi_unified.h | 20 +------------------- fw/wmi_version.h | 2 +- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index d5bbcda18092..3dc40369efa7 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -10572,20 +10572,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 */ @@ -18113,11 +18099,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 */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 76f698a42c7a..75634fa185ba 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_ 1372 +#define __WMI_REVISION_ 1373 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 211a65173a1118f0dd60c200661574b6c0d57a47 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 25 Jul 2023 06:03:02 -0700 Subject: [PATCH 24/28] fw-api: CL 23935724 - update fw common interface files HTT stats: add smart basic trigger interval histogram Change-Id: I3f0d2e53b75914e0ddb257f7e1f27791929bae78 CRs-Fixed: 2262693 --- fw/htt_stats.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 7296a29db63f..68f8a93a5dbc 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -2428,6 +2428,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; @@ -2480,6 +2482,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 { From 57122144ea892ed8b08ecd934d2a42c96bcd8809 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 25 Jul 2023 06:03:57 -0700 Subject: [PATCH 25/28] fw-api: CL 23935730 - update fw common interface files add HTT_RXDATA_ERR_INVALID_PEER def Change-Id: Ie936cf743ffc196615bea93ba9977c745d8a8073 CRs-Fixed: 2262693 --- fw/htt.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fw/htt.h b/fw/htt.h index 37e9514f8014..e19ec757edaf 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -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 From 91137dfaeaaa558e5b630536130669418546040c Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 26 Jul 2023 22:57:57 -0700 Subject: [PATCH 26/28] fw-api: CL 23966557 - update fw common interface files Change-Id: I2d2f51b9378b3758cc1549e88fe139bc07cc1bb4 WMI: add LINK_SWITCH_IN_PROGRESS,UNSUPPORTED_MODE_MLMR ADD_TWT status codes CRs-Fixed: 2262693 --- fw/wmi_unified.h | 2 ++ fw/wmi_version.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 3dc40369efa7..da1d23624859 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -38459,6 +38459,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 { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 75634fa185ba..23b0ddbc91f3 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_ 1373 +#define __WMI_REVISION_ 1374 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 731781a2458cca0cfa180bc4821b9e7021d7a053 Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 28 Jul 2023 02:37:27 -0700 Subject: [PATCH 27/28] fw-api: CL 23981866 - update fw common interface files Change-Id: I62da9d2b25e4904615c3bd06e37291892290018a WMI: add PDEV_WSI_STATS_INFO_CMD msg def CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 8 ++++++++ fw/wmi_unified.h | 13 +++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 80e30b975c5d..5f7b6616cd86 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -638,6 +638,7 @@ typedef enum { 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 diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 625642da77c0..0f6d8929d3e3 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1394,6 +1394,8 @@ typedef enum { 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. @@ -1928,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 */ @@ -5455,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 *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index da1d23624859..522d9d9b5be0 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -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 */ @@ -36822,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"; @@ -46401,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 */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 23b0ddbc91f3..a3ecaa7fe379 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_ 1374 +#define __WMI_REVISION_ 1375 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 5bbd356e5399c3763734c47ad93ed9d82ae1803c Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 28 Jul 2023 02:38:25 -0700 Subject: [PATCH 28/28] fw-api: CL 23981895 - update fw common interface files HTT stats: add IDs for ODD BE OFDMA + MU MIMO stats Change-Id: I11c26abdf3636a983b1d79d19f228096abc1f8af CRs-Fixed: 2262693 --- fw/htt_stats.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 68f8a93a5dbc..650d422b1088 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -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,