From 3424c5548d3039bff03c4384c8af7d500c0e1e33 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sun, 12 Apr 2026 18:04:09 -0700 Subject: [PATCH 1/2] fw-api: CL 32226903 - update fw common interface files Change-Id: I09dfa14fca2a59b3b6ede26ae2f77c3442d8b58c CRs-Fixed: 3830439 --- fw/wmi_tlv_defs.h | 10 ++++++++++ fw/wmi_unified.h | 21 +++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index a5e7b230197e..9aa58fc5af13 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1613,6 +1613,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_set_cumac_chip_id_confirmation_event_fixed_param, WMITLV_TAG_STRUC_wmi_iface_ipi_stats, WMITLV_TAG_STRUC_wmi_peer_uhr_npca_op_params, + WMITLV_TAG_STRUC_wmi_ndp_channel_info_event_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2580,6 +2581,7 @@ typedef enum { OP(WMI_VDEV_CURRENT_OPERATING_PARAM_EVENTID) \ OP(WMI_COEX_GET_POLICY_STATS_EVENTID) \ OP(WMI_PDEV_SET_CUMAC_CHIP_ID_CONFIRMATION_EVENTID) \ + OP(WMI_NDP_CHANNEL_INFO_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -7388,6 +7390,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_PEER_SCHEDULE_CNF_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_peer_params_cnf_event_fixed_param, wmi_nan_peer_params_cnf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_PEER_PARAMS_CNF_EVENTID); +/* NDP Channel Info Event */ +#define WMITLV_TABLE_WMI_NDP_CHANNEL_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_channel_info_event_fixed_param, wmi_ndp_channel_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, channel_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, nss_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_channel_info, channel_info, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CHANNEL_INFO_EVENTID); + /* Coex report antenna isolation event */ #define WMITLV_TABLE_WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param, wmi_coex_report_isolation_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 23e620ab7f2f..dc3f726a5881 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -2665,6 +2665,8 @@ typedef enum { WMI_NAN_PEER_SCHEDULE_CNF_EVENTID, /* Confirmation event that FW has received WMI_NAN_PEER_PARAMS_CMDID */ WMI_NAN_PEER_PARAMS_CNF_EVENTID, + /* Indicate negotiated committed NDP channels information. */ + WMI_NDP_CHANNEL_INFO_EVENTID, /* Coex Event */ WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_COEX), @@ -31865,6 +31867,25 @@ typedef struct { A_UINT32 status; } wmi_nan_peer_params_cnf_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_channel_info_event_fixed_param */ + + A_UINT32 vdev_id; /* Virtual device ID used for NDP operations (NDI VDEV) */ + /** peer NDI MAC address */ + wmi_mac_addr peer_ndi_macaddr; + /** Number of channels on this peer */ + A_UINT32 num_ndp_channels; + /** + * TLV (tag length value) parameters follow the ndp_confirm + * structure. The TLV's are: + * wmi_channel ndp_channel_list[]; + * A_UINT32 nss_list[]; // Nss indexing should match with channel indexing, + * // since Nss is associated with the channel. + * wmi_ndp_channel_info channel_info[]; // Indexing should match with + * // channel indexing. + */ +} wmi_ndp_channel_info_event_fixed_param; + typedef enum { WMI_NDP_BAND_CAP_2GHZ = 0x01, WMI_NDP_BAND_CAP_5GHZ = 0x02, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 0943d428fd59..93cc9d29d865 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_ 1740 +#define __WMI_REVISION_ 1741 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 7450395d4ef112c1edf72a016d359063ac730514 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sun, 12 Apr 2026 18:06:05 -0700 Subject: [PATCH 2/2] fw-api: CL 32227070 - update fw common interface files Change-Id: I3e30a77a4b510a3a2465269c2f6b51efc2678376 CRs-Fixed: 3830439 --- fw/htt.h | 58 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index 76e269688cca..f11c398ac942 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -283,9 +283,10 @@ * 3.153 Add passthru_pkt flag in rx_peer_metadata structs. * 3.154 Add T2H PEER_DEL_ALL_GLOBAL_VDEV_ID_UNMAP msg def. * 3.155 Add rxmon hdrlen specs in rx_ring_selection_cfg_t. + * 3.156 Add qdata_consent_pkt flag in rx_peer_metadata_v1a and v2. */ #define HTT_CURRENT_VERSION_MAJOR 3 -#define HTT_CURRENT_VERSION_MINOR 155 +#define HTT_CURRENT_VERSION_MINOR 156 #define HTT_NUM_TX_FRAG_DESC 1024 @@ -22007,14 +22008,14 @@ PREPACK struct htt_rx_peer_metadata_v1 { */ PREPACK struct htt_rx_peer_metadata_v1a { A_UINT32 - peer_id: 13, - ml_peer_valid: 1, - vdev_id: 8, - logical_link_id: 4, - chip_id: 3, - qdata_refill: 1, - passthru_pkt: 1, - reserved2: 1; + peer_id: 13, + ml_peer_valid: 1, + vdev_id: 8, + logical_link_id: 4, + chip_id: 3, + qdata_refill: 1, + passthru_pkt: 1, + qdata_consent_pkt: 1; } POSTPACK; #define HTT_RX_PEER_META_DATA_V1A_PEER_ID_S 0 @@ -22094,6 +22095,17 @@ PREPACK struct htt_rx_peer_metadata_v1a { ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_PASSTHRU_PKT_S)); \ } while (0) +#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_S 31 +#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_M 0x80000000 +#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_GET(_var) \ + (((_var) & HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_M) >> HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_S) + +#define HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT, _val); \ + ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_QDATA_CONSENT_PKT_S)); \ + } while (0) + /** * @brief target -> RX PEER METADATA V1B format @@ -22201,14 +22213,15 @@ PREPACK struct htt_rx_peer_metadata_v1b { */ PREPACK struct htt_rx_peer_metadata_v2 { A_UINT32 - peer_id: 5, - ml_peer_valid: 1, - vdev_id: 3, - logical_link_id: 3, - qdata_refill: 1, - peer_session_id: 8, - passthru_pkt: 1, - reserved: 10; + peer_id: 5, + ml_peer_valid: 1, + vdev_id: 3, + logical_link_id: 3, + qdata_refill: 1, + peer_session_id: 8, + passthru_pkt: 1, + qdata_consent_pkt: 1, + reserved: 9; } POSTPACK; #define HTT_RX_PEER_META_DATA_V2_PEER_ID_S 0 @@ -22294,6 +22307,17 @@ PREPACK struct htt_rx_peer_metadata_v2 { ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V2_PASSTHRU_PKT_S)); \ } while (0) +#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_S 22 +#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_M 0x00400000 +#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_GET(_var) \ + (((_var) & HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_M) >> HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_S) + +#define HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT, _val); \ + ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V2_QDATA_CONSENT_PKT_S)); \ + } while (0) + /* generic variables for masks and shifts for various fields */ extern A_UINT32 HTT_RX_PEER_META_DATA_PEER_ID_S;