From bf0141528fe3c6824af9439ce7afb2f0c5575282 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 5 Jun 2024 06:02:05 -0700 Subject: [PATCH] fw-api: CL 26832690 - update fw common interface files Change-Id: I57ea27d8f34514dc43ad433129fdc590e3051f0b CRs-Fixed: 3830439 --- fw/htt.h | 4 +++- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 7 +++++++ fw/wmi_unified.h | 31 ++++++++++++++++++++++++++++++- fw/wmi_version.h | 2 +- 5 files changed, 42 insertions(+), 3 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index 529691e99fd8..6f735a39294e 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -262,9 +262,10 @@ * 3.132 Add flow_classification_3_tuple_field_enable in H2T 3_TUPLE_HASH_CFG. * 3.133 Add packet_type_enable_data_flags fields in rx_ring_selection_cfg. * 3.134 Add qdata_refill flag in rx_peer_metadata_v1a. + * 3.135 Add HTT_HOST4_TO_FW_RXBUF_RING def. */ #define HTT_CURRENT_VERSION_MAJOR 3 -#define HTT_CURRENT_VERSION_MINOR 134 +#define HTT_CURRENT_VERSION_MINOR 135 #define HTT_NUM_TX_FRAG_DESC 1024 @@ -5454,6 +5455,7 @@ enum htt_srng_ring_id { HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_LPASS_TO_FW_RXBUF_RING, /* new LPASS to FW refill ring to recycle rx buffers */ HTT_HOST3_TO_FW_RXBUF_RING, /* used by host for EasyMesh feature */ + HTT_HOST4_TO_FW_RXBUF_RING, /* fourth ring used by host to provide buffers for MGMT packets */ /* Add Other SRING which can't be directly configured by host software above this line */ }; diff --git a/fw/wmi_services.h b/fw/wmi_services.h index e8708012444e..2cb7b94e855f 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -671,6 +671,7 @@ typedef enum { WMI_SERVICE_AP_ASSISTED_DFS_CHAN_P2P_SESSION = 417, /* FW supports P2P session on DFS chan enabled by DFS master AP */ WMI_SERVICE_MLO_SAP_EMLSR_SUPPORT = 418, /* Indicates FW MLO SAP supports EMLSR Mode */ WMI_SERVICE_PKTLOG_ML_TSTMP_SUPPORT = 419, /* Indicates ML timestamp for pktlog */ + WMI_SERVICE_MGMT_SRNG_SUPPORT = 420, /* FW supports MGMT frame forwarding via host provided SRNG instead of WMI */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index cba2b11f01a7..5fb833bc9dac 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1441,6 +1441,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_p2p_cli_dfs_ap_bmiss_fixed_param, WMITLV_TAG_STRUC_wmi_p2p_go_dfs_ap_config_fixed_param, WMITLV_TAG_STRUC_wmi_twt_vdev_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mgmt_srng_reap_event_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2318,6 +2319,7 @@ typedef enum { OP(WMI_PDEV_ENABLE_XLNA_EVENTID) \ OP(WMI_REG_CHAN_LIST_CC_EXT2_EVENTID) \ OP(WMI_P2P_CLI_DFS_AP_BMISS_DETECTED_EVENTID) \ + OP(WMI_MGMT_SRNG_REAP_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -7690,6 +7692,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WIFI_RADAR_CAL_COMPLETION_STATUS_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_enable_xlna_event_fixed_param, wmi_pdev_enable_xlna_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_XLNA_EVENTID); +/* Bcn and Prb over new SRNG */ +#define WMITLV_TABLE_WMI_MGMT_SRNG_REAP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_srng_reap_event_fixed_param, wmi_mgmt_srng_reap_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_SRNG_REAP_EVENTID); + #ifdef __cplusplus } diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 81e2c8545a8d..781b81f0fd80 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2041,6 +2041,9 @@ typedef enum { /** WMI event for Firmware Consumed/Dropped Rx management frames indication */ WMI_MGMT_RX_FW_CONSUMED_EVENTID, + /** WMI event for indication to Host to reap the MGMT SRNG */ + WMI_MGMT_SRNG_REAP_EVENTID, + /* ADDBA Related WMI Events*/ /** Indication the completion of the prior @@ -4631,8 +4634,13 @@ typedef struct { * 0 -> disable the feature * 1 -> enable the feature * Refer to the below WMI_RSRC_CFG_FLAGS2_EPM_GET/SET macros. + * Bit 21 - enable new MGMT SRNG for beacons and probe responses. + * 0 -> disable the feature + * 1 -> enable the feature + * Refer to the below WMI_RSRC_CFG_FLAGS2_IS_MGMT_SRNG_ENABLED_GET/SET + * macros. * - * Bits 31:21 - Reserved + * Bits 31:22 - Reserved */ A_UINT32 flags2; /** @brief host_service_flags - can be used by Host to indicate @@ -5132,6 +5140,12 @@ typedef struct { #define WMI_RSRC_CFG_FLAGS2_EPM_SET(flags2, value) \ WMI_SET_BITS(flags2, 20, 1, value) +#define WMI_RSRC_CFG_FLAGS2_IS_MGMT_SRNG_ENABLED_GET(flags2) \ + WMI_GET_BITS(flags2, 21, 1) +#define WMI_RSRC_CFG_FLAGS2_IS_MGMT_SRNG_ENABLED_SET(flags2, value) \ + WMI_SET_BITS(flags2, 21, 1, value) + + #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_GET(host_service_flags) \ WMI_GET_BITS(host_service_flags, 0, 1) #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_NAN_IFACE_SUPPORT_SET(host_service_flags, val) \ @@ -9657,6 +9671,7 @@ typedef enum { /** configure datastall consecutive no ack threshold */ WMI_PDEV_PARAM_DSTALL_CONSECUTIVE_TX_NO_ACK_THRESHOLD, + WMI_PDEV_PARAM_MGMT_SRNG_REAP_EVENT_THRESHOLD, } WMI_PDEV_PARAM; #define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1) @@ -48614,6 +48629,20 @@ typedef struct { A_UINT32 is_ap_suspend; /* 1 = suspend, 0 = resume */ } wmi_set_ap_suspend_resume_fixed_param; +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mgmt_srng_reap_event_fixed_param */ + A_UINT32 tlv_header; + /** timestamp_tp_update_ms: + * This indicates the last time the tail pointer was updated by FW + * after filling MGMT SRNG entry. + * The timestamp is from the FW CPU's internal clock, in milliseconds units. + */ + A_UINT32 timestamp_tp_update_ms; + /** This indicates the position of the tail pointer as last updated by FW */ + A_UINT32 tail_pointer; +} wmi_mgmt_srng_reap_event_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index dff98841fcc0..3ebe38cc2e0c 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_ 1491 +#define __WMI_REVISION_ 1492 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work