From 69388df60f94d5fc5a62ba899ef4a2a228a80542 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 6 Mar 2024 18:01:25 -0800 Subject: [PATCH 01/26] fw-api: CL 26129651 - update fw common interface files Change-Id: If5779016a0dd5d5b1873c43546818ea8fbfd2fe1 CRs-Fixed: 2262693 --- fw/htt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index afa416e8619a..b45a35d9161c 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -21374,7 +21374,7 @@ PREPACK struct htt_t2h_sawf_msduq_event { #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_TGT_OPAQUE_ID_M 0x00FFFFFF #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_TGT_OPAQUE_ID_S 0 #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_TGT_OPAQUE_ID_GET(_var) \ - (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_TGT_OPAQUE_ID) >> \ + (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_TGT_OPAQUE_ID_M) >> \ HTT_T2H_SAWF_MSDUQ_INFO_HTT_TGT_OPAQUE_ID_S) #define HTT_T2H_SAWF_MSDUQ_INFO_HTT_TGT_OPAQUE_ID_SET(_var, _val) \ do { \ @@ -22983,7 +22983,7 @@ PREPACK struct htt_t2h_sdwf_msduq_cfg_ind { #define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_GET(_var) \ (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_M) >> \ HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_S) -#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IN_DHLOS_TID_SET(_var, _val) \ +#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID, _val); \ ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_S)); \ From 83009cc147c5a31e887494077849b65bdf7c01c2 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 6 Mar 2024 18:02:24 -0800 Subject: [PATCH 02/26] fw-api: CL 26149972 - update fw common interface files Change-Id: Ic454dcdb767bab2bdc55a54b50425e7a445395d7 CRs-Fixed: 2262693 --- fw/htt.h | 1 + fw/htt_stats.h | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/fw/htt.h b/fw/htt.h index b45a35d9161c..d339e69bff5b 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -825,6 +825,7 @@ typedef enum { HTT_STATS_PDEV_RTT_HW_STATS_TAG = 196, /* htt_stats_pdev_rtt_hw_stats_tlv */ HTT_STATS_PDEV_RTT_TBR_SELFGEN_QUEUED_STATS_TAG = 197, /* htt_stats_pdev_rtt_tbr_selfgen_queued_stats_tlv */ HTT_STATS_PDEV_RTT_TBR_CMD_RESULT_STATS_TAG = 198, /* htt_stats_pdev_rtt_tbr_cmd_result_stats_tlv */ + HTT_STATS_GTX_TAG = 199, /* htt_stats_gtx_tlv */ HTT_STATS_MAX_TAG, diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 3951f5460bfa..87e71749d421 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -668,6 +668,14 @@ enum htt_dbg_ext_stats_type { */ HTT_DBG_EXT_STATS_LATENCY_PROF_STATS_LO = 67, + /** HTT_DBG_GTX_STATS + * PARAMS: + * - No Params + * RESP MSG: + * - htt_pdev_gtx_stats_tlv + */ + HTT_DBG_GTX_STATS = 68, + /* keep this last */ HTT_DBG_NUM_EXT_STATS = 256, @@ -11704,5 +11712,15 @@ static INLINE A_UINT8 *htt_ctrl_path_cal_type_id_to_name(A_UINT32 cal_type_id) } #endif /* HTT_CTRL_PATH_STATS_CAL_TYPE_STRINGS */ +/*===================== Start GTX stats ====================*/ +#define HTT_NUM_MCS_PER_NSS 16 +typedef struct { + htt_tlv_hdr_t tlv_hdr; + A_UINT32 gtx_enabled; /* shows whether Green Tx feature is enabled */ + A_INT32 mcs_tpc_min[HTT_NUM_MCS_PER_NSS]; /* shows current MCS's minimum TPC in 0.25dBm units */ + A_INT32 mcs_tpc_max[HTT_NUM_MCS_PER_NSS]; /* shows current MCS's maximum TPC in 0.25dBm units */ + A_UINT32 mcs_tpc_diff[HTT_NUM_MCS_PER_NSS]; /* shows current MCS's difference between maximum and minimum TPC in 0.25dB unit*/ +} htt_stats_gtx_tlv; +/*===================== End GTX stats ====================*/ #endif /* __HTT_STATS_H__ */ From 04abee31a2172590ef617dd4c20fd34aa02508f1 Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 11 Mar 2024 06:01:19 -0700 Subject: [PATCH 03/26] fw-api: CL 26150181 - update fw common interface files Change-Id: I33a56fb397d48a8787f2aaf6a9c7eb6a1cbe119b CRs-Fixed: 2262693 --- fw/wmi_unified.h | 127 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 2 files changed, 128 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 78d58950cc87..e89e82f691ca 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -13556,6 +13556,27 @@ typedef struct { #define WMI_PMLO_DL_AIRTIME_NON_AC_GET(airtime) WMI_GET_BITS(airtime, 24, 8) #define WMI_PMLO_DL_AIRTIME_NON_AC_SET(airtime, value) WMI_SET_BITS(airtime, 24, 8, value) +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_GET_BE(airtime) WMI_GET_BITS(airtime, 0, 8) +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_SET_BE(airtime, value) WMI_SET_BITS(airtime, 0, 8, value) + +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_GET_BK(airtime) WMI_GET_BITS(airtime, 8, 8) +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_SET_BK(airtime, value) WMI_SET_BITS(airtime, 8, 8, value) + +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_GET_VI(airtime) WMI_GET_BITS(airtime, 16, 8) +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_SET_VI(airtime, value) WMI_SET_BITS(airtime, 16, 8, value) + +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_GET_VO(airtime) WMI_GET_BITS(airtime, 24, 8) +#define WMI_PMLO_UL_DL_PAYLOAD_RATIO_SET_VO(airtime, value) WMI_SET_BITS(airtime, 24, 8, value) + +/** Traffic condition used in estimating the available airtime value */ +typedef enum { + WMI_PDEV_TRAFFIC_LIGHT = 0, + WMI_PDEV_TRAFFIC_MEDIUM = 1, + WMI_PDEV_TRAFFIC_HEAVY = 2, + WMI_PDEV_TRAFFIC_SATURATION = 3, + WMI_PDEV_TRAFFIC_MEDIUM_AND_OBSS = 4, +} wmi_pdev_traffic_condition; + /* * The wmi_ctrl_path_pmlo_stats_struct is used to send Provisional MLO stats * the WMI_CTRL_PATH_STATS_EVENT message, in response to a @@ -13657,6 +13678,112 @@ typedef struct { }; A_UINT32 ul_dl_obss_free_aa_word32; }; + + /* + * Traffic condition used in estimating the available airtime value. + * Refer to enum wmi_pdev_traffic_condition + * traffic_condition_used_per_ac[0] : AC_VO + * traffic_condition_used_per_ac[1] : AC_VI + * traffic_condition_used_per_ac[2] : AC_BE + * traffic_condition_used_per_ac[3] : AC_BK + * Saturation Traffic condition is evaluated to true when the number + * of associated stations and the number of active TIDs per access + * category crosses a threshold. + * Light Traffic condition is evaluated to true when the obss_rx_airtime + * is less than a threshold and the free channel is greater than the sum + * of DL and UL airtime per client. + * Heavy Traffic condition is evaluated to true when the free channel is + * less than a particular threshold and the number of active TIDs per + * access category crosses a threshold. + * OBSS (Medium) Traffic condition is evaluated to true when the + * obss_rx_airtime crosses a threshold. + * Medium Traffic case is carried out if all the above mentioned + * conditions evaluate to false. + */ + A_UINT32 traffic_condition_used_per_ac[WMI_AC_MAX]; + + /* + * Every PPDU has an associated txop overhead value in its PPDU duration. + * In order to consider only the duration taken to transfer the actual + * data, we estimate the payload ratio. + * The packet overhead is accumulated for each PPDU, where it is recorded + * for each access category separately. + * The payload_ratio_dl values indicate the percentage of actual data + * packets' duration in the entire TX duration by omitting the overhead + * (units are percentage). + * By estimating the payload ratio, we would be able to further measure + * the free channel with increased accuracy. + * + * BIT[0-7] : AC_BE + * BIT[8-15] : AC_BK + * BIT[16-23] : AC_VI + * BIT[24-31] : AC_VO + * Please refer to WMI_PMLO_UL_DL_PAYLOAD_RATIO_* macros + * to retrieve values for each access category in payload_ratio_dl_per_ac. + */ + union { + struct { + A_UINT32 + payload_ratio_dl_ac_be: 8, + payload_ratio_dl_ac_bk: 8, + payload_ratio_dl_ac_vi: 8, + payload_ratio_dl_ac_vo: 8; + }; + A_UINT32 payload_ratio_dl_per_ac; + }; + + /* + * Every PPDU has an associated txop overhead value in its PPDU duration. + * In order to consider only the duration taken to transfer the actual + * data, we estimate the payload ratio. + * The packet overhead is accumulated for each PPDU, where it is recorded + * for each access category separately. + * The payload_ratio_ul values indicate the percentage of actual data + * packets' duration in the entire RX duration by omitting the overhead + * (Units are percentage). + * By estimating the payload ratio, we would be able to further measure + * the free channel with increased accuracy. + * + * BIT[0-7] : AC_BE + * BIT[8-15] : AC_BK + * BIT[16-23] : AC_VI + * BIT[24-31] : AC_VO + * Please refer to WMI_PMLO_UL_DL_PAYLOAD_RATIO_* macros + * to retrieve values for each access category in payload_ratio_ul_per_ac. + */ + union { + struct { + A_UINT32 + payload_ratio_ul_ac_be: 8, + payload_ratio_ul_ac_bk: 8, + payload_ratio_ul_ac_vi: 8, + payload_ratio_ul_ac_vo: 8; + }; + A_UINT32 payload_ratio_ul_per_ac; + }; + + /* + * Error margin of the estimated available airtime per AC, + * units are percentage. + * error_margin_per_ac[0] : AC_VO + * error_margin_per_ac[1] : AC_VI + * error_margin_per_ac[2] : AC_BE + * error_margin_per_ac[3] : AC_BK + */ + A_UINT32 error_margin_per_ac[WMI_AC_MAX]; + + /* + * This parameter indicates the number of clients which would be + * considered to estimate the available airtime value during + * imbalanced traffic scenarios + * Value 0 indicates that we do not have imbalanced traffic. + * num_of_ul/dl_asymmetric_clients_per_ac[0] : AC_VO + * num_of_ul/dl_asymmetric_clients_per_ac[1] : AC_VI + * num_of_ul/dl_asymmetric_clients_per_ac[2] : AC_BE + * num_of_ul/dl_asymmetric_clients_per_ac[3] : AC_BK + */ + A_UINT32 num_of_ul_asymmetric_clients_per_ac[WMI_AC_MAX]; + A_UINT32 num_of_dl_asymmetric_clients_per_ac[WMI_AC_MAX]; } wmi_ctrl_path_pmlo_stats_struct; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 0de12fd8d46e..58e7510844bb 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_ 1458 +#define __WMI_REVISION_ 1459 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From d5082262dce1bba313fb41c901f3577c3c631695 Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 11 Mar 2024 06:05:30 -0700 Subject: [PATCH 04/26] fw-api: CL 26180835 - update fw common interface files Change-Id: Ie1fbd6e37aa8df688d082bc65f22d946cabfcdb3 CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 14 ++++++++++++ fw/wmi_unified.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 72 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index f8a9544a650b..8f0c14be72a2 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -659,6 +659,7 @@ typedef enum { WMI_SERVICE_REG_CC_EXT2_EVENT_SUPPORT = 405, /* Indicate FW would send EXT2 REG_CC event having data which would be a continuation to EXT REG_CC event */ WMI_SERVICE_MLO_MODE2_RECOVERY_SUPPORTED = 406, /* Indicate FW support for MLO mode2 recovery */ WMI_SERVICE_MSDUQ_RECFG = 407, /* FW support the HTT MSDUQ_RECFG_REQ + MSDUQ_CFG_IND messages */ + WMI_SERVICE_TRAFFIC_CONTEXT_SUPPORT = 408, /* FW supports traffic context aware manager */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 28ad988b8ff2..e666576d47b2 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1432,6 +1432,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_enable_xlna_event_fixed_param, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_ext2_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_set_custom_tx_power_per_mcs_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_active_traffic_map_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_request_opm_stats_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1978,6 +1980,8 @@ typedef enum { OP(WMI_PDEV_ENABLE_WIFI_RADAR_CMDID) \ OP(WMI_PDEV_ENABLE_XLNA_CMDID) \ OP(WMI_PDEV_SET_CUSTOM_TX_POWER_PER_MCS_CMDID) \ + OP(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID) \ + OP(WMI_REQUEST_OPM_STATS_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5591,6 +5595,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_XLNA_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, txpower_bkoff_array, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_CUSTOM_TX_POWER_PER_MCS_CMDID); +/* cmd to Set active traffic type bitmap */ +#define WMITLV_TABLE_WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_active_traffic_map_cmd_fixed_param, wmi_peer_active_traffic_map_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID); + +/* cmd to request Opportunistic Power Mgmt (OPM) stats */ +#define WMITLV_TABLE_WMI_REQUEST_OPM_STATS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_opm_stats_cmd_fixed_param, wmi_request_opm_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_OPM_STATS_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index e89e82f691ca..9d65b03e0576 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1302,6 +1302,13 @@ typedef enum { /* WMI cmd used by host to send the switch response status to FW */ WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID, + /** WMI command to set active traffic type bitmap for a peer */ + WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID, + + /** WMI command to Request Opportunistic Power Mgmt (OPM) stats */ + WMI_REQUEST_OPM_STATS_CMDID, + + /* Offload 11k related requests */ WMI_11K_OFFLOAD_REPORT_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_11K_OFFLOAD), /* invoke neighbor report from FW */ @@ -37629,6 +37636,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_GET_TWT_SESSION_STATS_INFO_CMDID); WMI_RETURN_STRING(WMI_PDEV_ENABLE_XLNA_CMDID); WMI_RETURN_STRING(WMI_PDEV_SET_CUSTOM_TX_POWER_PER_MCS_CMDID); + WMI_RETURN_STRING(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID); + WMI_RETURN_STRING(WMI_REQUEST_OPM_STATS_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -48240,6 +48249,53 @@ typedef struct { A_UINT32 status; } wmi_pdev_enable_xlna_event_fixed_param; +/** + * bits 0-15 are used for non interative traffic types like video streaming, + * or ping + * bit 16-31 are reserved for interactive traffic types like gaming, VoIP, + * or video conferencing + */ +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_STREAMING_M 0x00000001 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_STREAMING_S 0 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_PING_M 0x00000002 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_PING_S 1 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_BACKGROUND_M 0x00000004 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_BACKGROUND_S 2 +/* bits 3-15 are reserved for new non-interactive traffic types */ + +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_GAMING_M 0x00010000 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_GAMING_S 16 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VOIP_M 0x00020000 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VOIP_S 17 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VIDEO_CONF_M 0x00040000 +#define WMI_PEER_ACTIVE_TRAFFIC_TYPE_VIDEO_CONF_S 18 +/* bits 19-31 are reserved for new interactive traffic types */ + +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_active_traffic_map_cmd_fixed_param */ + A_UINT32 vdev_id; + wmi_mac_addr peer_macaddr; /* peer MAC address */ + /* active_traffic_map: + * This field is a bitmap showing traffic types known to be currently + * present within the vdev. + * Refer to the WMI_PEER_ACTIVE_TRAFFIC_ definitions that specify which + * bits within the bitmap correspond to which traffic types. + */ + A_UINT32 active_traffic_map; +} wmi_peer_active_traffic_map_cmd_fixed_param; + + +/* + * WMI_REQUEST_OPM_STATS_CMDID triggered by host to collect OPM stats for trafic types identified by STC + * in respose this FW will send OEM_respose_event_id WMI_OEM_DATA_CMD_OPM_STATS + * + */ + typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_opm_stats_cmd_fixed_param */ + A_UINT32 pdev_id; /** pdev_id for identifying the MAC */ +} wmi_request_opm_stats_cmd_fixed_param; + + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 58e7510844bb..3f7cf8b0f0b6 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_ 1459 +#define __WMI_REVISION_ 1460 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From a3254941947129e471671631056fde15b52fac1c Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 11 Mar 2024 06:09:15 -0700 Subject: [PATCH 05/26] fw-api: CL 26197005 - update fw common interface files Change-Id: I8d42bee26b71890c4ac9343986b782312e678e22 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 11 +++++++++-- fw/wmi_version.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 9d65b03e0576..a5c4547a8ea6 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -6162,8 +6162,15 @@ typedef struct { #define MAX_NUM_CHAN_PER_WMI_CMD 58 /* each WMI cmd can hold 58 channel entries at most */ -#define APPEND_TO_EXISTING_CHAN_LIST 1 -#define CHANNEL_MAX_BANDWIDTH_VALID 2 +#define WMI_APPEND_TO_EXISTING_CHAN_LIST 0x1 +#define WMI_CHANNEL_MAX_BANDWIDTH_VALID 0x2 +#define WMI_HONOR_HOST_6GHZ_CHANNEL_PASSIVE 0x4 +/* + * To preserve backwards compatibility, retain old names (without WMI_ prefix) + * as aliases for the corrected names (with WMI_ prefix). + */ +#define APPEND_TO_EXISTING_CHAN_LIST WMI_APPEND_TO_EXISTING_CHAN_LIST +#define CHANNEL_MAX_BANDWIDTH_VALID WMI_CHANNEL_MAX_BANDWIDTH_VALID typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_chan_list_cmd_fixed_param */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 3f7cf8b0f0b6..5d1fa2b9749b 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_ 1460 +#define __WMI_REVISION_ 1461 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 9c7d8af1173285e541b87afd2a5a66ddb70b9d37 Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 11 Mar 2024 06:13:08 -0700 Subject: [PATCH 06/26] fw-api: CL 26205559 - update fw common interface files Change-Id: Ia47b3d4e5b38b2232b0a74ca67d9c042b24e68d0 CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 6 +++++- fw/wmi_unified.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index e666576d47b2..b26b7436dbe9 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1434,6 +1434,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_set_custom_tx_power_per_mcs_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_active_traffic_map_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_request_opm_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_bcn_tx_stats_struct, + WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_bcn_tx_stats_struct, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -7093,7 +7095,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID); 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_sta_rrm_stats_struct, ctrl_path_sta_rrm_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_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_vdev_bcn_tx_stats_struct, ctrl_path_vdev_bcn_tx_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pdev_bcn_tx_stats_struct, ctrl_path_pdev_bcn_tx_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 a5c4547a8ea6..975589270889 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -16213,6 +16213,55 @@ typedef struct { A_UINT32 dot11RTSFailureCount; } wmi_ctrl_path_sta_rrm_stats_struct; +typedef struct { + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_bcn_stats_struct */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 beacon_succ_cnt; + A_UINT32 beacon_outage_cnt; + A_UINT32 beacon_cons_miss_cnt; + A_UINT32 beacon_curr_miss_cnt; + A_UINT32 beacon_sw_abort_cnt; + A_UINT32 beacon_tx_filter_cnt; + A_UINT32 beacon_tx_xretry_cnt; + A_UINT32 beacon_tx_drop_cnt; + A_UINT32 beacon_tx_abort_cnt; + A_UINT32 beacon_tx_tid_del_cnt; + A_UINT32 beacon_tx_mig_drop_cnt; + A_UINT32 beacon_fail_others_cnt; + A_UINT32 beacon_stuck_cnt; + A_UINT32 beacon_tbtt_skip_cnt; + A_UINT32 beacon_swba_cnt; + A_UINT32 beacon_enque_fail; + A_UINT32 scan_time_exceed_cnt; + A_UINT32 beacon_miss_systime_gap_us; + A_UINT32 beacon_last_miss_time_low_us; + A_UINT32 beacon_last_miss_time_high_us; + A_UINT32 last_tbtt_time_low_us; + A_UINT32 last_tbtt_time_high_us; + A_UINT32 last_tbtt_update_low_us; + A_UINT32 last_tbtt_update_high_us; +} wmi_ctrl_path_vdev_bcn_tx_stats_struct; + +typedef struct { + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_bcn_stats_struct */ + A_UINT32 tlv_header; + A_UINT32 pdev_id; + A_UINT32 beacon_succ_cnt; + A_UINT32 beacon_outage_cnt; + A_UINT32 beacon_sw_abort_cnt; + A_UINT32 beacon_tx_filter_cnt; + A_UINT32 beacon_tx_xretry_cnt; + A_UINT32 beacon_tx_drop_cnt; + A_UINT32 beacon_tx_abort_cnt; + A_UINT32 beacon_tx_tid_del_cnt; + A_UINT32 beacon_tx_mig_drop_cnt; + A_UINT32 beacon_fail_others_cnt; + A_UINT32 beacon_stuck_cnt; + A_UINT32 beacon_swba_cnt; + A_UINT32 beacon_enque_fail; +} wmi_ctrl_path_pdev_bcn_tx_stats_struct; + /** * peer statistics. */ @@ -35482,6 +35531,8 @@ typedef enum { WMI_REQUEST_CTRL_PATH_PEER_STAT = 16, WMI_REQUEST_CTRL_PATH_VDEV_DEBUG_STAT = 17, WMI_REQUEST_CTRL_STA_RRM_STAT = 18, + WMI_REQUEST_CTRL_PATH_VDEV_BCN_TX_STAT = 19, + WMI_REQUEST_CTRL_PATH_PDEV_BCN_TX_STAT = 20, } wmi_ctrl_path_stats_id; typedef enum { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 5d1fa2b9749b..09a85807b5f5 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_ 1461 +#define __WMI_REVISION_ 1462 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 3f00fe972348e5bd0d2e51f69d2f232a2ed2782f Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 11 Mar 2024 12:01:24 -0700 Subject: [PATCH 07/26] fw-api: CL 26206715 - update fw common interface files Change-Id: I9966c3c93083df2126d5ca9f40536530146f3b59 CRs-Fixed: 2262693 --- fw/htt_stats.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 87e71749d421..d6484163d1f3 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -5588,6 +5588,8 @@ typedef struct { A_UINT32 extra_eht_ltf; /** Counter for Extra EHT LTFs in OFDMA sequences */ A_UINT32 extra_eht_ltf_ofdma; + /** 11AX HE UL_BA RU Size stats */ + A_UINT32 ofdma_ba_ru_size[HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS]; } htt_stats_tx_pdev_rate_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_tx_pdev_rate_stats_tlv htt_tx_pdev_rate_stats_tlv; @@ -5676,6 +5678,7 @@ typedef struct { A_UINT32 be_ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS]; /** 11BE EHT DL MU OFDMA EHT-SIG MCS stats */ A_UINT32 be_ofdma_eht_sig_mcs[HTT_TX_PDEV_STATS_NUM_EHT_SIG_MCS_COUNTERS]; + A_UINT32 be_ofdma_ba_ru_size[HTT_TX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS]; } htt_stats_tx_pdev_rate_stats_be_ofdma_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_tx_pdev_rate_stats_be_ofdma_tlv @@ -10472,6 +10475,7 @@ typedef struct _htt_odd_mandatory_muofdma_pdev_stats_tlv { A_UINT32 ax_mu_brp_sch_status[HTT_TX_PDEV_STATS_NUM_TX_ERR_STATUS]; A_UINT32 be_mu_brp_sch_status[HTT_TX_PDEV_STATS_NUM_TX_ERR_STATUS]; A_UINT32 ofdma_tx_ru_size[HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS]; + A_UINT32 ofdma_ba_ru_size[HTT_TX_PDEV_STATS_NUM_AX_RU_SIZE_COUNTERS]; } htt_dbg_odd_mandatory_muofdma_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_dbg_odd_mandatory_muofdma_tlv From af87a4b5e6f36f1b1fc37d113ae09423cef9c57d Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 11 Mar 2024 12:05:30 -0700 Subject: [PATCH 08/26] fw-api: CL 26206720 - update fw common interface files Change-Id: I2d3eb321be427cd8078f6eab95f3671c606521b4 CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 6 ++++++ fw/wmi_unified.h | 34 +++++++++++++++++++++++++++++++++- fw/wmi_version.h | 2 +- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index b26b7436dbe9..c807d87a4208 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1436,6 +1436,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_request_opm_stats_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_bcn_tx_stats_struct, WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_bcn_tx_stats_struct, + WMITLV_TAG_STRUC_wmi_soc_tx_packet_custom_classify_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1984,6 +1985,7 @@ typedef enum { OP(WMI_PDEV_SET_CUSTOM_TX_POWER_PER_MCS_CMDID) \ OP(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID) \ OP(WMI_REQUEST_OPM_STATS_CMDID) \ + OP(WMI_SOC_TX_PACKET_CUSTOM_CLASSIFY_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -4779,6 +4781,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_update_pkt_routing_cmd_fixed_param, wmi_pdev_update_pkt_routing_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_UPDATE_PKT_ROUTING_CMDID); +#define WMITLV_TABLE_WMI_SOC_TX_PACKET_CUSTOM_CLASSIFY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_tx_packet_custom_classify_cmd_fixed_param, wmi_soc_tx_packet_custom_classify_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_SOC_TX_PACKET_CUSTOM_CLASSIFY_CMDID); + /* Get cal version cmd */ #define WMITLV_TABLE_WMI_PDEV_CHECK_CAL_VERSION_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_check_cal_version_cmd_fixed_param, wmi_pdev_check_cal_version_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 975589270889..15a73058f72e 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1507,6 +1507,11 @@ typedef enum { WMI_SOC_SET_ANTENNA_MODE_CMDID, /** enable/disable TQM reset (SOC level) feature */ WMI_SOC_TQM_RESET_ENABLE_DISABLE_CMDID, + /* + * WMI Command to enable custom classification of packets in Tx path + * and specifiy packets of interest for classification. + */ + WMI_SOC_TX_PACKET_CUSTOM_CLASSIFY_CMDID, /* packet filter commands */ WMI_PACKET_FILTER_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PKT_FILTER), @@ -37696,6 +37701,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PDEV_SET_CUSTOM_TX_POWER_PER_MCS_CMDID); WMI_RETURN_STRING(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID); WMI_RETURN_STRING(WMI_REQUEST_OPM_STATS_CMDID); + WMI_RETURN_STRING(WMI_SOC_TX_PACKET_CUSTOM_CLASSIFY_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -38692,7 +38698,33 @@ typedef enum { WMI_PDEV_WIFIRXCCE_USE_CCE2_E = 3, } wmi_pdev_dest_ring_handler_type; -/* This command shall be sent only when no VDEV is up. If the command is sent after any VDEV is up, target will ignore the command */ +typedef enum { + WMI_SOC_TX_PACKET_TYPE_ARP = 1, + WMI_SOC_TX_PACKET_TYPE_EAPOL = 2, + WMI_SOC_TX_PACKET_TYPE_DHCP = 3, + WMI_SOC_TX_PACKET_TYPE_DNS = 4, + WMI_SOC_TX_PACKET_TYPE_ICMP = 5, +} wmi_soc_tx_packet_type; + +/* + * This command shall be sent only when no VDEV is up. + * If the command is sent after any VDEV is up, target will ignore the command. + */ +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_tx_packet_custom_classify_cmd_fixed_param */ + A_UINT32 tlv_header; + /** packet_bitmap: + * bitmap of the packets to be classified, + * Refer to wmi_soc_tx_packet_type for the interpretation of the bits + * within the bitmap. + */ + A_UINT32 packet_bitmap; +} wmi_soc_tx_packet_custom_classify_cmd_fixed_param; + +/* + * This command shall be sent only when no VDEV is up. + * If the command is sent after any VDEV is up, target will ignore the command. + */ typedef struct { /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_update_pkt_routing_cmd_fixed_param */ A_UINT32 tlv_header; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 09a85807b5f5..a6068c217d22 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_ 1462 +#define __WMI_REVISION_ 1463 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 781144c5328974fc7428ffb982b723a968720f65 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 12 Mar 2024 06:01:38 -0700 Subject: [PATCH 09/26] fw-api: CL 26220780 - update fw common interface files Change-Id: I776c5409a9a2dc873db647a268f4a2bd11af9045 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 15a73058f72e..dac309ea90ba 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -5262,6 +5262,7 @@ typedef enum { WMI_VENDOR1_REQ1_VERSION_3_30 = 3, WMI_VENDOR1_REQ1_VERSION_3_40 = 4, WMI_VENDOR1_REQ1_VERSION_4_00 = 5, + WMI_VENDOR1_REQ1_VERSION_4_10 = 6, } WMI_VENDOR1_REQ1_VERSION; typedef enum { @@ -5612,6 +5613,11 @@ typedef enum { WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 158, 1) #define WMI_SET_STA_P2P_NAN_TDLS_SUPPORT(feature_bitmap, val) \ WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 158, 1, val) +/* NAN EHT supported info */ +#define WMI_GET_NAN_EHT_SUPPORT(var, feature_bitmap) \ + WMI_GET_BITS_ARRAY_LEN32_BYTES(var, feature_bitmap, 159, 1) +#define WMI_SET_NAN_EHT_SUPPORT(feature_bitmap, val) \ + WMI_SET_BITS_ARRAY_LEN32_BYTES(feature_bitmap, 159, 1, val) /* * Specify how many A_UINT32 words are needed to hold the feature bitmap flags. diff --git a/fw/wmi_version.h b/fw/wmi_version.h index a6068c217d22..6c84a340a516 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_ 1463 +#define __WMI_REVISION_ 1464 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From a15d0d9203240e2875ad63f95b4846ed1b9193f9 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 13 Mar 2024 06:01:24 -0700 Subject: [PATCH 10/26] fw-api: CL 26228979 - update fw common interface files Change-Id: I049a9581e67b52ee40a3f88cb8474b0eac61ed15 CRs-Fixed: 2262693 --- fw/htt.h | 1 + fw/htt_stats.h | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/fw/htt.h b/fw/htt.h index d339e69bff5b..2a4e02955d0e 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -826,6 +826,7 @@ typedef enum { HTT_STATS_PDEV_RTT_TBR_SELFGEN_QUEUED_STATS_TAG = 197, /* htt_stats_pdev_rtt_tbr_selfgen_queued_stats_tlv */ HTT_STATS_PDEV_RTT_TBR_CMD_RESULT_STATS_TAG = 198, /* htt_stats_pdev_rtt_tbr_cmd_result_stats_tlv */ HTT_STATS_GTX_TAG = 199, /* htt_stats_gtx_tlv */ + HTT_STATS_TX_PDEV_WIFI_RADAR_TAG = 200, /* htt_stats_tx_pdev_wifi_radar_tlv */ HTT_STATS_MAX_TAG, diff --git a/fw/htt_stats.h b/fw/htt_stats.h index d6484163d1f3..2f5f9aaa77c7 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -8601,6 +8601,82 @@ typedef struct { } htt_pdev_rtt_init_stats_t; #endif /* ATH_TARGET */ +enum { + HTT_STATS_WIFI_RADAR_CAL_TYPE_NONE = 0, + HTT_STATS_WIFI_RADAR_CAL_TYPE_GAIN_BINARY_SEARCH = 1, + HTT_STATS_WIFI_RADAR_CAL_TYPE_TX_GAIN_BINARY_SEARCH = 2, + HTT_STATS_WIFI_RADAR_CAL_TYPE_RECAL_GAIN_VALIDATION = 3, + HTT_STATS_WIFI_RADAR_CAL_TYPE_RECAL_GAIN_BINARY_SEARCH = 4, + /* the value 5 is reserved for future use */ + + HTT_STATS_NUM_WIFI_RADAR_CAL_TYPES = 6 +}; + +enum { + HTT_STATS_WIFI_RADAR_CAL_FAILURE_NONE = 0, + HTT_STATS_WIFI_RADAR_CAL_FAILURE_DPD_ABORT = 1, + HTT_STATS_WIFI_RADAR_CAL_FAILURE_CONVERGENCE = 2, + HTT_STATS_WIFI_RADAR_CAL_FAILURE_TX_EXCEEDS_RETRY = 3, + HTT_STATS_WIFI_RADAR_CAL_FAILURE_CAPTURE = 4, + HTT_STATS_WIFI_RADAR_CAL_FAILURE_NEW_CHANNEL_CHANGE = 5, + HTT_STATS_WIFI_RADAR_CAL_FAILURE_NEW_CAL_REQ = 6, + /* the values 7-9 are reserved for future use */ + + HTT_STATS_NUM_WIFI_RADAR_CAL_FAILURE_REASONS = 10 +}; + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + A_UINT32 capture_in_progress; + A_UINT32 calibration_in_progress; + /* Capture time interval, in ms */ + A_UINT32 periodicity; + /* Last user request timestamp, in ms */ + A_UINT32 latest_req_timestamp; + /* Last target res timestamp, in ms */ + A_UINT32 latest_resp_timestamp; + /* Time taken by last calibration to end, in ms */ + A_UINT32 latest_calibration_timing; + /* Time taken by last calibration to end, in ms for each chain */ + A_UINT32 calibration_timing_per_chain[HTT_STATS_MAX_CHAINS]; + /* To log user request count */ + A_UINT32 wifi_radar_req_count; + /* Total packet success count */ + A_UINT32 num_wifi_radar_pkt_success; + /* Total packet queued count */ + A_UINT32 num_wifi_radar_pkt_queued; + /* Total packet success count during latest calibration alone */ + A_UINT32 num_wifi_radar_cal_pkt_success; + /* Tx Gain Calibration Output - Initial Tx Gain index*/ + A_UINT32 wifi_radar_cal_init_tx_gain; + /* Last Calibration Type, refer to HTT_STATS_WIFI_RADAR_CAL_TYPE_ consts */ + A_UINT32 latest_wifi_radar_cal_type; + /* Calibration Type counters */ + A_UINT32 wifi_radar_cal_type_counts[HTT_STATS_NUM_WIFI_RADAR_CAL_TYPES]; + /* + * Last Calibration Fail Reason, + * refer to HTT_STATS_WIFI_RADAR_CAL_FAILURE_ consts + */ + A_UINT32 latest_wifi_radar_cal_fail_reason; + /* Calibration Fail Reason counters */ + A_UINT32 wifi_radar_cal_fail_reason_counts[HTT_STATS_NUM_WIFI_RADAR_CAL_FAILURE_REASONS]; + /* WiFi Radar Licensed for SKU: 0 - No; 1 - Yes */ + A_UINT32 wifi_radar_licensed; + /* + * cmd result to show failure count of CTS2SELF across MAX_CMD_RESULT + * reasons + */ + A_UINT32 cmd_results_cts2self[HTT_STATS_MAX_SCH_CMD_RESULT]; + /* + * cmd result to show failure count of wifi radar across MAX_CMD_RESULT + * reasons + */ + A_UINT32 cmd_results_wifi_radar[HTT_STATS_MAX_SCH_CMD_RESULT]; + /* Tx gain index from gain table obtained/used for calibration */ + A_UINT32 wifi_radar_tx_gains[HTT_STATS_MAX_CHAINS]; + /* Rx gain index from gain table obtained/used from calibration */ + A_UINT32 wifi_radar_rx_gains[HTT_STATS_MAX_CHAINS][HTT_STATS_MAX_CHAINS]; +} htt_stats_tx_pdev_wifi_radar_tlv; /* STATS_TYPE : HTT_DBG_EXT_PKTLOG_AND_HTT_RING_STATS * TLV_TAGS: From 7e4d931c4540f7e9492955a11f3d5b454b21b74c Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 13 Mar 2024 12:01:39 -0700 Subject: [PATCH 11/26] fw-api: CL 26228983 - update fw common interface files Change-Id: Ibfc2698cd9d998bdaf8c99455dbe6d6170569806 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 3 +++ fw/wmi_version.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index dac309ea90ba..daa217ed3d78 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -7291,6 +7291,9 @@ typedef struct { #define WMI_TX_SEND_FLAG_SET_PS_BUFFERING_FOR_SA_QUERY 0x00000002 #define WMI_TX_SEND_FLAG_SET_PS_BUFFERING_FOR_SA_QUERY_GET(tx_flags) WMI_GET_BITS(tx_flags, 1, 1) #define WMI_TX_SEND_FLAG_SET_PS_BUFFERING_FOR_SA_QUERY_SET(tx_flags, value) WMI_SET_BITS(tx_flags, 1, 1, value) +#define WMI_TX_SEND_FLAG_SET_IS_SA_QUERY 0x00000004 +#define WMI_TX_SEND_FLAG_SET_IS_SA_QUERY_GET(tx_flags) WMI_GET_BITS(tx_flags, 2, 1) +#define WMI_TX_SEND_FLAG_SET_IS_SA_QUERY_SET(tx_flags, value) WMI_SET_BITS(tx_flags, 2, 1, value) typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_send_params */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 6c84a340a516..ab8de8642dc2 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_ 1464 +#define __WMI_REVISION_ 1465 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 30eebe2fb62243c31f3549cd2f938c00e8f4bec3 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 14 Mar 2024 06:01:17 -0700 Subject: [PATCH 12/26] fw-api: CL 26238735 - update fw common interface files Change-Id: I284c73450a02c908af02f56d5c023ca9017300ba CRs-Fixed: 2262693 --- fw/wmi_unified.h | 16 +++++++++++++++- fw/wmi_version.h | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index daa217ed3d78..04e612f5e282 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -10093,6 +10093,16 @@ typedef enum { WMI_MGMT_TX_COMP_TYPE_MAX, } WMI_MGMT_TX_COMP_STATUS_TYPE; +#define WMI_VDEV_ID_VALID_FROM_INFO_GET(info) \ + WMI_GET_BITS(info, 3, 1) +#define WMI_VDEV_ID_VALID_FROM_INFO_SET(info,val) \ + WMI_SET_BITS(info, 3, 1, val) + +#define WMI_VDEV_ID_FROM_INFO_GET(info) \ + WMI_GET_BITS(info, 4, 8) +#define WMI_VDEV_ID_FROM_INFO_SET(info) \ + WMI_SET_BITS(info, 4, 8, val) + typedef struct { A_UINT32 tlv_header; A_UINT32 desc_id; /* from tx_send_cmd */ @@ -10126,7 +10136,11 @@ typedef struct { * one of the wmi_mlo_band_info_t enum constants. * Macros WMI_ROAM_BTM_RESP_MLO_BAND_INFO_GET,SET * can be reused for setting mlo band info. - * Bit[3:31] - reserved + * Bit[3] - set when vdev_id_info is populated in Bit[4:11] + * macros WMI_VDEV_ID_VALID_FROM_INFO_GET,SET can be used + * Bit[4:11] - vdev_id on which frame is sent, + * Macros WMI_VDEV_ID_FROM_INFO_GET,SET can be used + * Bit[12:31] - reserved */ A_UINT32 info; } wmi_mgmt_tx_compl_event_fixed_param; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index ab8de8642dc2..468fc765ddaf 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_ 1465 +#define __WMI_REVISION_ 1466 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 784cd1a9c27e5e55338ffdf2f2f2660546bdc2ec Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 14 Mar 2024 06:05:45 -0700 Subject: [PATCH 13/26] fw-api: CL 26238739 - update fw common interface files Change-Id: I7e367d199ab78a538f46758a43a7d166b7e9e111 CRs-Fixed: 2262693 --- fw/htt.h | 70 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index 2a4e02955d0e..d3293f7f609a 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -7173,33 +7173,35 @@ PREPACK struct htt_rx_ring_selection_cfg_t { * * The message would appear as follows: * - * |31 26|25|24|23 22|21|20|19|18 16|15|14|13|12|11|10|9|8|7|6|5|4|3|2 0| - * |--------+--+--+-----+--+--+--+-----+--+--+--+--+--+--+-+-+-+-+-+-+-+----| - * | rsvd1 |PS|SS| ring_id | pdev_id | msg_type | - * |-----------+--------+--------+-----+------------------------------------| - * | rsvd2 | DATA | CTRL | MGMT| ring_buffer_size | - * |--------------------------------------+--+--+--+--+--+-+-+-+-+-+-+-+----| - * | | M| M| M| M| M|M|M|M|M|M|M|M| | - * | | S| S| S| P| P|P|S|S|S|P|P|P| | - * | | E| E| E| E| E|E|S|S|S|S|S|S| | - * | rsvd3 | D| C| M| D| C|M|D|C|M|D|C|M| E | - * |------------------------------------------------------------------------| - * | tlv_filter_mask_in0 | - * |------------------------------------------------------------------------| - * | tlv_filter_mask_in1 | - * |------------------------------------------------------------------------| - * | tlv_filter_mask_in2 | - * |------------------------------------------------------------------------| - * | tlv_filter_mask_in3 | - * |-----------------+-----------------+---------------------+--------------| - * | tx_msdu_start_wm| tx_queue_ext_wm | tx_peer_entry_wm |tx_fes_stup_wm| - * |------------------------------------------------------------------------| - * | pcu_ppdu_setup_word_mask | - * |--------------------+--+--+--+-----+---------------------+--------------| - * | rsvd4 | D| C| M| PT | rxpcu_usrsetp_wm |tx_mpdu_srt_wm| - * |------------------------------------------------------------------------| + * |31 28|27|26|25|24|23 22|21|20|19|18 16|15|14|13|12|11|10|9|8|7|6|5|4|3|2 0| + * |-----+--+--+--+--+-----+--+--+--+-----+--+--+--+--+--+--+-+-+-+-+-+-+-+----| + * |rsvd1|MF|TM|PS|SS| ring_id | pdev_id | msg_type | + * |--------------+--------+--------+-----+------------------------------------| + * | rsvd2 | DATA | CTRL | MGMT| ring_buffer_size | + * |-----------------------------------------+--+--+--+--+--+-+-+-+-+-+-+-+----| + * | | M| M| M| M| M|M|M|M|M|M|M|M| | + * | | S| S| S| P| P|P|S|S|S|P|P|P| | + * | | E| E| E| E| E|E|S|S|S|S|S|S| | + * | rsvd3 | D| C| M| D| C|M|D|C|M|D|C|M| E | + * |---------------------------------------------------------------------------| + * | tlv_filter_mask_in0 | + * |---------------------------------------------------------------------------| + * | tlv_filter_mask_in1 | + * |---------------------------------------------------------------------------| + * | tlv_filter_mask_in2 | + * |---------------------------------------------------------------------------| + * | tlv_filter_mask_in3 | + * |--------------------+-----------------+---------------------+--------------| + * | tx_msdu_start_wm | tx_queue_ext_wm | tx_peer_entry_wm |tx_fes_stup_wm| + * |---------------------------------------------------------------------------| + * | pcu_ppdu_setup_word_mask | + * |-----------------------+--+--+--+-----+---------------------+--------------| + * | rsvd4 | D| C| M| PT | rxpcu_usrsetp_wm |tx_mpdu_srt_wm| + * |---------------------------------------------------------------------------| * * Where: + * MF = MAC address filtering enable + * TM = tx monitor global enable * PS = pkt_swap * SS = status_swap * The message is interpreted as follows: @@ -7218,7 +7220,9 @@ PREPACK struct htt_rx_ring_selection_cfg_t { * e.g. wmac_top_reg_seq_hwioreg.h * b'26 - tx_mon_global_en: Enable/Disable global register * configuration in Tx monitor module. - * b'27:31 - rsvd1: reserved for future use + * b'27 - mac_addr_filter_en: + * Enable/Disable Mac Address based filter. + * b'28:31 - rsvd1: reserved for future use * dword1 - b'0:15 - ring_buffer_size: size of bufferes referenced by rx ring, * in byte units. * Valid only for HW_TO_SW_RING and SW_TO_HW_RING @@ -7364,7 +7368,8 @@ PREPACK struct htt_tx_monitor_cfg_t { status_swap: 1, pkt_swap: 1, tx_mon_global_en: 1, - rsvd1: 5; + mac_addr_filter_en: 1, + rsvd1: 4; A_UINT32 ring_buffer_size: 16, config_length_mgmt: 3, config_length_ctrl: 3, @@ -7467,6 +7472,17 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_MON_GLOBAL_EN_S)); \ } while (0) +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_M 0x08000000 +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_S 27 +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_GET(_var) \ + (((_var) & HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_M) >> \ + HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_S) +#define HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN, _val); \ + ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_MAC_ADDR_FILTER_EN_S)); \ + } while (0) + #define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_M 0x0000ffff #define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_S 0 #define HTT_TX_MONITOR_CFG_RING_BUFFER_SIZE_GET(_var) \ From 799e9fe996a2511cade6cebd0a68d6b5da5c1ffa Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 14 Mar 2024 06:09:58 -0700 Subject: [PATCH 14/26] fw-api: CL 26241114 - update fw common interface files Change-Id: I77d238b74d71254e0e6316ed859f7e6711ff578e 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 8f0c14be72a2..ebe4ef90ea04 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -660,6 +660,7 @@ typedef enum { WMI_SERVICE_MLO_MODE2_RECOVERY_SUPPORTED = 406, /* Indicate FW support for MLO mode2 recovery */ WMI_SERVICE_MSDUQ_RECFG = 407, /* FW support the HTT MSDUQ_RECFG_REQ + MSDUQ_CFG_IND messages */ WMI_SERVICE_TRAFFIC_CONTEXT_SUPPORT = 408, /* FW supports traffic context aware manager */ + WMI_SERVICE_STA_SAP_NDP_CONCURRENCY_SUPPORT = 409, /* FW supports STA + SAP + NDP concurrency */ WMI_MAX_EXT2_SERVICE From 682c9f1bc017dadaec26f4a9153e2ab4f27b0d8b Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 15 Mar 2024 06:01:14 -0700 Subject: [PATCH 15/26] fw-api: CL 26242685 - update fw common interface files Change-Id: Icfee86656d047e67b651a3b0a16bd88bd8dde701 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 3 +++ fw/wmi_version.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 04e612f5e282..ca81100fe70a 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -18761,6 +18761,9 @@ typedef enum { /* VDEV parameter to configure Telescopic DTIM count */ WMI_VDEV_PARAM_TELESDTIM_CNT, /* 0xC3 */ + /* Configure minimum DTIM level used by Telescopic DTIM */ + WMI_VDEV_PARAM_MIN_TELES_DTIM_LVL, /* 0xC4 */ + /*=== 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 468fc765ddaf..3e00aa3b3e05 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_ 1466 +#define __WMI_REVISION_ 1467 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From cb5474189baf721a944990a3d788bb4701adf3e7 Mon Sep 17 00:00:00 2001 From: Kenvish Butani Date: Tue, 19 Mar 2024 13:32:10 +0530 Subject: [PATCH 16/26] fw-api: CL 26238739, 26268166 - update fw common interface file txmon_tlvs.h #3 CRs-Fixed: 2262693 Change-Id: I35d04044fa0d17d69fa08848dff64e601e75843b --- fw/txmon_tlvs.h | 72 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/fw/txmon_tlvs.h b/fw/txmon_tlvs.h index 4ba80bad661f..6471366303a1 100644 --- a/fw/txmon_tlvs.h +++ b/fw/txmon_tlvs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2022,2024 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -34,6 +34,22 @@ #define TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_M 0xffffffff #define TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_S 0 +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_M 0x000fffff +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_S 0 + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM_M 0x000007ff +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM_S 0 + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_HW_LINK_ID_M 0x00003800 +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_HW_LINK_ID_S 11 + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID_M 0x0007c000 +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID_S 14 + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID_M 0x00080000 +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID_S 19 + + #define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_GET(_var) \ (((_var) & TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_M) >> \ TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_S) @@ -84,6 +100,58 @@ ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_S)); \ } while (0) +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_GET(_var) \ + (((_var) & TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_M) >> \ + TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_S) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE, _val); \ + ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_S)); \ + } while (0) + + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM_GET(_var) \ + (((_var) & TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM_M) >> \ + TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM_S) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM, _val); \ + ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_SEQ_NUM_S)); \ + } while (0) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_HW_LINK_ID_GET(_var) \ + (((_var) & TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_HW_LINK_ID_M) >> \ + TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_HW_LINK_ID_S) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_HW_LINK_ID_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_FW_COOKIEHW_LINK_ID, _val); \ + ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_HW_LINK_ID_S)); \ + } while (0) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID_GET(_var) \ + (((_var) & TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID_M) >> \ + TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID_S) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID, _val); \ + ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_PACKET_ID_S)); \ + } while (0) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID_GET(_var) \ + (((_var) & TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID_M) >> \ + TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID_S) + +#define TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID, _val); \ + ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_FW_COOKIE_VALID_S)); \ + } while (0) + + enum txmon_fw2sw_user_id { TXMON_FW2SW_TYPE_FES_SETUP = 0, /* Placed after FES_SETUP */ TXMON_FW2SW_TYPE_FES_SETUP_USER = 1, /* Placed before FES_SETUP_COMPLETE */ @@ -98,6 +166,8 @@ typedef struct txmon_fw2sw_fes_setup { mhz : 16, reserved : 8; A_UINT32 schedule_id; + A_UINT32 fw_cookie : 20, + rsvd : 12; } txmon_fw2sw_fes_setup_t; typedef struct txmon_fw2sw_fes_setup_ext { From 50e74d180e19e3702693dc59f4f9f1021e34cacb Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 19 Mar 2024 03:16:49 -0700 Subject: [PATCH 17/26] fw-api: CL 26268167 - update fw common interface files Change-Id: I087f7880c14e9d4d0d11c472c2efa79bf1449d58 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 13 +++++++++++-- fw/wmi_version.h | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index ca81100fe70a..16d8ecaa6b3e 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -10100,7 +10100,7 @@ typedef enum { #define WMI_VDEV_ID_FROM_INFO_GET(info) \ WMI_GET_BITS(info, 4, 8) -#define WMI_VDEV_ID_FROM_INFO_SET(info) \ +#define WMI_VDEV_ID_FROM_INFO_SET(info,val) \ WMI_SET_BITS(info, 4, 8, val) typedef struct { @@ -38987,10 +38987,17 @@ typedef struct { #define WLM_FLAGS_PS_DISABLE_MLO_PROBE_SCAN 1 /* disable MLO probe scan */ /* bit 24: WLM_FLAGS_PS_DISABLE_ULL_FORCED_MLMR, - * disable forced MLMR on ULL if bit is set + * Disable forced MLMR on ULL if bit is set. + * (MLMR may still happen due to other reasons.) */ #define WLM_FLAGS_PS_DISABLE_ULL_FORCED_MLMR 1 /* disable forced MLMR on ULL */ +/* bit 25: WLM_FLAGS_PS_DISABLE_ULL_FORCED_EMLSR, + * Disable forced EMLSR on ULL if bit is set. + * (eMLSR may still happen due to other reasons.) + */ +#define WLM_FLAGS_PS_DISABLE_ULL_FORCED_EMLSR 1 /* disable forced EMLSR on ULL */ + #define WLM_FLAGS_SCAN_IS_SUPPRESS(flag) WMI_GET_BITS(flag, 0, 1) #define WLM_FLAGS_SCAN_SET_SUPPRESS(flag, val) WMI_SET_BITS(flag, 0, 1, val) #define WLM_FLAGS_SCAN_IS_SKIP_DFS(flag) WMI_GET_BITS(flag, 1, 1) @@ -39028,6 +39035,8 @@ typedef struct { #define WLM_FLAGS_PS_SET_MLO_PROBE_SCAN_DISABLE(flag, val) WMI_SET_BITS(flag, 23, 1, val) #define WLM_FLAGS_PS_IS_ULL_FORCED_MLMR_DISABLED(flag) WMI_GET_BITS(flag, 24, 1) #define WLM_FLAGS_PS_SET_ULL_FORCED_MLMR_DISABLE(flag, val) WMI_SET_BITS(flag, 24, 1, val) +#define WLM_FLAGS_PS_IS_ULL_FORCED_EMLSR_DISABLED(flag) WMI_GET_BITS(flag, 25, 1) +#define WLM_FLAGS_PS_SET_ULL_FORCED_EMLSR_DISABLE(flag, val) WMI_SET_BITS(flag, 25, 1, val) #define WLM_FLAGS_SET_FORCE_DEFAULT_LATENCY(flag, val) WMI_SET_BITS(flag, 0, 1, val) #define WLM_FLAGS_GET_FORCE_DEFAULT_LATENCY(flag) WMI_GET_BITS(flag, 0, 1) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 3e00aa3b3e05..f329955939f4 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_ 1467 +#define __WMI_REVISION_ 1468 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From cf732619a887be4ca49c0501306edad2b416a52c Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 19 Mar 2024 03:23:37 -0700 Subject: [PATCH 18/26] fw-api: CL 26269344 - update fw common interface files Change-Id: I6a34582bf2276ac8648aed324b7b07bc3df2d583 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 16d8ecaa6b3e..5c3d535d2c29 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -18764,6 +18764,8 @@ typedef enum { /* Configure minimum DTIM level used by Telescopic DTIM */ WMI_VDEV_PARAM_MIN_TELES_DTIM_LVL, /* 0xC4 */ + /* Set HW CTS2SELF before DL OFDMA Sequence */ + WMI_VDEV_PARAM_HWCTS2SELF_OFDMA, /* 0xC5 */ /*=== 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 f329955939f4..1b6c7549ffcd 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_ 1468 +#define __WMI_REVISION_ 1469 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From b6d172a4928d2bfec446c866ea4f52d3c73cbdab Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 20 Mar 2024 06:02:09 -0700 Subject: [PATCH 19/26] fw-api: CL 26280447 - update fw common interface files Change-Id: If50a42516210f2047cb7f3c3d7bc421b8a11cbfa CRs-Fixed: 2262693 --- fw/wmi_unified.h | 14 +++++++++++++- fw/wmi_version.h | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 5c3d535d2c29..8e04193c6c4f 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -4605,8 +4605,15 @@ typedef struct { * 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. + * Bit 19 - show whether the host supports 128 or 256 service classes + * This bit will be set when host supports for 256 service classes + * 0 -> host supports 128 service classes + * 1 -> host supports 255 [0-254] valid service classes, + * and 255 indicates an invalid service class + * Refer to WMI_RSRC_CFG_FLAGS2_SAWF_255_SVC_CLASS_SUPPORT_GET/SET + * macros. * - * Bits 31:19 - Reserved + * Bits 31:20 - Reserved */ A_UINT32 flags2; /** @brief host_service_flags - can be used by Host to indicate @@ -5096,6 +5103,11 @@ typedef struct { #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_FLAGS2_SAWF_255_SVC_CLASS_SUPPORT_GET(flags2) \ + WMI_GET_BITS(flags2, 19, 1) +#define WMI_RSRC_CFG_FLAGS2_SAWF_255_SVC_CLASS_SUPPORT_SET(flags2, value) \ + WMI_SET_BITS(flags2, 19, 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 1b6c7549ffcd..1dd5f8f306d6 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_ 1469 +#define __WMI_REVISION_ 1470 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 35fc2ee0bc505d56861c395f84ecced38a47a655 Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 22 Mar 2024 06:02:06 -0700 Subject: [PATCH 20/26] fw-api: CL 26301574 - update fw common interface files Change-Id: I6f125fdd7a7ba4332257b0978c2bcc6cd43d2490 CRs-Fixed: 2262693 --- fw/wlan_module_ids.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fw/wlan_module_ids.h b/fw/wlan_module_ids.h index b8ebd0e90a91..af28e6db8700 100644 --- a/fw/wlan_module_ids.h +++ b/fw/wlan_module_ids.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -154,7 +154,7 @@ typedef enum { WLAN_MODULE_SMART_TX, /* 0x71 */ WLAN_MODULE_BRIDGE_PEER, /* 0x72 */ WLAN_MODULE_AUX_MAC_MGR, /* 0x73 */ - + WLAN_MODULE_TCAM, /* 0x74 */ WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, From 04b280064212aed5321560829cd8f898abc4eb8f Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 23 Mar 2024 12:01:49 -0700 Subject: [PATCH 21/26] fw-api: CL 26304560 - update fw common interface files Change-Id: Ic8da63a2e1b430d87eba21e6cd60a5e7b54727ee CRs-Fixed: 2262693 --- fw/wmi_unified.h | 41 +++++++++++++++++++++++++++++++++++------ fw/wmi_version.h | 2 +- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 8e04193c6c4f..f30355a11dc6 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -22967,6 +22967,12 @@ typedef enum { WMI_BL_REASON_REASSOC_RSSI_REJECT, /* Reassoc resp with status code 17 - DENIED_NO_MORE_STAS */ WMI_BL_REASON_REASSOC_NO_MORE_STAS, + WMI_BL_REASON_BASIC_RATES_MIS_MATCH, /* Status code 18 */ + WMI_BL_REASON_EHT_NOT_SUPPORTED, /* Status code 135 */ + WMI_BL_REASON_EXISTING_MLD_ASSOCIATION, /* Status code 130 */ + WMI_BL_REASON_LINK_TRANSMITTED_NOT_ACCEPTED, /* Status code 139 */ + WMI_BL_REASON_DENIED_OTHER_REASON, + WMI_BL_REASON_BTM_LOAD_BALANCE, } WMI_BLACKLIST_REASON_ID; typedef enum { @@ -22974,6 +22980,8 @@ typedef enum { WMI_BL_SOURCE_FW, } WMI_BLACKLIST_SOURCE_ID; +#define WMI_MAX_FAILED_LINK_COMBO_COUNT 10 + typedef struct { /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_blacklist_with_timeout_tlv_param */ A_UINT32 tlv_header; @@ -22996,11 +23004,18 @@ typedef struct { /* Original timeout value in milli seconds when AP added to BL */ A_UINT32 original_timeout; /* - * If disallow_linkid_bitmap is not 0, then means current entity - * is for MLD AP and bssid field is standing for MLD address. - * If all links for MLD AP is disallow, then the value shall be 0xffffffff + * The disallow link ID bitmap indicates links which should not be allowed + * for any assoc or partner link combination. + * If all links for MLD AP are disallowed, then the value shall be + * 0xffffffff. */ A_UINT32 disallow_linkid_bitmap; + /* MLD address of AP */ + wmi_mac_addr mld; + /* List of link combinations for which association is failed */ + A_UINT32 ml_failed_links_combo_bitmap[WMI_MAX_FAILED_LINK_COMBO_COUNT]; + /* Failed link combo count filled in ml_failed_links_combo_bitmap[] */ + A_UINT32 ml_failed_link_combo_count; } wmi_roam_blacklist_with_timeout_tlv_param; /** WMI_ROAM_BLACKLIST_EVENT: generated whenever STA needs to move AP to blacklist for a particluar time @@ -40196,11 +40211,18 @@ typedef struct { /* Original timeout value in milli seconds when AP added to BL */ A_UINT32 original_timeout; /* - * If disallow_linkid_bitmap is not 0, then means current entity - * is for MLD AP and bssid field is standing for MLD address. - * If all links for MLD AP is disallow, then the value shall be 0xffffffff + * The disallow link ID bitmap indicates links which should not be allowed + * for any assoc or partner link combination. + * If all links for MLD AP are disallowed, then the value shall be + * 0xffffffff. */ A_UINT32 disallow_linkid_bitmap; + /* MLD address of AP */ + wmi_mac_addr mld; + /* List of link combinations for which association is failed */ + A_UINT32 ml_failed_links_combo_bitmap[WMI_MAX_FAILED_LINK_COMBO_COUNT]; + /* Failed link combo count filled in ml_failed_links_combo_bitmap[] */ + A_UINT32 ml_failed_link_combo_count; } wmi_pdev_bssid_disallow_list_config_param; typedef enum { @@ -41140,6 +41162,13 @@ typedef struct { * each bit represents. */ A_UINT32 disallow_connect_modes; + + /* + * If max_link_combo_count is non-zero, STA should try to roam to next + * candidate once max allowed link combinations is reached with current + * candidate AP. + */ + A_UINT32 max_link_combo_count; } wmi_roam_mlo_config_cmd_fixed_param; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 1dd5f8f306d6..4fcd6302494d 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_ 1470 +#define __WMI_REVISION_ 1471 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 060d676f2ffc8ec040320c4e57ea433027c6bb73 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 23 Mar 2024 06:01:52 -0700 Subject: [PATCH 22/26] fw-api: CL 26304529 - update fw common interface files Change-Id: I82672e9b80af0dfc7f0f7a4ba607548fddacf4c7 CRs-Fixed: 2262693 --- fw/htt_stats.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 2f5f9aaa77c7..4dc6dab11f5d 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -4398,6 +4398,9 @@ typedef struct { A_UINT32 sched_udp_notify2; A_UINT32 sched_nonudp_notify1; A_UINT32 sched_nonudp_notify2; + A_UINT32 tqm_enqueue_msdu_count; + A_UINT32 tqm_dropped_msdu_count; + A_UINT32 tqm_dequeue_msdu_count; } htt_stats_tx_tqm_pdev_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_tx_tqm_pdev_tlv htt_tx_tqm_pdev_stats_tlv_v; From 4ae4156b31e9cdb9442e3f09b0516693f11363e1 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 28 Mar 2024 12:02:23 -0700 Subject: [PATCH 23/26] fw-api: CL 26351133 - update fw common interface files Change-Id: Idb49610151ca4a1f3f9f61af3c59f75c8b103891 CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_unified.h | 47 +++++++++++++++++++++++++++++------------------ fw/wmi_version.h | 2 +- 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index ebe4ef90ea04..66699c62a357 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -661,6 +661,7 @@ typedef enum { WMI_SERVICE_MSDUQ_RECFG = 407, /* FW support the HTT MSDUQ_RECFG_REQ + MSDUQ_CFG_IND messages */ WMI_SERVICE_TRAFFIC_CONTEXT_SUPPORT = 408, /* FW supports traffic context aware manager */ WMI_SERVICE_STA_SAP_NDP_CONCURRENCY_SUPPORT = 409, /* FW supports STA + SAP + NDP concurrency */ + WMI_SERVICE_THERM_THROT_POUT_REDUCTION = 410, /* FW supports thermal throttling Pout reduction */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index f30355a11dc6..c67dad2eb075 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -36783,27 +36783,38 @@ typedef struct { /** TLV tag and len; tag equals * WMITLV_TAG_STRUC_wmi_therm_throt_level_config_info */ A_UINT32 tlv_header; - /** - * temperature sensor value in celsius when to exit to lower zone, - * this value can be lower than HWM of lower zone as zone overlapping - * is permitted by design to provide hysteresis - */ + /** temp_lwm: + * temperature sensor value in celsius when to exit to lower zone, + * this value can be lower than HWM of lower zone as zone overlapping + * is permitted by design to provide hysteresis + */ A_UINT32 temp_lwm; - /** - * temperature sensor value in celsius when to exit to higher zone, - * this value can be higher than LWM of higher zone as zone overlapping - * is permitted by design to provide hysteresis - */ + /** temp_hwm: + * temperature sensor value in celsius when to exit to higher zone, + * this value can be higher than LWM of higher zone as zone overlapping + * is permitted by design to provide hysteresis + */ A_UINT32 temp_hwm; - A_UINT32 dc_off_percent; /* duty cycle off percent 0-100. 0 means no off, 100 means no on (shutdown the phy) */ - /** Disable only the transmit queues in firmware that have lower priority than value defined by prio - * Prioritization: - * 0 = disable all data tx queues, No Prioritization defined - * 1 = disable BK tx queue - * 2 = disable BK+BE tx queues - * 3 = disable BK+BE+VI tx queues - */ + /** dc_off_percent: + * duty cycle off percent 0-100. + * 0 means no off, 100 means no on (shutdown the phy). + */ + A_UINT32 dc_off_percent; + /** prio: + * Disable only the transmit queues in firmware that have lower priority + * than value defined by prio. + * Prioritization: + * 0 = disable all data tx queues, No Prioritization defined + * 1 = disable BK tx queue + * 2 = disable BK+BE tx queues + * 3 = disable BK+BE+VI tx queues + */ A_UINT32 prio; + /** + * Pout power reduction in 0.25 dB units. + * For example, a value of 5 causes a power reduction of 1.25 dB. + */ + A_UINT32 pout_reduction_25db; } wmi_therm_throt_level_config_info; typedef enum { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 4fcd6302494d..5685f431ae4e 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_ 1471 +#define __WMI_REVISION_ 1472 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 82aee4a5079354ee8f49707ffeb4c95fabed95c1 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 30 Mar 2024 06:02:27 -0700 Subject: [PATCH 24/26] fw-api: CL 26367611 - update fw common interface files Change-Id: I2f8cebda35ab9c84fca0aae8463bda5a7370de67 CRs-Fixed: 2262693 --- fw/htt.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index d3293f7f609a..23df62b46393 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -22941,10 +22941,14 @@ typedef struct _htt_tx_latency_stats { /* HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND */ typedef enum { - HTT_SDWF_MSDUQ_CFG_IND_ERROR_NONE = 0x00, + HTT_SDWF_MSDUQ_CFG_IND_ERROR_NONE = 0x00, HTT_SDWF_MSDUQ_CFG_IND_ERROR_PEER_DELETE_IN_PROG = 0x01, - HTT_SDWF_MSDUQ_CFG_IND_ERROR_SW_MSDUQ_NULL = 0x02, - HTT_SDWF_MSDUQ_CFG_IND_ERROR_MSDUQ_LOCATE_ERROR = 0x03, + HTT_SDWF_MSDUQ_CFG_IND_ERROR_SW_MSDUQ_NULL = 0x02, + HTT_SDWF_MSDUQ_CFG_IND_ERROR_MSDUQ_LOCATE_ERROR = 0x03, + HTT_SDWF_MSDUQ_CFG_IND_ERROR_QPEER_NULL = 0x04, + HTT_SDWF_MSDUQ_CFG_IND_ERROR_DEACTIVATED_MSDUQ = 0x05, + HTT_SDWF_MSDUQ_CFG_IND_ERROR_REACTIVATED_MSDUQ = 0x06, + HTT_SDWF_MSDUQ_CFG_IND_ERROR_INVALID_SVC_CLASS = 0x07, } HTT_SDWF_MSDUQ_CFG_IND_ERROR_CODE_E; PREPACK struct htt_t2h_sdwf_msduq_cfg_ind { From af1bc2076b3c48bb3db30becc24890ade7deaf41 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 30 Mar 2024 12:02:08 -0700 Subject: [PATCH 25/26] fw-api: CL 26367617 - update fw common interface files Change-Id: Ibbf80820bc02e629d60cc67fba271b1f5c4076d5 CRs-Fixed: 2262693 --- fw/htt_stats.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 4dc6dab11f5d..c6c6fee101eb 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -4591,6 +4591,18 @@ typedef struct { A_UINT32 eapol_start_packets; A_UINT32 eapol_logoff_packets; A_UINT32 eapol_encap_asf_packets; + A_UINT32 m1_success; + A_UINT32 m1_compl_fail; + A_UINT32 m2_success; + A_UINT32 m2_compl_fail; + A_UINT32 m3_success; + A_UINT32 m3_compl_fail; + A_UINT32 m4_success; + A_UINT32 m4_compl_fail; + A_UINT32 g1_success; + A_UINT32 g1_compl_fail; + A_UINT32 g2_success; + A_UINT32 g2_compl_fail; } htt_stats_tx_de_eapol_packets_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_tx_de_eapol_packets_tlv htt_tx_de_eapol_packets_stats_tlv; From 8b50c4db78e0a1ca93306c076424da18622626d5 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 30 Mar 2024 12:06:50 -0700 Subject: [PATCH 26/26] fw-api: CL 26368984 - update fw common interface files Change-Id: I526eba8bb39e67009b0fa2f7bf8a96f91404d56e CRs-Fixed: 2262693 --- fw/wmi_unified.h | 10 ++++++++-- fw/wmi_version.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index c67dad2eb075..848ae76ec2e4 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -3464,6 +3464,11 @@ typedef struct { #define WMI_TARGET_CAP_ML_MONITOR_MODE_SUPPORT_SET(target_cap_flags, value) \ WMI_SET_BITS(target_cap_flags, 14, 1, value) +#define WMI_TARGET_CAP_QDATA_TX_LCE_FILTER_SUPPORT_GET(target_cap_flags) \ + WMI_GET_BITS(target_cap_flags, 15, 1) +#define WMI_TARGET_CAP_QDATA_TX_LCE_FILTER_SUPPORT_SET(target_cap_flags, value)\ + WMI_SET_BITS(target_cap_flags, 15, 1, value) + /* * wmi_htt_msdu_idx_to_htt_msdu_qtype GET/SET APIs @@ -3609,7 +3614,8 @@ typedef struct { * Bit12 - [ML-STA + SL-SAP] 0: not supported; 1:supported * Bit 13 - Support for multipass SAP * Bit 14 - Support for ML monitor mode - * Bits 31:15 - Reserved + * Bit 15 - Support for Qdata Tx LCE filter installation + * Bits 31:16 - Reserved */ A_UINT32 target_cap_flags; @@ -36814,7 +36820,7 @@ typedef struct { * Pout power reduction in 0.25 dB units. * For example, a value of 5 causes a power reduction of 1.25 dB. */ - A_UINT32 pout_reduction_25db; + A_UINT32 pout_reduction_25db; } wmi_therm_throt_level_config_info; typedef enum { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 5685f431ae4e..526ea5e2124c 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_ 1472 +#define __WMI_REVISION_ 1473 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work