xref: /wlan-driver/qca-wifi-host-cmn/wmi/inc/wmi_unified_priv.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2013-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name /*
21*5113495bSYour Name  * This file contains the API definitions for the Unified Wireless
22*5113495bSYour Name  * Module Interface (WMI).
23*5113495bSYour Name  */
24*5113495bSYour Name #ifndef _WMI_UNIFIED_PRIV_H_
25*5113495bSYour Name #define _WMI_UNIFIED_PRIV_H_
26*5113495bSYour Name #include <osdep.h>
27*5113495bSYour Name #include "wmi_unified_api.h"
28*5113495bSYour Name #include "wmi_unified_param.h"
29*5113495bSYour Name #include "wlan_scan_ucfg_api.h"
30*5113495bSYour Name #include "qdf_atomic.h"
31*5113495bSYour Name #include <wbuff.h>
32*5113495bSYour Name 
33*5113495bSYour Name #ifdef WLAN_FW_OFFLOAD
34*5113495bSYour Name #include "wlan_fwol_public_structs.h"
35*5113495bSYour Name #endif
36*5113495bSYour Name 
37*5113495bSYour Name #ifdef DFS_COMPONENT_ENABLE
38*5113495bSYour Name #include <wlan_dfs_public_struct.h>
39*5113495bSYour Name #endif
40*5113495bSYour Name #include <qdf_threads.h>
41*5113495bSYour Name #ifdef WLAN_SUPPORT_GREEN_AP
42*5113495bSYour Name #include "wlan_green_ap_api.h"
43*5113495bSYour Name #endif
44*5113495bSYour Name 
45*5113495bSYour Name #ifdef WLAN_FEATURE_NAN
46*5113495bSYour Name #include "nan_public_structs.h"
47*5113495bSYour Name #endif
48*5113495bSYour Name 
49*5113495bSYour Name #ifdef WLAN_SUPPORT_TWT
50*5113495bSYour Name #include "wmi_unified_twt_param.h"
51*5113495bSYour Name #endif
52*5113495bSYour Name 
53*5113495bSYour Name #ifdef WMI_SMART_ANT_SUPPORT
54*5113495bSYour Name #include "wmi_unified_smart_ant_param.h"
55*5113495bSYour Name #endif
56*5113495bSYour Name 
57*5113495bSYour Name #ifdef WMI_DBR_SUPPORT
58*5113495bSYour Name #include "wmi_unified_dbr_param.h"
59*5113495bSYour Name #endif
60*5113495bSYour Name 
61*5113495bSYour Name #ifdef WMI_ATF_SUPPORT
62*5113495bSYour Name #include "wmi_unified_atf_param.h"
63*5113495bSYour Name #endif
64*5113495bSYour Name 
65*5113495bSYour Name #ifdef WDS_CONV_TARGET_IF_OPS_ENABLE
66*5113495bSYour Name #include "wmi_unified_wds_param.h"
67*5113495bSYour Name #endif
68*5113495bSYour Name 
69*5113495bSYour Name #ifdef WLAN_FEATURE_INTEROP_ISSUES_AP
70*5113495bSYour Name #include <wlan_interop_issues_ap_public_structs.h>
71*5113495bSYour Name #endif
72*5113495bSYour Name 
73*5113495bSYour Name #ifdef WLAN_CFR_ENABLE
74*5113495bSYour Name #include <wmi_unified_cfr_param.h>
75*5113495bSYour Name #endif
76*5113495bSYour Name 
77*5113495bSYour Name #ifdef DCS_INTERFERENCE_DETECTION
78*5113495bSYour Name #include <wlan_dcs_public_structs.h>
79*5113495bSYour Name #endif
80*5113495bSYour Name 
81*5113495bSYour Name #ifdef WLAN_FEATURE_PKT_CAPTURE
82*5113495bSYour Name #include "wlan_pkt_capture_public_structs.h"
83*5113495bSYour Name #endif
84*5113495bSYour Name 
85*5113495bSYour Name #ifdef WLAN_CONV_SPECTRAL_ENABLE
86*5113495bSYour Name #include "wlan_spectral_public_structs.h"
87*5113495bSYour Name #endif /* WLAN_CONV_SPECTRAL_ENABLE */
88*5113495bSYour Name 
89*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
90*5113495bSYour Name #include <wlan_cm_roam_public_struct.h>
91*5113495bSYour Name #include <wlan_mlme_public_struct.h>
92*5113495bSYour Name #endif
93*5113495bSYour Name 
94*5113495bSYour Name #ifdef WMI_AP_SUPPORT
95*5113495bSYour Name #include <wmi_unified_ap_params.h>
96*5113495bSYour Name #endif
97*5113495bSYour Name 
98*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
99*5113495bSYour Name #include <wmi_unified_11be_param.h>
100*5113495bSYour Name #include "wlan_mlo_mgr_public_structs.h"
101*5113495bSYour Name #include <wlan_mlo_mgr_link_switch.h>
102*5113495bSYour Name #endif
103*5113495bSYour Name 
104*5113495bSYour Name #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
105*5113495bSYour Name #include <wlan_twt_public_structs.h>
106*5113495bSYour Name #endif
107*5113495bSYour Name 
108*5113495bSYour Name #ifdef WLAN_FEATURE_DBAM_CONFIG
109*5113495bSYour Name #include "wlan_coex_public_structs.h"
110*5113495bSYour Name #endif
111*5113495bSYour Name 
112*5113495bSYour Name #ifdef WLAN_FEATURE_COAP
113*5113495bSYour Name #include "wlan_coap_public_structs.h"
114*5113495bSYour Name #endif
115*5113495bSYour Name 
116*5113495bSYour Name #ifdef QCA_TARGET_IF_MLME
117*5113495bSYour Name #include "wmi_unified_mlme_api.h"
118*5113495bSYour Name #endif
119*5113495bSYour Name 
120*5113495bSYour Name #ifdef WLAN_FEATURE_LL_LT_SAP
121*5113495bSYour Name #include "wlan_ll_sap_public_structs.h"
122*5113495bSYour Name #endif
123*5113495bSYour Name 
124*5113495bSYour Name #define WMI_UNIFIED_MAX_EVENT 0x100
125*5113495bSYour Name 
126*5113495bSYour Name #ifdef WMI_EXT_DBG
127*5113495bSYour Name 
128*5113495bSYour Name #define WMI_EXT_DBG_DIR			"WMI_EXT_DBG"
129*5113495bSYour Name #define WMI_EXT_DBG_FILE		"wmi_log"
130*5113495bSYour Name #define WMI_EXT_DBG_FILE_PERM		(QDF_FILE_USR_READ | \
131*5113495bSYour Name 					 QDF_FILE_GRP_READ | \
132*5113495bSYour Name 					 QDF_FILE_OTH_READ)
133*5113495bSYour Name #define WMI_EXT_DBG_QUEUE_SIZE		1024
134*5113495bSYour Name #define WMI_EXT_DBG_DUMP_ROW_SIZE	16
135*5113495bSYour Name #define WMI_EXT_DBG_DUMP_GROUP_SIZE	1
136*5113495bSYour Name 
137*5113495bSYour Name 
138*5113495bSYour Name /**
139*5113495bSYour Name  * enum WMI_MSG_TYPE - WMI message types
140*5113495bSYour Name  * @WMI_MSG_TYPE_CMD: Message is of type WMI command
141*5113495bSYour Name  * @WMI_MSG_TYPE_EVENT: Message is of type WMI event
142*5113495bSYour Name  */
143*5113495bSYour Name enum WMI_MSG_TYPE {
144*5113495bSYour Name 	WMI_MSG_TYPE_CMD = 0,
145*5113495bSYour Name 	WMI_MSG_TYPE_EVENT,
146*5113495bSYour Name };
147*5113495bSYour Name 
148*5113495bSYour Name /**
149*5113495bSYour Name  * struct wmi_ext_dbg_msg - WMI command/event msg details
150*5113495bSYour Name  * @node: qdf list node of wmi messages
151*5113495bSYour Name  * @len: command/event message length
152*5113495bSYour Name  * @ts: Time of WMI command/event handling
153*5113495bSYour Name  * @type: message type
154*5113495bSYour Name  * @buf: command/event buffer
155*5113495bSYour Name  */
156*5113495bSYour Name struct wmi_ext_dbg_msg {
157*5113495bSYour Name 	qdf_list_node_t node;
158*5113495bSYour Name 	uint32_t len;
159*5113495bSYour Name 	uint64_t ts;
160*5113495bSYour Name 	enum WMI_MSG_TYPE type;
161*5113495bSYour Name 	uint8_t buf[];
162*5113495bSYour Name };
163*5113495bSYour Name #endif /*WMI_EXT_DBG */
164*5113495bSYour Name 
165*5113495bSYour Name #define wmi_alert(params...) QDF_TRACE_FATAL(QDF_MODULE_ID_WMI, ## params)
166*5113495bSYour Name #define wmi_err(params...) QDF_TRACE_ERROR(QDF_MODULE_ID_WMI, ## params)
167*5113495bSYour Name #define wmi_warn(params...) QDF_TRACE_WARN(QDF_MODULE_ID_WMI, ## params)
168*5113495bSYour Name #define wmi_info(params...) QDF_TRACE_INFO(QDF_MODULE_ID_WMI, ## params)
169*5113495bSYour Name #define wmi_debug(params...) QDF_TRACE_DEBUG(QDF_MODULE_ID_WMI, ## params)
170*5113495bSYour Name 
171*5113495bSYour Name #define wmi_nofl_alert(params...) \
172*5113495bSYour Name 	QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_WMI, ## params)
173*5113495bSYour Name #define wmi_nofl_err(params...) \
174*5113495bSYour Name 	QDF_TRACE_ERROR_NO_FL(QDF_MODULE_ID_WMI, ## params)
175*5113495bSYour Name #define wmi_nofl_warn(params...) \
176*5113495bSYour Name 	QDF_TRACE_WARN_NO_FL(QDF_MODULE_ID_WMI, ## params)
177*5113495bSYour Name #define wmi_nofl_info(params...) \
178*5113495bSYour Name 	QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_WMI, ## params)
179*5113495bSYour Name #define wmi_nofl_info_high(params...) \
180*5113495bSYour Name 	QDF_TRACE_INFO_HIGH_NO_FL(QDF_MODULE_ID_WMI, ## params)
181*5113495bSYour Name #define wmi_nofl_debug(params...) \
182*5113495bSYour Name 	QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_WMI, ## params)
183*5113495bSYour Name 
184*5113495bSYour Name #define wmi_alert_rl(params...) QDF_TRACE_FATAL_RL(QDF_MODULE_ID_WMI, params)
185*5113495bSYour Name #define wmi_err_rl(params...) QDF_TRACE_ERROR_RL(QDF_MODULE_ID_WMI, params)
186*5113495bSYour Name #define wmi_warn_rl(params...) QDF_TRACE_WARN_RL(QDF_MODULE_ID_WMI, params)
187*5113495bSYour Name #define wmi_info_rl(params...) QDF_TRACE_INFO_RL(QDF_MODULE_ID_WMI, params)
188*5113495bSYour Name #define wmi_debug_rl(params...) QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_WMI, params)
189*5113495bSYour Name 
190*5113495bSYour Name #ifdef WMI_INTERFACE_EVENT_LOGGING
191*5113495bSYour Name /* wmi entry size */
192*5113495bSYour Name #ifndef WMI_DEBUG_ENTRY_MAX_LENGTH
193*5113495bSYour Name #define WMI_DEBUG_ENTRY_MAX_LENGTH (16)
194*5113495bSYour Name #endif
195*5113495bSYour Name 
196*5113495bSYour Name /* wmi commands */
197*5113495bSYour Name #ifndef WMI_CMD_DEBUG_MAX_ENTRY
198*5113495bSYour Name #define WMI_CMD_DEBUG_MAX_ENTRY (1024)
199*5113495bSYour Name #endif
200*5113495bSYour Name #ifndef WMI_CMD_CMPL_DEBUG_MAX_ENTRY
201*5113495bSYour Name #define WMI_CMD_CMPL_DEBUG_MAX_ENTRY (1024)
202*5113495bSYour Name #endif
203*5113495bSYour Name 
204*5113495bSYour Name /* wmi events */
205*5113495bSYour Name #ifndef WMI_EVENT_DEBUG_MAX_ENTRY
206*5113495bSYour Name #define WMI_EVENT_DEBUG_MAX_ENTRY (1024)
207*5113495bSYour Name #endif
208*5113495bSYour Name 
209*5113495bSYour Name /* wmi mgmt Tx */
210*5113495bSYour Name #ifndef WMI_MGMT_TX_DEBUG_MAX_ENTRY
211*5113495bSYour Name #define WMI_MGMT_TX_DEBUG_MAX_ENTRY (256)
212*5113495bSYour Name #endif
213*5113495bSYour Name #ifndef WMI_MGMT_TX_CMPL_DEBUG_MAX_ENTRY
214*5113495bSYour Name #define WMI_MGMT_TX_CMPL_DEBUG_MAX_ENTRY (256)
215*5113495bSYour Name #endif
216*5113495bSYour Name 
217*5113495bSYour Name /* wmi mgmt Rx */
218*5113495bSYour Name #ifndef WMI_MGMT_RX_DEBUG_MAX_ENTRY
219*5113495bSYour Name #define WMI_MGMT_RX_DEBUG_MAX_ENTRY (256)
220*5113495bSYour Name #endif
221*5113495bSYour Name 
222*5113495bSYour Name /* wmi diag rx events max buffer */
223*5113495bSYour Name #ifndef WMI_DIAG_RX_EVENT_DEBUG_MAX_ENTRY
224*5113495bSYour Name #define WMI_DIAG_RX_EVENT_DEBUG_MAX_ENTRY (256)
225*5113495bSYour Name #endif
226*5113495bSYour Name 
227*5113495bSYour Name /* wmi filtered command event */
228*5113495bSYour Name #ifdef WMI_INTERFACE_FILTERED_EVENT_LOGGING
229*5113495bSYour Name #ifndef WMI_FILTERED_CMD_EVT_SUPPORTED
230*5113495bSYour Name #define WMI_FILTERED_CMD_EVT_SUPPORTED (10)
231*5113495bSYour Name #endif
232*5113495bSYour Name 
233*5113495bSYour Name #ifndef WMI_FILTERED_CMD_EVT_MAX_NUM_ENTRY
234*5113495bSYour Name #define WMI_FILTERED_CMD_EVT_MAX_NUM_ENTRY (1024)
235*5113495bSYour Name #endif
236*5113495bSYour Name #endif /* WMI_INTERFACE_FILTERED_EVENT_LOGGING */
237*5113495bSYour Name 
238*5113495bSYour Name /**
239*5113495bSYour Name  * struct wmi_command_debug - WMI command log buffer data type
240*5113495bSYour Name  * @command: Store WMI Command id
241*5113495bSYour Name  * @data: Stores WMI command data
242*5113495bSYour Name  * @time: Time of WMI command handling
243*5113495bSYour Name  */
244*5113495bSYour Name struct wmi_command_debug {
245*5113495bSYour Name 	uint32_t command;
246*5113495bSYour Name 	/* WMI cmd data excluding TLV and WMI headers */
247*5113495bSYour Name 	uint32_t data[WMI_DEBUG_ENTRY_MAX_LENGTH / sizeof(uint32_t)];
248*5113495bSYour Name 	uint64_t time;
249*5113495bSYour Name };
250*5113495bSYour Name 
251*5113495bSYour Name /**
252*5113495bSYour Name  * struct wmi_command_cmp_debug - WMI command completion log buffer data type
253*5113495bSYour Name  * @command: Store WMI Command id
254*5113495bSYour Name  * @data: Stores WMI command data
255*5113495bSYour Name  * @time: Time of WMI command handling
256*5113495bSYour Name  * @dma_addr: dma address of the WMI buffer
257*5113495bSYour Name  * @phy_addr: physical address of the WMI buffer
258*5113495bSYour Name  */
259*5113495bSYour Name struct wmi_command_cmp_debug {
260*5113495bSYour Name 	uint32_t command;
261*5113495bSYour Name 	/* WMI cmd data excluding TLV and WMI headers */
262*5113495bSYour Name 	uint32_t data[WMI_DEBUG_ENTRY_MAX_LENGTH / sizeof(uint32_t)];
263*5113495bSYour Name 	uint64_t time;
264*5113495bSYour Name 	qdf_dma_addr_t dma_addr;
265*5113495bSYour Name 	uint64_t phy_addr;
266*5113495bSYour Name };
267*5113495bSYour Name 
268*5113495bSYour Name /**
269*5113495bSYour Name  * struct wmi_event_debug - WMI event log buffer data type
270*5113495bSYour Name  * @event: Store WMI Event id
271*5113495bSYour Name  * @data: Stores WMI Event data
272*5113495bSYour Name  * @time: Time of WMI Event handling
273*5113495bSYour Name  */
274*5113495bSYour Name struct wmi_event_debug {
275*5113495bSYour Name 	uint32_t event;
276*5113495bSYour Name 	/* WMI event data excluding TLV header */
277*5113495bSYour Name 	uint32_t data[WMI_DEBUG_ENTRY_MAX_LENGTH / sizeof(uint32_t)];
278*5113495bSYour Name 	uint64_t time;
279*5113495bSYour Name };
280*5113495bSYour Name 
281*5113495bSYour Name /**
282*5113495bSYour Name  * struct wmi_command_header - Type for accessing frame data
283*5113495bSYour Name  * @type: 802.11 Frame type
284*5113495bSYour Name  * @sub_type: 802.11 Frame subtype
285*5113495bSYour Name  * @prot_ver: 802.11 Version
286*5113495bSYour Name  */
287*5113495bSYour Name struct wmi_command_header {
288*5113495bSYour Name #ifndef ANI_LITTLE_BIT_ENDIAN
289*5113495bSYour Name 
290*5113495bSYour Name 	uint32_t sub_type:4;
291*5113495bSYour Name 	uint32_t type:2;
292*5113495bSYour Name 	uint32_t prot_ver:2;
293*5113495bSYour Name 
294*5113495bSYour Name #else
295*5113495bSYour Name 
296*5113495bSYour Name 	uint32_t prot_ver:2;
297*5113495bSYour Name 	uint32_t type:2;
298*5113495bSYour Name 	uint32_t sub_type:4;
299*5113495bSYour Name 
300*5113495bSYour Name #endif
301*5113495bSYour Name 
302*5113495bSYour Name };
303*5113495bSYour Name 
304*5113495bSYour Name /**
305*5113495bSYour Name  * struct wmi_log_buf_t - WMI log buffer information type
306*5113495bSYour Name  * @buf: Reference to WMI log buffer
307*5113495bSYour Name  * @length: length of buffer
308*5113495bSYour Name  * @buf_tail_idx: Tail index of buffer
309*5113495bSYour Name  * @p_buf_tail_idx: reference to buffer tail index. It is added to accommodate
310*5113495bSYour Name  * unified design since MCL uses global variable for buffer tail index
311*5113495bSYour Name  * @size: the size of the buffer in number of entries
312*5113495bSYour Name  */
313*5113495bSYour Name struct wmi_log_buf_t {
314*5113495bSYour Name 	void *buf;
315*5113495bSYour Name 	uint32_t length;
316*5113495bSYour Name 	uint32_t buf_tail_idx;
317*5113495bSYour Name 	uint32_t *p_buf_tail_idx;
318*5113495bSYour Name 	uint32_t size;
319*5113495bSYour Name };
320*5113495bSYour Name 
321*5113495bSYour Name /**
322*5113495bSYour Name  * struct wmi_debug_log_info - Meta data to hold information of all buffers
323*5113495bSYour Name  * used for WMI logging
324*5113495bSYour Name  * @wmi_command_log_buf_info: Buffer info for WMI Command log
325*5113495bSYour Name  * @wmi_command_tx_cmp_log_buf_info: Buffer info for WMI Command Tx completion
326*5113495bSYour Name  * log
327*5113495bSYour Name  * @wmi_event_log_buf_info: Buffer info for WMI Event log
328*5113495bSYour Name  * @wmi_rx_event_log_buf_info: Buffer info for WMI event received log
329*5113495bSYour Name  * @wmi_mgmt_command_log_buf_info: Buffer info for WMI Management Command log
330*5113495bSYour Name  * @wmi_mgmt_command_tx_cmp_log_buf_info: Buffer info for WMI Management
331*5113495bSYour Name  * Command Tx completion log
332*5113495bSYour Name  * @wmi_mgmt_event_log_buf_info: Buffer info for WMI Management event log
333*5113495bSYour Name  * @wmi_diag_event_log_buf_info: Buffer info for WMI diag event log
334*5113495bSYour Name  * @wmi_record_lock: Lock WMI recording
335*5113495bSYour Name  * @wmi_logging_enable: Enable/Disable state for WMI logging
336*5113495bSYour Name  * @wmi_id_to_name: Function reference to API to convert Command id to
337*5113495bSYour Name  * string name
338*5113495bSYour Name  * @wmi_log_debugfs_dir: reference to debugfs directory
339*5113495bSYour Name  * @filtered_wmi_cmds: Buffer to save inputs from user on
340*5113495bSYour Name  * which WMI commands to record
341*5113495bSYour Name  * @filtered_wmi_cmds_idx: target cmd index
342*5113495bSYour Name  * @filtered_wmi_evts: Buffer to save inputs from user on
343*5113495bSYour Name  * which WMI event to record
344*5113495bSYour Name  * @filtered_wmi_evts_idx: target evt index
345*5113495bSYour Name  * @wmi_filtered_command_log: buffer to record user specified WMI commands
346*5113495bSYour Name  * @wmi_filtered_event_log: buffer to record user specified WMI events
347*5113495bSYour Name  */
348*5113495bSYour Name struct wmi_debug_log_info {
349*5113495bSYour Name 	struct wmi_log_buf_t wmi_command_log_buf_info;
350*5113495bSYour Name 	struct wmi_log_buf_t wmi_command_tx_cmp_log_buf_info;
351*5113495bSYour Name 
352*5113495bSYour Name 	struct wmi_log_buf_t wmi_event_log_buf_info;
353*5113495bSYour Name 	struct wmi_log_buf_t wmi_rx_event_log_buf_info;
354*5113495bSYour Name 
355*5113495bSYour Name 	struct wmi_log_buf_t wmi_mgmt_command_log_buf_info;
356*5113495bSYour Name 	struct wmi_log_buf_t wmi_mgmt_command_tx_cmp_log_buf_info;
357*5113495bSYour Name 	struct wmi_log_buf_t wmi_mgmt_event_log_buf_info;
358*5113495bSYour Name 	struct wmi_log_buf_t wmi_diag_event_log_buf_info;
359*5113495bSYour Name 
360*5113495bSYour Name 	qdf_spinlock_t wmi_record_lock;
361*5113495bSYour Name 	bool wmi_logging_enable;
362*5113495bSYour Name 	struct dentry *wmi_log_debugfs_dir;
363*5113495bSYour Name 
364*5113495bSYour Name #ifdef WMI_INTERFACE_FILTERED_EVENT_LOGGING
365*5113495bSYour Name 	uint32_t *filtered_wmi_cmds;
366*5113495bSYour Name 	uint32_t filtered_wmi_cmds_idx;
367*5113495bSYour Name 	uint32_t *filtered_wmi_evts;
368*5113495bSYour Name 	uint32_t filtered_wmi_evts_idx;
369*5113495bSYour Name 	struct wmi_log_buf_t *wmi_filtered_command_log;
370*5113495bSYour Name 	struct wmi_log_buf_t *wmi_filtered_event_log;
371*5113495bSYour Name #endif
372*5113495bSYour Name };
373*5113495bSYour Name 
374*5113495bSYour Name /**
375*5113495bSYour Name  * enum WMI_RECORD_TYPE - User specified WMI logging types
376*5113495bSYour Name  * @WMI_CMD: wmi command id
377*5113495bSYour Name  * @WMI_EVT: wmi event id
378*5113495bSYour Name  */
379*5113495bSYour Name enum WMI_RECORD_TYPE {
380*5113495bSYour Name 	WMI_CMD = 1,
381*5113495bSYour Name 	WMI_EVT = 2,
382*5113495bSYour Name };
383*5113495bSYour Name 
384*5113495bSYour Name #endif /*WMI_INTERFACE_EVENT_LOGGING */
385*5113495bSYour Name 
386*5113495bSYour Name #ifdef WLAN_DBGLOG_DEBUGFS
387*5113495bSYour Name struct fwdebug {
388*5113495bSYour Name 	struct sk_buff_head fwlog_queue;
389*5113495bSYour Name 	struct completion fwlog_completion;
390*5113495bSYour Name 	A_BOOL fwlog_open;
391*5113495bSYour Name };
392*5113495bSYour Name #endif /* WLAN_DBGLOG_DEBUGFS */
393*5113495bSYour Name 
394*5113495bSYour Name /**
395*5113495bSYour Name  * struct wmi_wq_dbg_info - WMI WQ debug info
396*5113495bSYour Name  * @wd_msg_type_id: wmi event id
397*5113495bSYour Name  * @wmi_wq: WMI workqueue struct
398*5113495bSYour Name  * @task: WMI workqueue task struct
399*5113495bSYour Name  */
400*5113495bSYour Name struct wmi_wq_dbg_info {
401*5113495bSYour Name 	uint32_t wd_msg_type_id;
402*5113495bSYour Name 	qdf_workqueue_t *wmi_wq;
403*5113495bSYour Name 	qdf_thread_t *task;
404*5113495bSYour Name };
405*5113495bSYour Name 
406*5113495bSYour Name struct wmi_ops {
407*5113495bSYour Name #if defined(CONN_MGR_ADV_FEATURE) && \
408*5113495bSYour Name 	    (defined(WLAN_FEATURE_HOST_ROAM) || \
409*5113495bSYour Name 		     defined(WLAN_FEATURE_ROAM_OFFLOAD))
410*5113495bSYour Name QDF_STATUS
411*5113495bSYour Name (*extract_roam_event)(wmi_unified_t wmi_handle, void *evt_buf, uint32_t len,
412*5113495bSYour Name 		      struct roam_offload_roam_event *roam_event);
413*5113495bSYour Name #endif
414*5113495bSYour Name 
415*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
416*5113495bSYour Name QDF_STATUS
417*5113495bSYour Name (*extract_roam_btm_response_stats)(wmi_unified_t wmi_handle, void *evt_buf,
418*5113495bSYour Name 				   struct roam_btm_response_data *dst,
419*5113495bSYour Name 				   uint8_t idx);
420*5113495bSYour Name 
421*5113495bSYour Name QDF_STATUS
422*5113495bSYour Name (*extract_roam_initial_info)(wmi_unified_t wmi_handle, void *evt_buf,
423*5113495bSYour Name 			     struct roam_initial_data *dst, uint8_t idx);
424*5113495bSYour Name 
425*5113495bSYour Name QDF_STATUS
426*5113495bSYour Name (*extract_roam_msg_info)(wmi_unified_t wmi_handle, void *evt_buf,
427*5113495bSYour Name 			 struct roam_msg_info *dst, uint8_t idx);
428*5113495bSYour Name 
429*5113495bSYour Name QDF_STATUS
430*5113495bSYour Name (*extract_roam_frame_info)(wmi_unified_t wmi_handle, void *evt_buf,
431*5113495bSYour Name 			   struct roam_frame_stats *dst, uint8_t idx,
432*5113495bSYour Name 			   uint8_t num_frames);
433*5113495bSYour Name /**
434*5113495bSYour Name  * extract_roam_sync_event  - Extract roam sync event func ptr
435*5113495bSYour Name  * @wmi_handle: WMI handle
436*5113495bSYour Name  * @evt_buf: Event buffer
437*5113495bSYour Name  * @len: evt buffer data len
438*5113495bSYour Name  * @sync_ind: roam sync ptr
439*5113495bSYour Name  *
440*5113495bSYour Name  * This api will allocate memory for roam sync info, extract
441*5113495bSYour Name  * the information sent by FW and pass to CM.The memory will be
442*5113495bSYour Name  * freed by target_if_cm_roam_sync_event.
443*5113495bSYour Name  *
444*5113495bSYour Name  * Return: QDF_STATUS
445*5113495bSYour Name  */
446*5113495bSYour Name QDF_STATUS
447*5113495bSYour Name (*extract_roam_sync_event)(wmi_unified_t wmi_handle, void *evt_buf,
448*5113495bSYour Name 			   uint32_t len,
449*5113495bSYour Name 			   struct roam_offload_synch_ind **sync_ind);
450*5113495bSYour Name 
451*5113495bSYour Name QDF_STATUS
452*5113495bSYour Name (*extract_roam_sync_frame_event)(wmi_unified_t wmi_handle, void *event,
453*5113495bSYour Name 				 uint32_t len,
454*5113495bSYour Name 				 struct roam_synch_frame_ind *frame_ptr);
455*5113495bSYour Name 
456*5113495bSYour Name QDF_STATUS
457*5113495bSYour Name (*extract_btm_dl_event)(wmi_unified_t wmi_handle,
458*5113495bSYour Name 			uint8_t *event, uint32_t data_len,
459*5113495bSYour Name 			struct roam_denylist_event **dst_list);
460*5113495bSYour Name QDF_STATUS
461*5113495bSYour Name (*extract_vdev_disconnect_event)(wmi_unified_t wmi_handle,
462*5113495bSYour Name 				 uint8_t *event, uint32_t data_len,
463*5113495bSYour Name 				 struct vdev_disconnect_event_data *data);
464*5113495bSYour Name QDF_STATUS
465*5113495bSYour Name (*extract_roam_scan_chan_list)(wmi_unified_t wmi_handle,
466*5113495bSYour Name 			       uint8_t *event, uint32_t data_len,
467*5113495bSYour Name 			       struct cm_roam_scan_ch_resp **data);
468*5113495bSYour Name QDF_STATUS
469*5113495bSYour Name (*extract_roam_stats_event)(wmi_unified_t wmi_handle,
470*5113495bSYour Name 			    uint8_t *event, uint32_t data_len,
471*5113495bSYour Name 			    struct roam_stats_event **data);
472*5113495bSYour Name QDF_STATUS
473*5113495bSYour Name (*extract_auth_offload_event)(wmi_unified_t wmi_handle,
474*5113495bSYour Name 			      uint8_t *event, uint32_t data_len,
475*5113495bSYour Name 			      struct auth_offload_event *auth_event);
476*5113495bSYour Name QDF_STATUS
477*5113495bSYour Name (*extract_roam_pmkid_request)(wmi_unified_t wmi_handle,
478*5113495bSYour Name 			      uint8_t *event, uint32_t data_len,
479*5113495bSYour Name 			      struct roam_pmkid_req_event **list);
480*5113495bSYour Name QDF_STATUS
481*5113495bSYour Name (*extract_roam_candidate_frame)(wmi_unified_t wmi_handle,
482*5113495bSYour Name 				uint8_t *event, uint32_t data_len,
483*5113495bSYour Name 				struct roam_scan_candidate_frame *data);
484*5113495bSYour Name #ifdef WLAN_VENDOR_HANDOFF_CONTROL
485*5113495bSYour Name /**
486*5113495bSYour Name  * extract_roam_vendor_control_param_event  - Extract vendor handoff param event
487*5113495bSYour Name  * function pointer
488*5113495bSYour Name  * @wmi_handle: WMI handle
489*5113495bSYour Name  * @event: Event buffer
490*5113495bSYour Name  * @data_len: evt buffer data len
491*5113495bSYour Name  * @vendor_handoff_params: vendor handoff param buffer pointer
492*5113495bSYour Name  *
493*5113495bSYour Name  * Return: QDF_STATUS
494*5113495bSYour Name  */
495*5113495bSYour Name QDF_STATUS
496*5113495bSYour Name (*extract_roam_vendor_control_param_event)(wmi_unified_t wmi_handle,
497*5113495bSYour Name 		uint8_t *event, uint32_t data_len,
498*5113495bSYour Name 		struct roam_vendor_handoff_params **vendor_handoff_params);
499*5113495bSYour Name #endif
500*5113495bSYour Name 
501*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
502*5113495bSYour Name /**
503*5113495bSYour Name  * extract_roam_synch_key_event() - Extract Roam synch key event
504*5113495bSYour Name  * @wmi_handle: WMI Handle
505*5113495bSYour Name  * @event: Event buffer
506*5113495bSYour Name  * @data_len: Event data length
507*5113495bSYour Name  * @keys: Destination buffer to fill the keys
508*5113495bSYour Name  * @num_keys: Number of keys
509*5113495bSYour Name  * @mld_addr: Peer MLD address
510*5113495bSYour Name  *
511*5113495bSYour Name  * Return: QDF_STATUS
512*5113495bSYour Name  */
513*5113495bSYour Name QDF_STATUS
514*5113495bSYour Name (*extract_roam_synch_key_event) (wmi_unified_t wmi_handle, uint8_t *event,
515*5113495bSYour Name 				 uint32_t data_len,
516*5113495bSYour Name 				 struct wlan_crypto_key_entry **keys,
517*5113495bSYour Name 				 uint8_t *num_keys,
518*5113495bSYour Name 				 struct qdf_mac_addr *mld_addr);
519*5113495bSYour Name #endif
520*5113495bSYour Name 
521*5113495bSYour Name QDF_STATUS
522*5113495bSYour Name (*extract_peer_oper_mode_event)(wmi_unified_t wmi_handle,
523*5113495bSYour Name 				uint8_t *event, uint32_t data_len,
524*5113495bSYour Name 				struct peer_oper_mode_event *data);
525*5113495bSYour Name #endif
526*5113495bSYour Name 
527*5113495bSYour Name #ifdef FEATURE_MEC_OFFLOAD
528*5113495bSYour Name QDF_STATUS
529*5113495bSYour Name (*send_pdev_set_mec_timer_cmd)(struct wmi_unified *wmi_handle,
530*5113495bSYour Name 			       struct set_mec_timer_params *param);
531*5113495bSYour Name #endif
532*5113495bSYour Name QDF_STATUS (*send_vdev_create_cmd)(wmi_unified_t wmi_handle,
533*5113495bSYour Name 				 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
534*5113495bSYour Name 				 struct vdev_create_params *param);
535*5113495bSYour Name 
536*5113495bSYour Name QDF_STATUS (*send_vdev_delete_cmd)(wmi_unified_t wmi_handle,
537*5113495bSYour Name 					  uint8_t if_id);
538*5113495bSYour Name 
539*5113495bSYour Name QDF_STATUS (*send_vdev_nss_chain_params_cmd)(wmi_unified_t wmi_handle,
540*5113495bSYour Name 					 uint8_t vdev_id,
541*5113495bSYour Name 					 struct vdev_nss_chains *user_cfg);
542*5113495bSYour Name 
543*5113495bSYour Name QDF_STATUS (*send_vdev_stop_cmd)(wmi_unified_t wmi,
544*5113495bSYour Name 				 struct vdev_stop_params *params);
545*5113495bSYour Name 
546*5113495bSYour Name QDF_STATUS (*send_vdev_down_cmd)(wmi_unified_t wmi,
547*5113495bSYour Name 			uint8_t vdev_id);
548*5113495bSYour Name 
549*5113495bSYour Name QDF_STATUS (*send_vdev_start_cmd)(wmi_unified_t wmi,
550*5113495bSYour Name 		struct vdev_start_params *req);
551*5113495bSYour Name 
552*5113495bSYour Name QDF_STATUS (*send_vdev_set_nac_rssi_cmd)(wmi_unified_t wmi,
553*5113495bSYour Name 		struct vdev_scan_nac_rssi_params *req);
554*5113495bSYour Name 
555*5113495bSYour Name QDF_STATUS (*send_peer_flush_tids_cmd)(wmi_unified_t wmi,
556*5113495bSYour Name 					 uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
557*5113495bSYour Name 					 struct peer_flush_params *param);
558*5113495bSYour Name 
559*5113495bSYour Name QDF_STATUS (*send_peer_delete_cmd)(wmi_unified_t wmi,
560*5113495bSYour Name 				   uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
561*5113495bSYour Name 				   struct peer_delete_cmd_params *param);
562*5113495bSYour Name 
563*5113495bSYour Name QDF_STATUS (*send_peer_delete_all_cmd)(
564*5113495bSYour Name 				wmi_unified_t wmi,
565*5113495bSYour Name 				struct peer_delete_all_params *param);
566*5113495bSYour Name 
567*5113495bSYour Name QDF_STATUS
568*5113495bSYour Name (*send_peer_unmap_conf_cmd)(wmi_unified_t wmi,
569*5113495bSYour Name 			    uint8_t vdev_id,
570*5113495bSYour Name 			    uint32_t peer_id_cnt,
571*5113495bSYour Name 			    uint16_t *peer_id_list);
572*5113495bSYour Name 
573*5113495bSYour Name QDF_STATUS (*send_peer_param_cmd)(wmi_unified_t wmi,
574*5113495bSYour Name 				uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
575*5113495bSYour Name 				struct peer_set_params *param);
576*5113495bSYour Name 
577*5113495bSYour Name QDF_STATUS (*send_vdev_up_cmd)(wmi_unified_t wmi,
578*5113495bSYour Name 			     uint8_t bssid[QDF_MAC_ADDR_SIZE],
579*5113495bSYour Name 				 struct vdev_up_params *params);
580*5113495bSYour Name 
581*5113495bSYour Name QDF_STATUS (*send_peer_create_cmd)(wmi_unified_t wmi,
582*5113495bSYour Name 					struct peer_create_params *param);
583*5113495bSYour Name 
584*5113495bSYour Name #ifdef WLAN_SUPPORT_GREEN_AP
585*5113495bSYour Name QDF_STATUS (*send_green_ap_ps_cmd)(wmi_unified_t wmi_handle,
586*5113495bSYour Name 				   uint32_t value, uint8_t pdev_id);
587*5113495bSYour Name 
588*5113495bSYour Name QDF_STATUS (*extract_green_ap_egap_status_info)(
589*5113495bSYour Name 		uint8_t *evt_buf,
590*5113495bSYour Name 		struct wlan_green_ap_egap_status_info *egap_status_info_params);
591*5113495bSYour Name #if defined(WLAN_SUPPORT_GAP_LL_PS_MODE)
592*5113495bSYour Name QDF_STATUS (*send_green_ap_ll_ps_cmd)(wmi_unified_t wmi_handle,
593*5113495bSYour Name 				      struct green_ap_ll_ps_cmd_param *ll_ps_params);
594*5113495bSYour Name #endif
595*5113495bSYour Name #endif
596*5113495bSYour Name 
597*5113495bSYour Name #ifdef WLAN_SUPPORT_GAP_LL_PS_MODE
598*5113495bSYour Name QDF_STATUS (*extract_green_ap_ll_ps_param)(
599*5113495bSYour Name 		uint8_t *evt_buf,
600*5113495bSYour Name 		struct wlan_green_ap_ll_ps_event_param *ll_ps_params);
601*5113495bSYour Name #endif
602*5113495bSYour Name 
603*5113495bSYour Name QDF_STATUS
604*5113495bSYour Name (*send_pdev_utf_cmd)(wmi_unified_t wmi_handle,
605*5113495bSYour Name 				struct pdev_utf_params *param,
606*5113495bSYour Name 				uint8_t mac_id);
607*5113495bSYour Name 
608*5113495bSYour Name QDF_STATUS
609*5113495bSYour Name (*send_pdev_param_cmd)(wmi_unified_t wmi_handle,
610*5113495bSYour Name 			   struct pdev_params *param,
611*5113495bSYour Name 				uint8_t mac_id);
612*5113495bSYour Name QDF_STATUS
613*5113495bSYour Name (*send_multiple_pdev_param_cmd)(wmi_unified_t wmi_handle,
614*5113495bSYour Name 				struct set_multiple_pdev_vdev_param *params);
615*5113495bSYour Name 
616*5113495bSYour Name QDF_STATUS
617*5113495bSYour Name (*send_pdev_set_hw_mode_cmd)(wmi_unified_t wmi_handle,
618*5113495bSYour Name 			     uint32_t hw_mode_index);
619*5113495bSYour Name 
620*5113495bSYour Name QDF_STATUS
621*5113495bSYour Name (*send_pdev_set_rf_path_cmd)(wmi_unified_t wmi_handle,
622*5113495bSYour Name 			     uint32_t hw_mode_index, uint8_t pdev_id);
623*5113495bSYour Name 
624*5113495bSYour Name QDF_STATUS (*send_suspend_cmd)(wmi_unified_t wmi_handle,
625*5113495bSYour Name 				struct suspend_params *param,
626*5113495bSYour Name 				uint8_t mac_id);
627*5113495bSYour Name 
628*5113495bSYour Name QDF_STATUS (*send_resume_cmd)(wmi_unified_t wmi_handle,
629*5113495bSYour Name 				uint8_t mac_id);
630*5113495bSYour Name 
631*5113495bSYour Name #ifdef FEATURE_WLAN_D0WOW
632*5113495bSYour Name QDF_STATUS (*send_d0wow_enable_cmd)(wmi_unified_t wmi_handle,
633*5113495bSYour Name 				uint8_t mac_id);
634*5113495bSYour Name QDF_STATUS (*send_d0wow_disable_cmd)(wmi_unified_t wmi_handle,
635*5113495bSYour Name 				uint8_t mac_id);
636*5113495bSYour Name #endif
637*5113495bSYour Name 
638*5113495bSYour Name #if defined(WLAN_FEATURE_ROAM_OFFLOAD) && defined(FEATURE_DENYLIST_MGR)
639*5113495bSYour Name QDF_STATUS
640*5113495bSYour Name (*send_reject_ap_list_cmd)(struct wmi_unified *wmi_handle,
641*5113495bSYour Name 			   struct reject_ap_params *reject_params);
642*5113495bSYour Name #endif
643*5113495bSYour Name 
644*5113495bSYour Name QDF_STATUS (*send_wow_enable_cmd)(wmi_unified_t wmi_handle,
645*5113495bSYour Name 				struct wow_cmd_params *param,
646*5113495bSYour Name 				uint8_t mac_id);
647*5113495bSYour Name 
648*5113495bSYour Name QDF_STATUS (*send_set_ap_ps_param_cmd)(wmi_unified_t wmi_handle,
649*5113495bSYour Name 					   uint8_t *peer_addr,
650*5113495bSYour Name 					   struct ap_ps_params *param);
651*5113495bSYour Name 
652*5113495bSYour Name QDF_STATUS (*send_set_sta_ps_param_cmd)(wmi_unified_t wmi_handle,
653*5113495bSYour Name 					   struct sta_ps_params *param);
654*5113495bSYour Name 
655*5113495bSYour Name QDF_STATUS (*send_crash_inject_cmd)(wmi_unified_t wmi_handle,
656*5113495bSYour Name 			 struct crash_inject *param);
657*5113495bSYour Name 
658*5113495bSYour Name QDF_STATUS
659*5113495bSYour Name (*send_dbglog_cmd)(wmi_unified_t wmi_handle,
660*5113495bSYour Name 				struct dbglog_params *dbglog_param);
661*5113495bSYour Name 
662*5113495bSYour Name QDF_STATUS (*send_vdev_set_param_cmd)(wmi_unified_t wmi_handle,
663*5113495bSYour Name 				struct vdev_set_params *param);
664*5113495bSYour Name 
665*5113495bSYour Name QDF_STATUS
666*5113495bSYour Name (*send_multiple_vdev_param_cmd)(wmi_unified_t wmi_handle,
667*5113495bSYour Name 				struct set_multiple_pdev_vdev_param *params);
668*5113495bSYour Name 
669*5113495bSYour Name QDF_STATUS (*send_vdev_set_mu_snif_cmd)(wmi_unified_t wmi_handle,
670*5113495bSYour Name 					struct vdev_set_mu_snif_param *param);
671*5113495bSYour Name 
672*5113495bSYour Name QDF_STATUS (*send_vdev_sifs_trigger_cmd)(wmi_unified_t wmi_handle,
673*5113495bSYour Name 					 struct sifs_trigger_param *param);
674*5113495bSYour Name 
675*5113495bSYour Name QDF_STATUS (*send_stats_request_cmd)(wmi_unified_t wmi_handle,
676*5113495bSYour Name 				uint8_t macaddr[QDF_MAC_ADDR_SIZE],
677*5113495bSYour Name 				struct stats_request_params *param);
678*5113495bSYour Name 
679*5113495bSYour Name #ifdef QCA_SUPPORT_MC_CP_STATS
680*5113495bSYour Name QDF_STATUS (*send_request_peer_stats_info_cmd)(wmi_unified_t wmi_handle,
681*5113495bSYour Name 				struct peer_stats_request_params *param);
682*5113495bSYour Name #endif /* QCA_SUPPORT_MC_CP_STATS */
683*5113495bSYour Name 
684*5113495bSYour Name QDF_STATUS (*send_packet_log_enable_cmd)(wmi_unified_t wmi_handle,
685*5113495bSYour Name 			WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id);
686*5113495bSYour Name 
687*5113495bSYour Name QDF_STATUS (*send_packet_log_disable_cmd)(wmi_unified_t wmi_handle,
688*5113495bSYour Name 	uint8_t mac_id);
689*5113495bSYour Name 
690*5113495bSYour Name QDF_STATUS (*send_fd_tmpl_cmd)(wmi_unified_t wmi_handle,
691*5113495bSYour Name 				struct fils_discovery_tmpl_params *param);
692*5113495bSYour Name 
693*5113495bSYour Name QDF_STATUS (*send_beacon_send_cmd)(wmi_unified_t wmi_handle,
694*5113495bSYour Name 				struct beacon_params *param);
695*5113495bSYour Name 
696*5113495bSYour Name QDF_STATUS (*send_beacon_tmpl_send_cmd)(wmi_unified_t wmi_handle,
697*5113495bSYour Name 				struct beacon_tmpl_params *param);
698*5113495bSYour Name 
699*5113495bSYour Name QDF_STATUS (*send_peer_assoc_cmd)(wmi_unified_t wmi_handle,
700*5113495bSYour Name 				struct peer_assoc_params *param);
701*5113495bSYour Name 
702*5113495bSYour Name QDF_STATUS (*send_scan_start_cmd)(wmi_unified_t wmi_handle,
703*5113495bSYour Name 				struct scan_req_params *param);
704*5113495bSYour Name 
705*5113495bSYour Name QDF_STATUS (*send_scan_stop_cmd)(wmi_unified_t wmi_handle,
706*5113495bSYour Name 				struct scan_cancel_param *param);
707*5113495bSYour Name 
708*5113495bSYour Name QDF_STATUS (*send_scan_chan_list_cmd)(wmi_unified_t wmi_handle,
709*5113495bSYour Name 				struct scan_chan_list_params *param);
710*5113495bSYour Name 
711*5113495bSYour Name QDF_STATUS (*send_mgmt_cmd)(wmi_unified_t wmi_handle,
712*5113495bSYour Name 				struct wmi_mgmt_params *param);
713*5113495bSYour Name 
714*5113495bSYour Name QDF_STATUS (*send_offchan_data_tx_cmd)(wmi_unified_t wmi_handle,
715*5113495bSYour Name 				struct wmi_offchan_data_tx_params *param);
716*5113495bSYour Name 
717*5113495bSYour Name QDF_STATUS (*send_modem_power_state_cmd)(wmi_unified_t wmi_handle,
718*5113495bSYour Name 		uint32_t param_value);
719*5113495bSYour Name 
720*5113495bSYour Name QDF_STATUS (*send_set_sta_ps_mode_cmd)(wmi_unified_t wmi_handle,
721*5113495bSYour Name 			       uint32_t vdev_id, uint8_t val);
722*5113495bSYour Name 
723*5113495bSYour Name QDF_STATUS (*send_idle_roam_monitor_cmd)(wmi_unified_t wmi_handle,
724*5113495bSYour Name 					 uint8_t val);
725*5113495bSYour Name 
726*5113495bSYour Name QDF_STATUS (*send_get_temperature_cmd)(wmi_unified_t wmi_handle);
727*5113495bSYour Name 
728*5113495bSYour Name #ifdef CONVERGED_P2P_ENABLE
729*5113495bSYour Name QDF_STATUS (*send_set_p2pgo_oppps_req_cmd)(wmi_unified_t wmi_handle,
730*5113495bSYour Name 		struct p2p_ps_params *oppps);
731*5113495bSYour Name 
732*5113495bSYour Name QDF_STATUS (*send_set_p2pgo_noa_req_cmd)(wmi_unified_t wmi_handle,
733*5113495bSYour Name 			struct p2p_ps_params *noa);
734*5113495bSYour Name 
735*5113495bSYour Name #ifdef FEATURE_P2P_LISTEN_OFFLOAD
736*5113495bSYour Name QDF_STATUS (*send_p2p_lo_start_cmd)(wmi_unified_t wmi_handle,
737*5113495bSYour Name 			struct p2p_lo_start *param);
738*5113495bSYour Name 
739*5113495bSYour Name QDF_STATUS (*send_p2p_lo_stop_cmd)(wmi_unified_t wmi_handle,
740*5113495bSYour Name 			uint8_t vdev_id);
741*5113495bSYour Name #endif /* FEATURE_P2P_LISTEN_OFFLOAD */
742*5113495bSYour Name #endif /* CONVERGED_P2P_ENABLE */
743*5113495bSYour Name 
744*5113495bSYour Name QDF_STATUS (*send_set_smps_params_cmd)(wmi_unified_t wmi_handle,
745*5113495bSYour Name 			  uint8_t vdev_id,
746*5113495bSYour Name 			  int value);
747*5113495bSYour Name 
748*5113495bSYour Name QDF_STATUS (*send_set_mimops_cmd)(wmi_unified_t wmi_handle,
749*5113495bSYour Name 			uint8_t vdev_id, int value);
750*5113495bSYour Name 
751*5113495bSYour Name QDF_STATUS (*send_set_sta_uapsd_auto_trig_cmd)(wmi_unified_t wmi_handle,
752*5113495bSYour Name 				struct sta_uapsd_trig_params *param);
753*5113495bSYour Name 
754*5113495bSYour Name #ifdef WLAN_FEATURE_DSRC
755*5113495bSYour Name QDF_STATUS (*send_ocb_set_utc_time_cmd)(wmi_unified_t wmi_handle,
756*5113495bSYour Name 				struct ocb_utc_param *utc);
757*5113495bSYour Name 
758*5113495bSYour Name QDF_STATUS (*send_ocb_get_tsf_timer_cmd)(wmi_unified_t wmi_handle,
759*5113495bSYour Name 			  uint8_t vdev_id);
760*5113495bSYour Name 
761*5113495bSYour Name QDF_STATUS (*send_ocb_start_timing_advert_cmd)(wmi_unified_t wmi_handle,
762*5113495bSYour Name 	struct ocb_timing_advert_param *timing_advert);
763*5113495bSYour Name 
764*5113495bSYour Name QDF_STATUS (*send_ocb_stop_timing_advert_cmd)(wmi_unified_t wmi_handle,
765*5113495bSYour Name 	struct ocb_timing_advert_param *timing_advert);
766*5113495bSYour Name 
767*5113495bSYour Name QDF_STATUS (*send_dcc_get_stats_cmd)(wmi_unified_t wmi_handle,
768*5113495bSYour Name 		     struct ocb_dcc_get_stats_param *get_stats_param);
769*5113495bSYour Name 
770*5113495bSYour Name QDF_STATUS (*send_dcc_clear_stats_cmd)(wmi_unified_t wmi_handle,
771*5113495bSYour Name 				uint32_t vdev_id, uint32_t dcc_stats_bitmap);
772*5113495bSYour Name 
773*5113495bSYour Name QDF_STATUS (*send_dcc_update_ndl_cmd)(wmi_unified_t wmi_handle,
774*5113495bSYour Name 		       struct ocb_dcc_update_ndl_param *update_ndl_param);
775*5113495bSYour Name 
776*5113495bSYour Name QDF_STATUS (*send_ocb_set_config_cmd)(wmi_unified_t wmi_handle,
777*5113495bSYour Name 		  struct ocb_config *config);
778*5113495bSYour Name QDF_STATUS (*extract_ocb_chan_config_resp)(wmi_unified_t wmi_hdl,
779*5113495bSYour Name 					   void *evt_buf,
780*5113495bSYour Name 					   uint32_t *status);
781*5113495bSYour Name QDF_STATUS (*extract_ocb_tsf_timer)(wmi_unified_t wmi_hdl,
782*5113495bSYour Name 				    void *evt_buf,
783*5113495bSYour Name 				    struct ocb_get_tsf_timer_response *resp);
784*5113495bSYour Name QDF_STATUS (*extract_dcc_update_ndl_resp)(wmi_unified_t wmi_hdl,
785*5113495bSYour Name 		void *evt_buf, struct ocb_dcc_update_ndl_response *resp);
786*5113495bSYour Name QDF_STATUS (*extract_dcc_stats)(wmi_unified_t wmi_hdl,
787*5113495bSYour Name 				void *evt_buf,
788*5113495bSYour Name 				struct ocb_dcc_get_stats_response **response);
789*5113495bSYour Name #endif /* WLAN_FEATURE_DSRC */
790*5113495bSYour Name QDF_STATUS (*send_lro_config_cmd)(wmi_unified_t wmi_handle,
791*5113495bSYour Name 	 struct wmi_lro_config_cmd_t *wmi_lro_cmd);
792*5113495bSYour Name 
793*5113495bSYour Name QDF_STATUS (*send_set_thermal_mgmt_cmd)(wmi_unified_t wmi_handle,
794*5113495bSYour Name 				struct thermal_cmd_params *thermal_info);
795*5113495bSYour Name 
796*5113495bSYour Name QDF_STATUS (*send_peer_rate_report_cmd)(wmi_unified_t wmi_handle,
797*5113495bSYour Name 	 struct wmi_peer_rate_report_params *rate_report_params);
798*5113495bSYour Name 
799*5113495bSYour Name #ifdef WMI_CONCURRENCY_SUPPORT
800*5113495bSYour Name QDF_STATUS (*send_set_mcc_channel_time_quota_cmd)
801*5113495bSYour Name 	(wmi_unified_t wmi_handle,
802*5113495bSYour Name 	uint32_t adapter_1_chan_freq,
803*5113495bSYour Name 	uint32_t adapter_1_quota, uint32_t adapter_2_chan_freq);
804*5113495bSYour Name 
805*5113495bSYour Name QDF_STATUS (*send_set_mcc_channel_time_latency_cmd)
806*5113495bSYour Name 	(wmi_unified_t wmi_handle,
807*5113495bSYour Name 	uint32_t mcc_channel_freq, uint32_t mcc_channel_time_latency);
808*5113495bSYour Name 
809*5113495bSYour Name QDF_STATUS (*send_set_enable_disable_mcc_adaptive_scheduler_cmd)(
810*5113495bSYour Name 		  wmi_unified_t wmi_handle, uint32_t mcc_adaptive_scheduler,
811*5113495bSYour Name 		  uint32_t pdev_id);
812*5113495bSYour Name 
813*5113495bSYour Name #ifdef WLAN_FEATURE_MCC_QUOTA
814*5113495bSYour Name QDF_STATUS (*extract_mcc_quota_ev_param)(wmi_unified_t wmi_handle,
815*5113495bSYour Name 					 void *evt_buf,
816*5113495bSYour Name 					 struct mcc_quota_info *param);
817*5113495bSYour Name #endif
818*5113495bSYour Name #endif /* WMI_CONCURRENCY_SUPPORT */
819*5113495bSYour Name 
820*5113495bSYour Name QDF_STATUS (*send_p2p_go_set_beacon_ie_cmd)(wmi_unified_t wmi_handle,
821*5113495bSYour Name 				    uint32_t vdev_id, uint8_t *p2p_ie);
822*5113495bSYour Name 
823*5113495bSYour Name QDF_STATUS (*send_probe_rsp_tmpl_send_cmd)(wmi_unified_t wmi_handle,
824*5113495bSYour Name 			     uint8_t vdev_id,
825*5113495bSYour Name 			     struct wmi_probe_resp_params *probe_rsp_info);
826*5113495bSYour Name 
827*5113495bSYour Name QDF_STATUS (*send_setup_install_key_cmd)(wmi_unified_t wmi_handle,
828*5113495bSYour Name 				struct set_key_params *key_params);
829*5113495bSYour Name 
830*5113495bSYour Name QDF_STATUS (*send_reset_passpoint_network_list_cmd)(wmi_unified_t wmi_handle,
831*5113495bSYour Name 					struct wifi_passpoint_req_param *req);
832*5113495bSYour Name 
833*5113495bSYour Name #ifdef WMI_ROAM_SUPPORT
834*5113495bSYour Name #ifdef FEATURE_LFR_SUBNET_DETECTION
835*5113495bSYour Name QDF_STATUS (*send_set_gateway_params_cmd)(wmi_unified_t wmi_handle,
836*5113495bSYour Name 					struct gateway_update_req_param *req);
837*5113495bSYour Name #endif /* FEATURE_LFR_SUBNET_DETECTION */
838*5113495bSYour Name 
839*5113495bSYour Name #ifdef FEATURE_RSSI_MONITOR
840*5113495bSYour Name QDF_STATUS (*send_set_rssi_monitoring_cmd)(wmi_unified_t wmi_handle,
841*5113495bSYour Name 					struct rssi_monitor_param *req);
842*5113495bSYour Name #endif /* FEATURE_RSSI_MONITOR */
843*5113495bSYour Name 
844*5113495bSYour Name QDF_STATUS (*send_roam_scan_offload_rssi_thresh_cmd)(
845*5113495bSYour Name 			wmi_unified_t wmi_handle,
846*5113495bSYour Name 			struct wlan_roam_offload_scan_rssi_params *roam_req);
847*5113495bSYour Name 
848*5113495bSYour Name QDF_STATUS (*send_roam_scan_offload_scan_period_cmd)(
849*5113495bSYour Name 				wmi_unified_t wmi_handle,
850*5113495bSYour Name 				struct wlan_roam_scan_period_params *params);
851*5113495bSYour Name 
852*5113495bSYour Name QDF_STATUS (*send_roam_mawc_params_cmd)(
853*5113495bSYour Name 				wmi_unified_t wmi_handle,
854*5113495bSYour Name 				struct wlan_roam_mawc_params *params);
855*5113495bSYour Name 
856*5113495bSYour Name QDF_STATUS (*send_roam_scan_filter_cmd)(wmi_unified_t wmi_handle,
857*5113495bSYour Name 				struct roam_scan_filter_params *roam_req);
858*5113495bSYour Name 
859*5113495bSYour Name QDF_STATUS (*send_roam_scan_offload_mode_cmd)(
860*5113495bSYour Name 		wmi_unified_t wmi_handle,
861*5113495bSYour Name 		struct wlan_roam_scan_offload_params *rso_cfg);
862*5113495bSYour Name 
863*5113495bSYour Name QDF_STATUS (*send_roam_scan_offload_ap_profile_cmd)(wmi_unified_t wmi_handle,
864*5113495bSYour Name 				    struct ap_profile_params *ap_profile);
865*5113495bSYour Name 
866*5113495bSYour Name QDF_STATUS (*send_roam_scan_offload_cmd)(wmi_unified_t wmi_handle,
867*5113495bSYour Name 				 uint32_t command, uint32_t vdev_id);
868*5113495bSYour Name 
869*5113495bSYour Name QDF_STATUS (*send_roam_scan_offload_chan_list_cmd)(
870*5113495bSYour Name 			wmi_unified_t wmi_handle,
871*5113495bSYour Name 			struct wlan_roam_scan_channel_list *rso_ch_info);
872*5113495bSYour Name 
873*5113495bSYour Name QDF_STATUS (*send_roam_scan_offload_rssi_change_cmd)(
874*5113495bSYour Name 				wmi_unified_t wmi_handle,
875*5113495bSYour Name 				struct wlan_roam_rssi_change_params *params);
876*5113495bSYour Name 
877*5113495bSYour Name QDF_STATUS (*send_per_roam_config_cmd)(wmi_unified_t wmi_handle,
878*5113495bSYour Name 		struct wlan_per_roam_config_req *req_buf);
879*5113495bSYour Name 
880*5113495bSYour Name QDF_STATUS (*send_offload_11k_cmd)(wmi_unified_t wmi_handle,
881*5113495bSYour Name 		struct wlan_roam_11k_offload_params *params);
882*5113495bSYour Name 
883*5113495bSYour Name QDF_STATUS (*send_invoke_neighbor_report_cmd)(wmi_unified_t wmi_handle,
884*5113495bSYour Name 		struct wmi_invoke_neighbor_report_params *params);
885*5113495bSYour Name 
886*5113495bSYour Name QDF_STATUS (*send_roam_bss_load_config)(
887*5113495bSYour Name 				wmi_unified_t wmi_handle,
888*5113495bSYour Name 				struct wlan_roam_bss_load_config *params);
889*5113495bSYour Name 
890*5113495bSYour Name QDF_STATUS (*send_disconnect_roam_params)(wmi_unified_t wmi_handle,
891*5113495bSYour Name 			struct wlan_roam_disconnect_params *req);
892*5113495bSYour Name 
893*5113495bSYour Name QDF_STATUS (*send_idle_roam_params)(wmi_unified_t wmi_handle,
894*5113495bSYour Name 				    struct wlan_roam_idle_params *req);
895*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
896*5113495bSYour Name QDF_STATUS (*send_roam_mlo_config)(wmi_unified_t wmi_handle,
897*5113495bSYour Name 				   struct wlan_roam_mlo_config *req);
898*5113495bSYour Name #endif
899*5113495bSYour Name 
900*5113495bSYour Name QDF_STATUS (*send_roam_preauth_status)(wmi_unified_t wmi_handle,
901*5113495bSYour Name 				struct wmi_roam_auth_status_params *params);
902*5113495bSYour Name 
903*5113495bSYour Name QDF_STATUS (*send_btm_config)(wmi_unified_t wmi_handle,
904*5113495bSYour Name 			      struct wlan_roam_btm_config *params);
905*5113495bSYour Name 
906*5113495bSYour Name QDF_STATUS (*send_limit_off_chan_cmd)(wmi_unified_t wmi_handle,
907*5113495bSYour Name 		struct wmi_limit_off_chan_param *limit_off_chan_param);
908*5113495bSYour Name 
909*5113495bSYour Name #ifdef WLAN_FEATURE_FILS_SK
910*5113495bSYour Name QDF_STATUS (*send_roam_scan_hlp_cmd) (wmi_unified_t wmi_handle,
911*5113495bSYour Name 				struct hlp_params *params);
912*5113495bSYour Name #endif /* WLAN_FEATURE_FILS_SK */
913*5113495bSYour Name 
914*5113495bSYour Name #ifdef FEATURE_WLAN_ESE
915*5113495bSYour Name QDF_STATUS (*send_plm_stop_cmd)(wmi_unified_t wmi_handle,
916*5113495bSYour Name 		 const struct plm_req_params *plm);
917*5113495bSYour Name 
918*5113495bSYour Name QDF_STATUS (*send_plm_start_cmd)(wmi_unified_t wmi_handle,
919*5113495bSYour Name 				 const struct plm_req_params *plm);
920*5113495bSYour Name #endif /* FEATURE_WLAN_ESE */
921*5113495bSYour Name 
922*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
923*5113495bSYour Name QDF_STATUS (*send_set_ric_req_cmd)(wmi_unified_t wmi_handle, void *msg,
924*5113495bSYour Name 			uint8_t is_add_ts);
925*5113495bSYour Name 
926*5113495bSYour Name QDF_STATUS (*send_process_roam_synch_complete_cmd)(wmi_unified_t wmi_handle,
927*5113495bSYour Name 		 uint8_t vdev_id);
928*5113495bSYour Name 
929*5113495bSYour Name #ifdef WLAN_VENDOR_HANDOFF_CONTROL
930*5113495bSYour Name QDF_STATUS (*send_process_roam_vendor_handoff_req_cmd)(wmi_unified_t wmi_handle,
931*5113495bSYour Name 					uint8_t vdev_id, uint32_t param_id);
932*5113495bSYour Name #endif
933*5113495bSYour Name 
934*5113495bSYour Name QDF_STATUS (*send_roam_invoke_cmd)(wmi_unified_t wmi_handle,
935*5113495bSYour Name 		struct roam_invoke_req *roaminvoke);
936*5113495bSYour Name 
937*5113495bSYour Name QDF_STATUS (*send_set_roam_trigger_cmd)(wmi_unified_t wmi_handle,
938*5113495bSYour Name 					struct wlan_roam_triggers *triggers);
939*5113495bSYour Name #endif /* WLAN_FEATURE_ROAM_OFFLOAD */
940*5113495bSYour Name #endif /* WMI_ROAM_SUPPORT */
941*5113495bSYour Name 
942*5113495bSYour Name QDF_STATUS (*send_scan_probe_setoui_cmd)(wmi_unified_t wmi_handle,
943*5113495bSYour Name 			  struct scan_mac_oui *psetoui);
944*5113495bSYour Name 
945*5113495bSYour Name QDF_STATUS (*send_set_passpoint_network_list_cmd)(wmi_unified_t wmi_handle,
946*5113495bSYour Name 					struct wifi_passpoint_req_param *req);
947*5113495bSYour Name 
948*5113495bSYour Name QDF_STATUS (*send_set_epno_network_list_cmd)(wmi_unified_t wmi_handle,
949*5113495bSYour Name 		struct wifi_enhanced_pno_params *req);
950*5113495bSYour Name 
951*5113495bSYour Name QDF_STATUS (*send_extscan_get_capabilities_cmd)(wmi_unified_t wmi_handle,
952*5113495bSYour Name 			  struct extscan_capabilities_params *pgetcapab);
953*5113495bSYour Name 
954*5113495bSYour Name QDF_STATUS (*send_extscan_get_cached_results_cmd)(wmi_unified_t wmi_handle,
955*5113495bSYour Name 			  struct extscan_cached_result_params *pcached_results);
956*5113495bSYour Name 
957*5113495bSYour Name QDF_STATUS (*send_extscan_stop_change_monitor_cmd)(wmi_unified_t wmi_handle,
958*5113495bSYour Name 			  struct extscan_capabilities_reset_params *reset_req);
959*5113495bSYour Name 
960*5113495bSYour Name QDF_STATUS (*send_extscan_start_change_monitor_cmd)(wmi_unified_t wmi_handle,
961*5113495bSYour Name 		struct extscan_set_sig_changereq_params *
962*5113495bSYour Name 		psigchange);
963*5113495bSYour Name 
964*5113495bSYour Name QDF_STATUS (*send_extscan_stop_hotlist_monitor_cmd)(wmi_unified_t wmi_handle,
965*5113495bSYour Name 		struct extscan_bssid_hotlist_reset_params *photlist_reset);
966*5113495bSYour Name 
967*5113495bSYour Name QDF_STATUS (*send_extscan_start_hotlist_monitor_cmd)(wmi_unified_t wmi_handle,
968*5113495bSYour Name 		struct extscan_bssid_hotlist_set_params *params);
969*5113495bSYour Name 
970*5113495bSYour Name QDF_STATUS (*send_stop_extscan_cmd)(wmi_unified_t wmi_handle,
971*5113495bSYour Name 		  struct extscan_stop_req_params *pstopcmd);
972*5113495bSYour Name 
973*5113495bSYour Name QDF_STATUS (*send_start_extscan_cmd)(wmi_unified_t wmi_handle,
974*5113495bSYour Name 		    struct wifi_scan_cmd_req_params *pstart);
975*5113495bSYour Name 
976*5113495bSYour Name QDF_STATUS (*send_csa_offload_enable_cmd)(wmi_unified_t wmi_handle,
977*5113495bSYour Name 			uint8_t vdev_id);
978*5113495bSYour Name 
979*5113495bSYour Name QDF_STATUS (*send_pno_stop_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id);
980*5113495bSYour Name 
981*5113495bSYour Name QDF_STATUS (*send_pno_start_cmd)(wmi_unified_t wmi_handle,
982*5113495bSYour Name 		   struct pno_scan_req_params *pno);
983*5113495bSYour Name 
984*5113495bSYour Name QDF_STATUS (*send_obss_disable_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id);
985*5113495bSYour Name 
986*5113495bSYour Name QDF_STATUS (*send_nlo_mawc_cmd)(wmi_unified_t wmi_handle,
987*5113495bSYour Name 		struct nlo_mawc_params *params);
988*5113495bSYour Name 
989*5113495bSYour Name #ifdef IPA_OFFLOAD
990*5113495bSYour Name QDF_STATUS (*send_ipa_offload_control_cmd)(wmi_unified_t wmi_handle,
991*5113495bSYour Name 		struct ipa_uc_offload_control_params *ipa_offload);
992*5113495bSYour Name #endif
993*5113495bSYour Name 
994*5113495bSYour Name #ifdef WLAN_FEATURE_LINK_LAYER_STATS
995*5113495bSYour Name QDF_STATUS (*send_process_ll_stats_clear_cmd)(wmi_unified_t wmi_handle,
996*5113495bSYour Name 				const struct ll_stats_clear_params *clear_req);
997*5113495bSYour Name 
998*5113495bSYour Name QDF_STATUS (*send_process_ll_stats_set_cmd)(wmi_unified_t wmi_handle,
999*5113495bSYour Name 				const struct ll_stats_set_params *set_req);
1000*5113495bSYour Name 
1001*5113495bSYour Name QDF_STATUS (*send_process_ll_stats_get_cmd)(wmi_unified_t wmi_handle,
1002*5113495bSYour Name 				const struct ll_stats_get_params *get_req);
1003*5113495bSYour Name #ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION
1004*5113495bSYour Name QDF_STATUS (*send_unified_ll_stats_get_sta_cmd)(wmi_unified_t wmi_handle,
1005*5113495bSYour Name 				const struct ll_stats_get_params *get_req);
1006*5113495bSYour Name #endif
1007*5113495bSYour Name #endif
1008*5113495bSYour Name 
1009*5113495bSYour Name QDF_STATUS (*send_congestion_cmd)(wmi_unified_t wmi_handle,
1010*5113495bSYour Name 				  uint8_t vdev_id);
1011*5113495bSYour Name 
1012*5113495bSYour Name QDF_STATUS (*send_snr_request_cmd)(wmi_unified_t wmi_handle);
1013*5113495bSYour Name 
1014*5113495bSYour Name QDF_STATUS (*send_snr_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id);
1015*5113495bSYour Name 
1016*5113495bSYour Name QDF_STATUS (*send_link_status_req_cmd)(wmi_unified_t wmi_handle,
1017*5113495bSYour Name 				 struct link_status_params *link_status);
1018*5113495bSYour Name #ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
1019*5113495bSYour Name QDF_STATUS (*send_add_wow_wakeup_event_cmd)(wmi_unified_t wmi_handle,
1020*5113495bSYour Name 					uint32_t vdev_id,
1021*5113495bSYour Name 					uint32_t *bitmap,
1022*5113495bSYour Name 					bool enable);
1023*5113495bSYour Name 
1024*5113495bSYour Name QDF_STATUS (*send_wow_patterns_to_fw_cmd)(wmi_unified_t wmi_handle,
1025*5113495bSYour Name 				uint8_t vdev_id, uint8_t ptrn_id,
1026*5113495bSYour Name 				const uint8_t *ptrn, uint8_t ptrn_len,
1027*5113495bSYour Name 				uint8_t ptrn_offset, const uint8_t *mask,
1028*5113495bSYour Name 				uint8_t mask_len, bool user,
1029*5113495bSYour Name 				uint8_t default_patterns);
1030*5113495bSYour Name 
1031*5113495bSYour Name QDF_STATUS (*send_enable_arp_ns_offload_cmd)(wmi_unified_t wmi_handle,
1032*5113495bSYour Name 			   struct pmo_arp_offload_params *arp_offload_req,
1033*5113495bSYour Name 			   struct pmo_ns_offload_params *ns_offload_req,
1034*5113495bSYour Name 			   uint8_t vdev_id);
1035*5113495bSYour Name 
1036*5113495bSYour Name QDF_STATUS (*send_conf_hw_filter_cmd)(wmi_unified_t wmi,
1037*5113495bSYour Name 				      struct pmo_hw_filter_params *req);
1038*5113495bSYour Name 
1039*5113495bSYour Name QDF_STATUS (*send_enable_enhance_multicast_offload_cmd)(
1040*5113495bSYour Name 		wmi_unified_t wmi_handle,
1041*5113495bSYour Name 		uint8_t vdev_id, bool action);
1042*5113495bSYour Name 
1043*5113495bSYour Name QDF_STATUS (*send_add_clear_mcbc_filter_cmd)(wmi_unified_t wmi_handle,
1044*5113495bSYour Name 				     uint8_t vdev_id,
1045*5113495bSYour Name 				     struct qdf_mac_addr multicast_addr,
1046*5113495bSYour Name 				     bool clearList);
1047*5113495bSYour Name 
1048*5113495bSYour Name QDF_STATUS (*send_multiple_add_clear_mcbc_filter_cmd)(wmi_unified_t wmi_handle,
1049*5113495bSYour Name 				uint8_t vdev_id,
1050*5113495bSYour Name 				struct pmo_mcast_filter_params *filter_param);
1051*5113495bSYour Name 
1052*5113495bSYour Name QDF_STATUS (*send_gtk_offload_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id,
1053*5113495bSYour Name 					   struct pmo_gtk_req *params,
1054*5113495bSYour Name 					   bool enable_offload,
1055*5113495bSYour Name 					   uint32_t gtk_offload_opcode);
1056*5113495bSYour Name #ifdef WLAN_FEATURE_IGMP_OFFLOAD
1057*5113495bSYour Name QDF_STATUS (*send_igmp_offload_cmd)(wmi_unified_t wmi_handle,
1058*5113495bSYour Name 				    struct pmo_igmp_offload_req *pmo_igmp_req);
1059*5113495bSYour Name #endif
1060*5113495bSYour Name 
1061*5113495bSYour Name QDF_STATUS (*send_process_gtk_offload_getinfo_cmd)(wmi_unified_t wmi_handle,
1062*5113495bSYour Name 				uint8_t vdev_id,
1063*5113495bSYour Name 				uint64_t offload_req_opcode);
1064*5113495bSYour Name 
1065*5113495bSYour Name QDF_STATUS (*send_wow_sta_ra_filter_cmd)(wmi_unified_t wmi_handle,
1066*5113495bSYour Name 				   uint8_t vdev_id, uint8_t default_pattern,
1067*5113495bSYour Name 				   uint16_t rate_limit_interval);
1068*5113495bSYour Name 
1069*5113495bSYour Name QDF_STATUS (*send_action_frame_patterns_cmd)(wmi_unified_t wmi_handle,
1070*5113495bSYour Name 			struct pmo_action_wakeup_set_params *action_params);
1071*5113495bSYour Name 
1072*5113495bSYour Name QDF_STATUS (*extract_gtk_rsp_event)(wmi_unified_t wmi_handle,
1073*5113495bSYour Name 			void *evt_buf,
1074*5113495bSYour Name 			struct pmo_gtk_rsp_params *gtk_rsp_param, uint32_t len);
1075*5113495bSYour Name 
1076*5113495bSYour Name QDF_STATUS (*send_wow_delete_pattern_cmd)(wmi_unified_t wmi_handle,
1077*5113495bSYour Name 					  uint8_t ptrn_id,
1078*5113495bSYour Name 					  uint8_t vdev_id);
1079*5113495bSYour Name 
1080*5113495bSYour Name QDF_STATUS (*send_host_wakeup_ind_to_fw_cmd)(wmi_unified_t wmi_handle,
1081*5113495bSYour Name 					     bool tx_pending_ind);
1082*5113495bSYour Name 
1083*5113495bSYour Name QDF_STATUS (*send_wow_timer_pattern_cmd)(wmi_unified_t wmi_handle,
1084*5113495bSYour Name 			uint8_t vdev_id, uint32_t cookie, uint32_t time);
1085*5113495bSYour Name #ifdef FEATURE_WLAN_LPHB
1086*5113495bSYour Name QDF_STATUS (*send_lphb_config_hbenable_cmd)(wmi_unified_t wmi_handle,
1087*5113495bSYour Name 				wmi_hb_set_enable_cmd_fixed_param *params);
1088*5113495bSYour Name 
1089*5113495bSYour Name QDF_STATUS (*send_lphb_config_tcp_params_cmd)(wmi_unified_t wmi_handle,
1090*5113495bSYour Name 				    wmi_hb_set_tcp_params_cmd_fixed_param *lphb_conf_req);
1091*5113495bSYour Name 
1092*5113495bSYour Name QDF_STATUS (*send_lphb_config_tcp_pkt_filter_cmd)(wmi_unified_t wmi_handle,
1093*5113495bSYour Name 				wmi_hb_set_tcp_pkt_filter_cmd_fixed_param *g_hb_tcp_filter_fp);
1094*5113495bSYour Name 
1095*5113495bSYour Name QDF_STATUS (*send_lphb_config_udp_params_cmd)(wmi_unified_t wmi_handle,
1096*5113495bSYour Name 				    wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req);
1097*5113495bSYour Name 
1098*5113495bSYour Name QDF_STATUS (*send_lphb_config_udp_pkt_filter_cmd)(wmi_unified_t wmi_handle,
1099*5113495bSYour Name 					wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req);
1100*5113495bSYour Name #endif /* FEATURE_WLAN_LPHB */
1101*5113495bSYour Name #ifdef WLAN_FEATURE_PACKET_FILTERING
1102*5113495bSYour Name QDF_STATUS (*send_enable_disable_packet_filter_cmd)(wmi_unified_t wmi_handle,
1103*5113495bSYour Name 					uint8_t vdev_id, bool enable);
1104*5113495bSYour Name 
1105*5113495bSYour Name QDF_STATUS (*send_config_packet_filter_cmd)(wmi_unified_t wmi_handle,
1106*5113495bSYour Name 		uint8_t vdev_id, struct pmo_rcv_pkt_fltr_cfg *rcv_filter_param,
1107*5113495bSYour Name 		uint8_t filter_id, bool enable);
1108*5113495bSYour Name #endif
1109*5113495bSYour Name 
1110*5113495bSYour Name #ifdef WLAN_FEATURE_ICMP_OFFLOAD
1111*5113495bSYour Name QDF_STATUS (*send_icmp_offload_config_cmd)(wmi_unified_t wmi_handle,
1112*5113495bSYour Name 			   struct pmo_icmp_offload *pmo_icmp_req);
1113*5113495bSYour Name #endif
1114*5113495bSYour Name #endif /* end of WLAN_POWER_MANAGEMENT_OFFLOAD */
1115*5113495bSYour Name #ifdef WLAN_WMI_BCN
1116*5113495bSYour Name QDF_STATUS (*send_bcn_buf_ll_cmd)(wmi_unified_t wmi_handle,
1117*5113495bSYour Name 			wmi_bcn_send_from_host_cmd_fixed_param * param);
1118*5113495bSYour Name #endif
1119*5113495bSYour Name 
1120*5113495bSYour Name #if !defined(REMOVE_PKT_LOG) && defined(FEATURE_PKTLOG)
1121*5113495bSYour Name QDF_STATUS (*send_pktlog_wmi_send_cmd)(wmi_unified_t wmi_handle,
1122*5113495bSYour Name 				   WMI_PKTLOG_EVENT pktlog_event,
1123*5113495bSYour Name 				   WMI_CMD_ID cmd_id, uint8_t user_triggered);
1124*5113495bSYour Name #endif
1125*5113495bSYour Name 
1126*5113495bSYour Name #ifdef WLAN_SUPPORT_GREEN_AP
1127*5113495bSYour Name QDF_STATUS (*send_egap_conf_params_cmd)(wmi_unified_t wmi_handle,
1128*5113495bSYour Name 			struct wlan_green_ap_egap_params *egap_params);
1129*5113495bSYour Name #endif
1130*5113495bSYour Name 
1131*5113495bSYour Name #ifdef WLAN_FEATURE_CIF_CFR
1132*5113495bSYour Name QDF_STATUS (*send_oem_dma_cfg_cmd)(wmi_unified_t wmi_handle,
1133*5113495bSYour Name 				   wmi_oem_dma_ring_cfg_req_fixed_param *cfg);
1134*5113495bSYour Name #endif
1135*5113495bSYour Name 
1136*5113495bSYour Name QDF_STATUS (*send_start_oem_data_cmd)(wmi_unified_t wmi_handle,
1137*5113495bSYour Name 				      uint32_t data_len,
1138*5113495bSYour Name 				      uint8_t *data);
1139*5113495bSYour Name 
1140*5113495bSYour Name #ifdef FEATURE_OEM_DATA
1141*5113495bSYour Name QDF_STATUS (*send_start_oemv2_data_cmd)(wmi_unified_t wmi_handle,
1142*5113495bSYour Name 					struct oem_data *params);
1143*5113495bSYour Name #endif
1144*5113495bSYour Name 
1145*5113495bSYour Name QDF_STATUS
1146*5113495bSYour Name (*send_dfs_phyerr_filter_offload_en_cmd)(wmi_unified_t wmi_handle,
1147*5113495bSYour Name 			bool dfs_phyerr_filter_offload);
1148*5113495bSYour Name 
1149*5113495bSYour Name QDF_STATUS (*send_bss_color_change_enable_cmd)(wmi_unified_t wmi_handle,
1150*5113495bSYour Name 					       uint32_t vdev_id,
1151*5113495bSYour Name 					       bool enable);
1152*5113495bSYour Name 
1153*5113495bSYour Name QDF_STATUS (*send_obss_color_collision_cfg_cmd)(wmi_unified_t wmi_handle,
1154*5113495bSYour Name 		struct wmi_obss_color_collision_cfg_param *cfg);
1155*5113495bSYour Name 
1156*5113495bSYour Name QDF_STATUS (*extract_obss_color_collision_info)(uint8_t *evt_buf,
1157*5113495bSYour Name 		struct wmi_obss_color_collision_info *info);
1158*5113495bSYour Name 
1159*5113495bSYour Name QDF_STATUS (*send_peer_based_pktlog_cmd)(wmi_unified_t wmi_handle,
1160*5113495bSYour Name 					 uint8_t *macaddr,
1161*5113495bSYour Name 					 uint8_t mac_id,
1162*5113495bSYour Name 					 uint8_t enb_dsb);
1163*5113495bSYour Name 
1164*5113495bSYour Name #ifdef WMI_STA_SUPPORT
1165*5113495bSYour Name QDF_STATUS (*send_del_ts_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id,
1166*5113495bSYour Name 				uint8_t ac);
1167*5113495bSYour Name 
1168*5113495bSYour Name QDF_STATUS (*send_aggr_qos_cmd)(wmi_unified_t wmi_handle,
1169*5113495bSYour Name 		      struct aggr_add_ts_param *aggr_qos_rsp_msg);
1170*5113495bSYour Name 
1171*5113495bSYour Name QDF_STATUS (*send_add_ts_cmd)(wmi_unified_t wmi_handle,
1172*5113495bSYour Name 		 struct add_ts_param *msg);
1173*5113495bSYour Name 
1174*5113495bSYour Name QDF_STATUS (*send_process_add_periodic_tx_ptrn_cmd)(
1175*5113495bSYour Name 					wmi_unified_t wmi_handle,
1176*5113495bSYour Name 					struct periodic_tx_pattern *pattern,
1177*5113495bSYour Name 					uint8_t vdev_id);
1178*5113495bSYour Name 
1179*5113495bSYour Name QDF_STATUS (*send_process_del_periodic_tx_ptrn_cmd)(wmi_unified_t wmi_handle,
1180*5113495bSYour Name 						    uint8_t vdev_id,
1181*5113495bSYour Name 						    uint8_t pattern_id);
1182*5113495bSYour Name 
1183*5113495bSYour Name QDF_STATUS (*send_set_auto_shutdown_timer_cmd)(wmi_unified_t wmi_handle,
1184*5113495bSYour Name 						  uint32_t timer_val);
1185*5113495bSYour Name 
1186*5113495bSYour Name #ifdef WLAN_FEATURE_NAN
1187*5113495bSYour Name QDF_STATUS (*send_nan_req_cmd)(wmi_unified_t wmi_handle,
1188*5113495bSYour Name 			struct nan_msg_params *nan_req);
1189*5113495bSYour Name 
1190*5113495bSYour Name QDF_STATUS (*send_nan_disable_req_cmd)(wmi_unified_t wmi_handle,
1191*5113495bSYour Name 				       struct nan_disable_req *nan_msg);
1192*5113495bSYour Name 
1193*5113495bSYour Name QDF_STATUS (*extract_nan_event_rsp)(wmi_unified_t wmi_handle, void *evt_buf,
1194*5113495bSYour Name 				    struct nan_event_params *evt_params,
1195*5113495bSYour Name 				    uint8_t **msg_buf);
1196*5113495bSYour Name #endif
1197*5113495bSYour Name 
1198*5113495bSYour Name QDF_STATUS (*send_process_ch_avoid_update_cmd)(wmi_unified_t wmi_handle);
1199*5113495bSYour Name 
1200*5113495bSYour Name QDF_STATUS (*send_process_set_ie_info_cmd)(wmi_unified_t wmi_handle,
1201*5113495bSYour Name 				   struct vdev_ie_info_param *ie_info);
1202*5113495bSYour Name 
1203*5113495bSYour Name QDF_STATUS (*send_set_base_macaddr_indicate_cmd)(wmi_unified_t wmi_handle,
1204*5113495bSYour Name 					 uint8_t *custom_addr);
1205*5113495bSYour Name 
1206*5113495bSYour Name QDF_STATUS (*send_pdev_set_pcl_cmd)(wmi_unified_t wmi_handle,
1207*5113495bSYour Name 				struct wmi_pcl_chan_weights *msg);
1208*5113495bSYour Name 
1209*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
1210*5113495bSYour Name QDF_STATUS (*send_vdev_set_pcl_cmd)(wmi_unified_t wmi_handle,
1211*5113495bSYour Name 				    struct set_pcl_cmd_params *params);
1212*5113495bSYour Name 
1213*5113495bSYour Name QDF_STATUS (*send_roam_set_param_cmd)(wmi_unified_t wmi_handle,
1214*5113495bSYour Name 				      struct vdev_set_params *roam_param);
1215*5113495bSYour Name #endif
1216*5113495bSYour Name 
1217*5113495bSYour Name #ifdef WLAN_POLICY_MGR_ENABLE
1218*5113495bSYour Name QDF_STATUS (*send_pdev_set_dual_mac_config_cmd)(wmi_unified_t wmi_handle,
1219*5113495bSYour Name 		struct policy_mgr_dual_mac_config *msg);
1220*5113495bSYour Name #endif
1221*5113495bSYour Name 
1222*5113495bSYour Name QDF_STATUS (*send_set_led_flashing_cmd)(wmi_unified_t wmi_handle,
1223*5113495bSYour Name 				struct flashing_req_params *flashing);
1224*5113495bSYour Name 
1225*5113495bSYour Name QDF_STATUS (*send_set_arp_stats_req_cmd)(wmi_unified_t wmi_handle,
1226*5113495bSYour Name 					 struct set_arp_stats *req_buf);
1227*5113495bSYour Name 
1228*5113495bSYour Name QDF_STATUS (*send_get_arp_stats_req_cmd)(wmi_unified_t wmi_handle,
1229*5113495bSYour Name 					 struct get_arp_stats *req_buf);
1230*5113495bSYour Name 
1231*5113495bSYour Name QDF_STATUS (*send_set_del_pmkid_cache_cmd) (wmi_unified_t wmi_handle,
1232*5113495bSYour Name 		struct wmi_unified_pmk_cache *req_buf);
1233*5113495bSYour Name 
1234*5113495bSYour Name QDF_STATUS (*send_adapt_dwelltime_params_cmd)(wmi_unified_t wmi_handle,
1235*5113495bSYour Name 			struct wmi_adaptive_dwelltime_params *dwelltime_params);
1236*5113495bSYour Name 
1237*5113495bSYour Name QDF_STATUS (*send_dbs_scan_sel_params_cmd)(wmi_unified_t wmi_handle,
1238*5113495bSYour Name 			struct wmi_dbs_scan_sel_params *dbs_scan_params);
1239*5113495bSYour Name 
1240*5113495bSYour Name QDF_STATUS (*send_vdev_set_gtx_cfg_cmd)(wmi_unified_t wmi_handle,
1241*5113495bSYour Name 				  uint32_t if_id,
1242*5113495bSYour Name 				  struct wmi_gtx_config *gtx_info);
1243*5113495bSYour Name 
1244*5113495bSYour Name QDF_STATUS (*send_set_sta_keep_alive_cmd)(wmi_unified_t wmi_handle,
1245*5113495bSYour Name 					  struct sta_keep_alive_params *params);
1246*5113495bSYour Name 
1247*5113495bSYour Name QDF_STATUS (*send_set_sta_sa_query_param_cmd)(wmi_unified_t wmi_handle,
1248*5113495bSYour Name 					uint8_t vdev_id, uint32_t max_retries,
1249*5113495bSYour Name 					uint32_t retry_interval);
1250*5113495bSYour Name 
1251*5113495bSYour Name QDF_STATUS (*send_fw_profiling_cmd)(wmi_unified_t wmi_handle,
1252*5113495bSYour Name 			uint32_t cmd, uint32_t value1, uint32_t value2);
1253*5113495bSYour Name 
1254*5113495bSYour Name QDF_STATUS (*send_nat_keepalive_en_cmd)(wmi_unified_t wmi_handle,
1255*5113495bSYour Name 					uint8_t vdev_id);
1256*5113495bSYour Name 
1257*5113495bSYour Name QDF_STATUS (*send_process_dhcp_ind_cmd)(wmi_unified_t wmi_handle,
1258*5113495bSYour Name 			wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind);
1259*5113495bSYour Name 
1260*5113495bSYour Name QDF_STATUS (*send_get_link_speed_cmd)(wmi_unified_t wmi_handle,
1261*5113495bSYour Name 			wmi_mac_addr peer_macaddr);
1262*5113495bSYour Name 
1263*5113495bSYour Name QDF_STATUS (*send_wlm_latency_level_cmd)(wmi_unified_t wmi_handle,
1264*5113495bSYour Name 				struct wlm_latency_level_param *param);
1265*5113495bSYour Name 
1266*5113495bSYour Name QDF_STATUS (*send_sar_limit_cmd)(wmi_unified_t wmi_handle,
1267*5113495bSYour Name 				struct sar_limit_cmd_params *params);
1268*5113495bSYour Name 
1269*5113495bSYour Name QDF_STATUS (*get_sar_limit_cmd)(wmi_unified_t wmi_handle);
1270*5113495bSYour Name 
1271*5113495bSYour Name QDF_STATUS (*extract_sar_limit_event)(wmi_unified_t wmi_handle,
1272*5113495bSYour Name 				      uint8_t *evt_buf,
1273*5113495bSYour Name 				      struct sar_limit_event *event);
1274*5113495bSYour Name 
1275*5113495bSYour Name QDF_STATUS (*extract_sar2_result_event)(void *handle,
1276*5113495bSYour Name 					uint8_t *event,
1277*5113495bSYour Name 					uint32_t len);
1278*5113495bSYour Name 
1279*5113495bSYour Name #ifdef FEATURE_WLAN_TDLS
1280*5113495bSYour Name QDF_STATUS (*send_set_tdls_offchan_mode_cmd)(wmi_unified_t wmi_handle,
1281*5113495bSYour Name 			      struct tdls_channel_switch_params *chan_switch_params);
1282*5113495bSYour Name 
1283*5113495bSYour Name QDF_STATUS (*send_update_fw_tdls_state_cmd)(wmi_unified_t wmi_handle,
1284*5113495bSYour Name 					    struct tdls_info *tdls_param,
1285*5113495bSYour Name 					    enum wmi_tdls_state tdls_state);
1286*5113495bSYour Name 
1287*5113495bSYour Name QDF_STATUS (*send_update_tdls_peer_state_cmd)(wmi_unified_t wmi_handle,
1288*5113495bSYour Name 				struct tdls_peer_update_state *peer_state,
1289*5113495bSYour Name 				uint32_t *ch_mhz);
1290*5113495bSYour Name 
1291*5113495bSYour Name QDF_STATUS (*extract_vdev_tdls_ev_param)(wmi_unified_t wmi_handle,
1292*5113495bSYour Name 		void *evt_buf, struct tdls_event_info *param);
1293*5113495bSYour Name #endif /* FEATURE_WLAN_TDLS */
1294*5113495bSYour Name #endif /* WMI_STA_SUPPORT */
1295*5113495bSYour Name 
1296*5113495bSYour Name QDF_STATUS (*send_stats_ext_req_cmd)(wmi_unified_t wmi_handle,
1297*5113495bSYour Name 			struct stats_ext_params *preq);
1298*5113495bSYour Name 
1299*5113495bSYour Name #ifdef WLAN_FEATURE_EXTWOW_SUPPORT
1300*5113495bSYour Name QDF_STATUS (*send_enable_ext_wow_cmd)(wmi_unified_t wmi_handle,
1301*5113495bSYour Name 			struct ext_wow_params *params);
1302*5113495bSYour Name 
1303*5113495bSYour Name QDF_STATUS (*send_set_app_type2_params_in_fw_cmd)(wmi_unified_t wmi_handle,
1304*5113495bSYour Name 				struct app_type2_params *appType2Params);
1305*5113495bSYour Name 
1306*5113495bSYour Name QDF_STATUS (*send_app_type1_params_in_fw_cmd)(wmi_unified_t wmi_handle,
1307*5113495bSYour Name 				struct app_type1_params *app_type1_params);
1308*5113495bSYour Name #endif /* WLAN_FEATURE_EXTWOW_SUPPORT */
1309*5113495bSYour Name 
1310*5113495bSYour Name QDF_STATUS (*send_process_dhcpserver_offload_cmd)(wmi_unified_t wmi_handle,
1311*5113495bSYour Name 				struct dhcp_offload_info_params *params);
1312*5113495bSYour Name 
1313*5113495bSYour Name QDF_STATUS (*send_regdomain_info_to_fw_cmd)(wmi_unified_t wmi_handle,
1314*5113495bSYour Name 				   uint32_t reg_dmn, uint16_t regdmn2G,
1315*5113495bSYour Name 				   uint16_t regdmn5G, uint8_t ctl2G,
1316*5113495bSYour Name 				   uint8_t ctl5G);
1317*5113495bSYour Name 
1318*5113495bSYour Name QDF_STATUS (*send_process_fw_mem_dump_cmd)(wmi_unified_t wmi_handle,
1319*5113495bSYour Name 					struct fw_dump_req_param *mem_dump_req);
1320*5113495bSYour Name 
1321*5113495bSYour Name QDF_STATUS (*send_cfg_action_frm_tb_ppdu_cmd)(wmi_unified_t wmi_handle,
1322*5113495bSYour Name 				struct cfg_action_frm_tb_ppdu_param *cfg_info);
1323*5113495bSYour Name 
1324*5113495bSYour Name QDF_STATUS (*save_fw_version_cmd)(wmi_unified_t wmi_handle, void *evt_buf);
1325*5113495bSYour Name 
1326*5113495bSYour Name QDF_STATUS (*check_and_update_fw_version_cmd)(wmi_unified_t wmi_hdl, void *ev);
1327*5113495bSYour Name 
1328*5113495bSYour Name QDF_STATUS (*send_log_supported_evt_cmd)(wmi_unified_t wmi_handle,
1329*5113495bSYour Name 		uint8_t *event,
1330*5113495bSYour Name 		uint32_t len);
1331*5113495bSYour Name 
1332*5113495bSYour Name QDF_STATUS (*send_enable_specific_fw_logs_cmd)(wmi_unified_t wmi_handle,
1333*5113495bSYour Name 		struct wmi_wifi_start_log *start_log);
1334*5113495bSYour Name 
1335*5113495bSYour Name QDF_STATUS (*send_flush_logs_to_fw_cmd)(wmi_unified_t wmi_handle);
1336*5113495bSYour Name 
1337*5113495bSYour Name QDF_STATUS (*send_unit_test_cmd)(wmi_unified_t wmi_handle,
1338*5113495bSYour Name 				 struct wmi_unit_test_cmd *wmi_utest);
1339*5113495bSYour Name 
1340*5113495bSYour Name #ifdef FEATURE_WLAN_APF
1341*5113495bSYour Name QDF_STATUS
1342*5113495bSYour Name (*send_set_active_apf_mode_cmd)(wmi_unified_t wmi_handle, uint8_t vdev_id,
1343*5113495bSYour Name 				enum wmi_host_active_apf_mode ucast_mode,
1344*5113495bSYour Name 				enum wmi_host_active_apf_mode mcast_bcast_mode);
1345*5113495bSYour Name 
1346*5113495bSYour Name QDF_STATUS (*send_apf_enable_cmd)(wmi_unified_t wmi_handle, uint32_t vdev_id,
1347*5113495bSYour Name 				  bool enable);
1348*5113495bSYour Name 
1349*5113495bSYour Name QDF_STATUS (*send_apf_write_work_memory_cmd)(wmi_unified_t wmi_handle,
1350*5113495bSYour Name 			struct wmi_apf_write_memory_params *apf_write_params);
1351*5113495bSYour Name 
1352*5113495bSYour Name QDF_STATUS (*send_apf_read_work_memory_cmd)(wmi_unified_t wmi_handle,
1353*5113495bSYour Name 			struct wmi_apf_read_memory_params *apf_read_params);
1354*5113495bSYour Name 
1355*5113495bSYour Name QDF_STATUS (*extract_apf_read_memory_resp_event)(wmi_unified_t wmi_handle,
1356*5113495bSYour Name 			void *evt_buf,
1357*5113495bSYour Name 			struct wmi_apf_read_memory_resp_event_params *resp);
1358*5113495bSYour Name #endif /* FEATURE_WLAN_APF */
1359*5113495bSYour Name 
1360*5113495bSYour Name QDF_STATUS (*send_pdev_get_tpc_config_cmd)(wmi_unified_t wmi_handle,
1361*5113495bSYour Name 		uint32_t param);
1362*5113495bSYour Name 
1363*5113495bSYour Name #ifdef WMI_ATF_SUPPORT
1364*5113495bSYour Name QDF_STATUS (*send_set_bwf_cmd)(wmi_unified_t wmi_handle,
1365*5113495bSYour Name 		struct set_bwf_params *param);
1366*5113495bSYour Name #endif
1367*5113495bSYour Name 
1368*5113495bSYour Name QDF_STATUS (*send_pdev_fips_cmd)(wmi_unified_t wmi_handle,
1369*5113495bSYour Name 		struct fips_params *param);
1370*5113495bSYour Name 
1371*5113495bSYour Name #ifdef WLAN_FEATURE_FIPS_BER_CCMGCM
1372*5113495bSYour Name QDF_STATUS (*send_pdev_fips_extend_cmd)(wmi_unified_t wmi_handle,
1373*5113495bSYour Name 					struct fips_extend_params *param);
1374*5113495bSYour Name 
1375*5113495bSYour Name QDF_STATUS (*send_pdev_fips_mode_set_cmd)(wmi_unified_t wmi_handle,
1376*5113495bSYour Name 					  struct fips_mode_set_params *param);
1377*5113495bSYour Name #endif
1378*5113495bSYour Name 
1379*5113495bSYour Name QDF_STATUS (*send_wlan_profile_enable_cmd)(wmi_unified_t wmi_handle,
1380*5113495bSYour Name 		struct wlan_profile_params *param);
1381*5113495bSYour Name 
1382*5113495bSYour Name #ifdef WLAN_FEATURE_DISA
1383*5113495bSYour Name QDF_STATUS
1384*5113495bSYour Name (*send_encrypt_decrypt_send_cmd)(wmi_unified_t wmi_handle,
1385*5113495bSYour Name 				 struct disa_encrypt_decrypt_req_params
1386*5113495bSYour Name 				 *params);
1387*5113495bSYour Name #endif
1388*5113495bSYour Name 
1389*5113495bSYour Name QDF_STATUS (*send_wlan_profile_trigger_cmd)(wmi_unified_t wmi_handle,
1390*5113495bSYour Name 		struct wlan_profile_params *param);
1391*5113495bSYour Name 
1392*5113495bSYour Name QDF_STATUS (*send_wlan_profile_hist_intvl_cmd)(wmi_unified_t wmi_handle,
1393*5113495bSYour Name 		struct wlan_profile_params *param);
1394*5113495bSYour Name 
1395*5113495bSYour Name QDF_STATUS (*send_pdev_set_chan_cmd)(wmi_unified_t wmi_handle,
1396*5113495bSYour Name 		struct channel_param *param);
1397*5113495bSYour Name 
1398*5113495bSYour Name QDF_STATUS (*send_process_update_edca_param_cmd)(wmi_unified_t wmi_handle,
1399*5113495bSYour Name 		uint8_t vdev_id, bool mu_edca_param,
1400*5113495bSYour Name 		struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
1401*5113495bSYour Name 
1402*5113495bSYour Name QDF_STATUS (*send_set_ratepwr_table_cmd)(wmi_unified_t wmi_handle,
1403*5113495bSYour Name 		struct ratepwr_table_params *param);
1404*5113495bSYour Name 
1405*5113495bSYour Name QDF_STATUS (*send_get_ratepwr_table_cmd)(wmi_unified_t wmi_handle);
1406*5113495bSYour Name 
1407*5113495bSYour Name QDF_STATUS (*send_set_ratepwr_chainmsk_cmd)(wmi_unified_t wmi_handle,
1408*5113495bSYour Name 		struct ratepwr_chainmsk_params *param);
1409*5113495bSYour Name 
1410*5113495bSYour Name QDF_STATUS (*send_set_macaddr_cmd)(wmi_unified_t wmi_handle,
1411*5113495bSYour Name 		struct macaddr_params *param);
1412*5113495bSYour Name 
1413*5113495bSYour Name QDF_STATUS (*send_pdev_scan_start_cmd)(wmi_unified_t wmi_handle);
1414*5113495bSYour Name 
1415*5113495bSYour Name QDF_STATUS (*send_pdev_scan_end_cmd)(wmi_unified_t wmi_handle);
1416*5113495bSYour Name 
1417*5113495bSYour Name QDF_STATUS (*send_set_acparams_cmd)(wmi_unified_t wmi_handle,
1418*5113495bSYour Name 		struct acparams_params *param);
1419*5113495bSYour Name 
1420*5113495bSYour Name QDF_STATUS (*send_set_vap_dscp_tid_map_cmd)(wmi_unified_t wmi_handle,
1421*5113495bSYour Name 		struct vap_dscp_tid_map_params *param);
1422*5113495bSYour Name 
1423*5113495bSYour Name QDF_STATUS (*send_proxy_ast_reserve_cmd)(wmi_unified_t wmi_handle,
1424*5113495bSYour Name 		struct proxy_ast_reserve_params *param);
1425*5113495bSYour Name 
1426*5113495bSYour Name #if defined(WMI_AP_SUPPORT) || defined(WDS_CONV_TARGET_IF_OPS_ENABLE)
1427*5113495bSYour Name QDF_STATUS (*send_peer_add_wds_entry_cmd)(wmi_unified_t wmi_handle,
1428*5113495bSYour Name 		struct peer_add_wds_entry_params *param);
1429*5113495bSYour Name 
1430*5113495bSYour Name QDF_STATUS (*send_peer_del_wds_entry_cmd)(wmi_unified_t wmi_handle,
1431*5113495bSYour Name 		struct peer_del_wds_entry_params *param);
1432*5113495bSYour Name 
1433*5113495bSYour Name #ifdef WLAN_FEATURE_MULTI_AST_DEL
1434*5113495bSYour Name QDF_STATUS (*send_peer_del_multi_wds_entries_cmd)(wmi_unified_t wmi_handle,
1435*5113495bSYour Name 		struct peer_del_multi_wds_entry_params *param);
1436*5113495bSYour Name #endif
1437*5113495bSYour Name 
1438*5113495bSYour Name QDF_STATUS (*send_peer_update_wds_entry_cmd)(wmi_unified_t wmi_handle,
1439*5113495bSYour Name 		struct peer_update_wds_entry_params *param);
1440*5113495bSYour Name #endif
1441*5113495bSYour Name 
1442*5113495bSYour Name QDF_STATUS (*send_peer_vlan_config_cmd)(wmi_unified_t wmi,
1443*5113495bSYour Name 					uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
1444*5113495bSYour Name 					struct peer_vlan_config_param *param);
1445*5113495bSYour Name 
1446*5113495bSYour Name #ifdef WMI_AP_SUPPORT
1447*5113495bSYour Name 
1448*5113495bSYour Name QDF_STATUS (*send_set_ctl_table_cmd)(wmi_unified_t wmi_handle,
1449*5113495bSYour Name 		struct ctl_table_params *param);
1450*5113495bSYour Name 
1451*5113495bSYour Name QDF_STATUS
1452*5113495bSYour Name (*send_set_sta_max_pwr_table_cmd)(wmi_unified_t wmi_handle,
1453*5113495bSYour Name 				  struct sta_max_pwr_table_params *param);
1454*5113495bSYour Name 
1455*5113495bSYour Name QDF_STATUS
1456*5113495bSYour Name (*send_set_power_table_cmd)(wmi_unified_t wmi_handle,
1457*5113495bSYour Name 			    struct rate2power_table_params *param);
1458*5113495bSYour Name 
1459*5113495bSYour Name QDF_STATUS (*send_set_mimogain_table_cmd)(wmi_unified_t wmi_handle,
1460*5113495bSYour Name 		struct mimogain_table_params *param);
1461*5113495bSYour Name 
1462*5113495bSYour Name QDF_STATUS (*send_packet_power_info_get_cmd)(wmi_unified_t wmi_handle,
1463*5113495bSYour Name 		      struct packet_power_info_params *param);
1464*5113495bSYour Name 
1465*5113495bSYour Name QDF_STATUS (*send_get_halphy_cal_status_cmd)(wmi_unified_t wmi_handle,
1466*5113495bSYour Name 					     struct halphy_cal_status_params *param);
1467*5113495bSYour Name 
1468*5113495bSYour Name QDF_STATUS (*send_set_ht_ie_cmd)(wmi_unified_t wmi_handle,
1469*5113495bSYour Name 		struct ht_ie_params *param);
1470*5113495bSYour Name 
1471*5113495bSYour Name QDF_STATUS (*send_set_vht_ie_cmd)(wmi_unified_t wmi_handle,
1472*5113495bSYour Name 		struct vht_ie_params *param);
1473*5113495bSYour Name 
1474*5113495bSYour Name QDF_STATUS (*send_set_quiet_mode_cmd)(wmi_unified_t wmi_handle,
1475*5113495bSYour Name 		struct set_quiet_mode_params *param);
1476*5113495bSYour Name 
1477*5113495bSYour Name QDF_STATUS (*send_set_bcn_offload_quiet_mode_cmd)(wmi_unified_t wmi_handle,
1478*5113495bSYour Name 		struct set_bcn_offload_quiet_mode_params *param);
1479*5113495bSYour Name 
1480*5113495bSYour Name QDF_STATUS (*send_bcn_offload_control_cmd)(wmi_unified_t wmi_handle,
1481*5113495bSYour Name 			struct bcn_offload_control *bcn_ctrl_param);
1482*5113495bSYour Name 
1483*5113495bSYour Name QDF_STATUS (*extract_swba_tim_info)(wmi_unified_t wmi_handle, void *evt_buf,
1484*5113495bSYour Name 	uint32_t idx, wmi_host_tim_info *tim_info);
1485*5113495bSYour Name 
1486*5113495bSYour Name QDF_STATUS (*extract_swba_noa_info)(wmi_unified_t wmi_handle, void *evt_buf,
1487*5113495bSYour Name 	    uint32_t idx, wmi_host_p2p_noa_info *p2p_desc);
1488*5113495bSYour Name 
1489*5113495bSYour Name QDF_STATUS (*extract_swba_quiet_info)(wmi_unified_t wmi_handle, void *evt_buf,
1490*5113495bSYour Name 				      uint32_t idx,
1491*5113495bSYour Name 				      wmi_host_quiet_info *quiet_info);
1492*5113495bSYour Name 
1493*5113495bSYour Name QDF_STATUS (*extract_offchan_data_tx_compl_param)(wmi_unified_t wmi_handle,
1494*5113495bSYour Name 		void *evt_buf,
1495*5113495bSYour Name 		struct wmi_host_offchan_data_tx_compl_event *param);
1496*5113495bSYour Name 
1497*5113495bSYour Name QDF_STATUS (*extract_pdev_tpc_config_ev_param)(wmi_unified_t wmi_handle,
1498*5113495bSYour Name 		void *evt_buf, wmi_host_pdev_tpc_config_event *param);
1499*5113495bSYour Name 
1500*5113495bSYour Name #ifdef QCA_RSSI_DB2DBM
1501*5113495bSYour Name QDF_STATUS (*extract_pdev_rssi_dbm_conv_ev_param)(wmi_unified_t wmi_handle,
1502*5113495bSYour Name 						  void *evt_buf,
1503*5113495bSYour Name 						  struct rssi_db2dbm_param *param);
1504*5113495bSYour Name #endif
1505*5113495bSYour Name 
1506*5113495bSYour Name QDF_STATUS (*extract_peer_sta_kickout_ev)(wmi_unified_t wmi_handle,
1507*5113495bSYour Name 		void *evt_buf, wmi_host_peer_sta_kickout_event *ev);
1508*5113495bSYour Name 
1509*5113495bSYour Name QDF_STATUS (*extract_peer_create_response_event)(
1510*5113495bSYour Name 			wmi_unified_t wmi_handle,
1511*5113495bSYour Name 			void *evt_buf,
1512*5113495bSYour Name 			struct wmi_host_peer_create_response_event *param);
1513*5113495bSYour Name 
1514*5113495bSYour Name QDF_STATUS (*extract_peer_delete_response_event)(
1515*5113495bSYour Name 			wmi_unified_t wmi_handle,
1516*5113495bSYour Name 			void *evt_buf,
1517*5113495bSYour Name 			struct wmi_host_peer_delete_response_event *param);
1518*5113495bSYour Name 
1519*5113495bSYour Name QDF_STATUS (*extract_pdev_tpc_ev_param)(wmi_unified_t wmi_handle,
1520*5113495bSYour Name 		void *evt_buf, wmi_host_pdev_tpc_event *param);
1521*5113495bSYour Name 
1522*5113495bSYour Name QDF_STATUS (*extract_nfcal_power_ev_param)(wmi_unified_t wmi_handle,
1523*5113495bSYour Name 		void *evt_buf,
1524*5113495bSYour Name 		wmi_host_pdev_nfcal_power_all_channels_event *param);
1525*5113495bSYour Name 
1526*5113495bSYour Name QDF_STATUS (*extract_wds_addr_event)(wmi_unified_t wmi_handle,
1527*5113495bSYour Name 	void *evt_buf, uint16_t len, wds_addr_event_t *wds_ev);
1528*5113495bSYour Name 
1529*5113495bSYour Name QDF_STATUS (*extract_peer_sta_ps_statechange_ev)(wmi_unified_t wmi_handle,
1530*5113495bSYour Name 	void *evt_buf, wmi_host_peer_sta_ps_statechange_event *ev);
1531*5113495bSYour Name 
1532*5113495bSYour Name QDF_STATUS (*extract_inst_rssi_stats_event)(wmi_unified_t wmi_handle,
1533*5113495bSYour Name 		void *evt_buf, wmi_host_inst_stats_resp *inst_rssi_resp);
1534*5113495bSYour Name 
1535*5113495bSYour Name QDF_STATUS (*extract_pdev_caldata_version_check_ev_param)(
1536*5113495bSYour Name 	wmi_unified_t wmi_handle,
1537*5113495bSYour Name 	void *evt_buf, wmi_host_pdev_check_cal_version_event *param);
1538*5113495bSYour Name 
1539*5113495bSYour Name QDF_STATUS
1540*5113495bSYour Name (*send_peer_set_intra_bss_cmd)(wmi_unified_t wmi_handle,
1541*5113495bSYour Name 			       struct wmi_intra_bss_params *param);
1542*5113495bSYour Name 
1543*5113495bSYour Name QDF_STATUS
1544*5113495bSYour Name (*send_vdev_set_intra_bss_cmd)(struct wmi_unified *wmi_handle,
1545*5113495bSYour Name 			       struct wmi_intra_bss_params *param);
1546*5113495bSYour Name 
1547*5113495bSYour Name #ifdef WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG
1548*5113495bSYour Name QDF_STATUS (*set_rx_pkt_type_routing_tag_cmd)(
1549*5113495bSYour Name 	wmi_unified_t wmi_hdl, struct wmi_rx_pkt_protocol_routing_info *param);
1550*5113495bSYour Name #endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
1551*5113495bSYour Name 
1552*5113495bSYour Name #ifdef WLAN_SUPPORT_FILS
1553*5113495bSYour Name QDF_STATUS (*extract_swfda_vdev_id)(wmi_unified_t wmi_handle, void *evt_buf,
1554*5113495bSYour Name 				    uint32_t *vdev_id);
1555*5113495bSYour Name QDF_STATUS (*send_fils_discovery_send_cmd)(wmi_unified_t wmi_handle,
1556*5113495bSYour Name 					   struct fd_params *param);
1557*5113495bSYour Name #endif /* WLAN_SUPPORT_FILS */
1558*5113495bSYour Name 
1559*5113495bSYour Name QDF_STATUS (*send_set_qboost_param_cmd)(wmi_unified_t wmi_handle,
1560*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1561*5113495bSYour Name 		struct set_qboost_params *param);
1562*5113495bSYour Name 
1563*5113495bSYour Name QDF_STATUS (*send_mcast_group_update_cmd)(wmi_unified_t wmi_handle,
1564*5113495bSYour Name 		struct mcast_group_update_params *param);
1565*5113495bSYour Name 
1566*5113495bSYour Name QDF_STATUS (*send_pdev_qvit_cmd)(wmi_unified_t wmi_handle,
1567*5113495bSYour Name 		struct pdev_qvit_params *param);
1568*5113495bSYour Name 
1569*5113495bSYour Name QDF_STATUS (*send_wmm_update_cmd)(wmi_unified_t wmi_handle,
1570*5113495bSYour Name 		struct wmm_update_params *param);
1571*5113495bSYour Name 
1572*5113495bSYour Name QDF_STATUS (*extract_mgmt_tx_compl_param)(wmi_unified_t wmi_handle,
1573*5113495bSYour Name 		void *evt_buf, wmi_host_mgmt_tx_compl_event *param);
1574*5113495bSYour Name 
1575*5113495bSYour Name QDF_STATUS (*extract_chan_info_event)(wmi_unified_t wmi_handle, void *evt_buf,
1576*5113495bSYour Name 				   wmi_host_chan_info_event *chan_info);
1577*5113495bSYour Name 
1578*5113495bSYour Name QDF_STATUS (*extract_scan_blanking_params)(wmi_unified_t wmi_handle,
1579*5113495bSYour Name 	    void *evt_buf, wmi_host_scan_blanking_params *blanking_params);
1580*5113495bSYour Name 
1581*5113495bSYour Name #ifdef QCA_MANUAL_TRIGGERED_ULOFDMA
1582*5113495bSYour Name QDF_STATUS
1583*5113495bSYour Name (*extract_ulofdma_trigger_feedback_event)(
1584*5113495bSYour Name 		wmi_unified_t wmi_handle,
1585*5113495bSYour Name 		void *evt_buf,
1586*5113495bSYour Name 		wmi_host_manual_ul_ofdma_trig_feedback_evt *feedback);
1587*5113495bSYour Name 
1588*5113495bSYour Name QDF_STATUS
1589*5113495bSYour Name (*extract_ul_ofdma_trig_rx_peer_userinfo)(wmi_unified_t wmi_handle,
1590*5113495bSYour Name 		void *evt_buf,
1591*5113495bSYour Name 		struct wmi_host_rx_peer_userinfo_evt_data *resp);
1592*5113495bSYour Name #endif
1593*5113495bSYour Name 
1594*5113495bSYour Name QDF_STATUS (*extract_channel_hopping_event)(wmi_unified_t wmi_handle,
1595*5113495bSYour Name 		void *evt_buf,
1596*5113495bSYour Name 		wmi_host_pdev_channel_hopping_event *ch_hopping);
1597*5113495bSYour Name 
1598*5113495bSYour Name QDF_STATUS (*send_peer_chan_width_switch_cmd)(wmi_unified_t wmi_handle,
1599*5113495bSYour Name 		struct peer_chan_width_switch_params *param);
1600*5113495bSYour Name 
1601*5113495bSYour Name #endif
1602*5113495bSYour Name 
1603*5113495bSYour Name QDF_STATUS (*send_set_bridge_mac_addr_cmd)(wmi_unified_t wmi_handle,
1604*5113495bSYour Name 		struct set_bridge_mac_addr_params *param);
1605*5113495bSYour Name 
1606*5113495bSYour Name QDF_STATUS (*send_phyerr_enable_cmd)(wmi_unified_t wmi_handle);
1607*5113495bSYour Name 
1608*5113495bSYour Name QDF_STATUS (*send_phyerr_disable_cmd)(wmi_unified_t wmi_handle);
1609*5113495bSYour Name 
1610*5113495bSYour Name #ifdef WMI_SMART_ANT_SUPPORT
1611*5113495bSYour Name QDF_STATUS (*send_set_ant_switch_tbl_cmd)(wmi_unified_t wmi_handle,
1612*5113495bSYour Name 		struct ant_switch_tbl_params *param);
1613*5113495bSYour Name 
1614*5113495bSYour Name QDF_STATUS (*send_smart_ant_enable_cmd)(wmi_unified_t wmi_handle,
1615*5113495bSYour Name 		struct smart_ant_enable_params *param);
1616*5113495bSYour Name 
1617*5113495bSYour Name QDF_STATUS (*send_smart_ant_set_rx_ant_cmd)(wmi_unified_t wmi_handle,
1618*5113495bSYour Name 		struct smart_ant_rx_ant_params *param);
1619*5113495bSYour Name 
1620*5113495bSYour Name QDF_STATUS (*send_smart_ant_set_tx_ant_cmd)(wmi_unified_t wmi_handle,
1621*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1622*5113495bSYour Name 		struct smart_ant_tx_ant_params *param);
1623*5113495bSYour Name 
1624*5113495bSYour Name QDF_STATUS (*send_smart_ant_set_training_info_cmd)(wmi_unified_t wmi_handle,
1625*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1626*5113495bSYour Name 		struct smart_ant_training_info_params *param);
1627*5113495bSYour Name 
1628*5113495bSYour Name QDF_STATUS (*send_smart_ant_set_node_config_cmd)(wmi_unified_t wmi_handle,
1629*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1630*5113495bSYour Name 		struct smart_ant_node_config_params *param);
1631*5113495bSYour Name #endif
1632*5113495bSYour Name 
1633*5113495bSYour Name #ifdef WLAN_IOT_SIM_SUPPORT
1634*5113495bSYour Name QDF_STATUS (*send_simulation_test_cmd)(wmi_unified_t wmi_handle,
1635*5113495bSYour Name 				       struct simulation_test_params *param);
1636*5113495bSYour Name #endif
1637*5113495bSYour Name 
1638*5113495bSYour Name QDF_STATUS (*send_smart_ant_enable_tx_feedback_cmd)(wmi_unified_t wmi_handle,
1639*5113495bSYour Name 		struct smart_ant_enable_tx_feedback_params *param);
1640*5113495bSYour Name 
1641*5113495bSYour Name #ifdef WLAN_CONV_SPECTRAL_ENABLE
1642*5113495bSYour Name QDF_STATUS (*extract_pdev_sscan_fw_cmd_fixed_param)(
1643*5113495bSYour Name 				wmi_unified_t wmi_handle,
1644*5113495bSYour Name 				uint8_t *evt_buf,
1645*5113495bSYour Name 				struct spectral_startscan_resp_params *params);
1646*5113495bSYour Name 
1647*5113495bSYour Name QDF_STATUS (*extract_pdev_sscan_fft_bin_index)(
1648*5113495bSYour Name 			wmi_unified_t wmi_handle,
1649*5113495bSYour Name 			uint8_t *evt_buf,
1650*5113495bSYour Name 			struct spectral_fft_bin_markers_160_165mhz *params);
1651*5113495bSYour Name 
1652*5113495bSYour Name QDF_STATUS (*extract_pdev_spectral_session_chan_info)(
1653*5113495bSYour Name 			wmi_unified_t wmi_handle, void *event,
1654*5113495bSYour Name 			struct spectral_session_chan_info *chan_info);
1655*5113495bSYour Name 
1656*5113495bSYour Name QDF_STATUS (*extract_pdev_spectral_session_detector_info)(
1657*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
1658*5113495bSYour Name 		struct spectral_session_det_info *det_info,
1659*5113495bSYour Name 		uint8_t det_info_idx);
1660*5113495bSYour Name 
1661*5113495bSYour Name QDF_STATUS (*extract_spectral_caps_fixed_param)(
1662*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
1663*5113495bSYour Name 		struct spectral_capabilities_event_params *param);
1664*5113495bSYour Name 
1665*5113495bSYour Name QDF_STATUS (*extract_spectral_scan_bw_caps)(
1666*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
1667*5113495bSYour Name 		struct spectral_scan_bw_capabilities *bw_caps);
1668*5113495bSYour Name 
1669*5113495bSYour Name QDF_STATUS (*extract_spectral_fft_size_caps)(
1670*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
1671*5113495bSYour Name 		struct spectral_fft_size_capabilities *fft_size_caps);
1672*5113495bSYour Name #endif /* WLAN_CONV_SPECTRAL_ENABLE */
1673*5113495bSYour Name 
1674*5113495bSYour Name QDF_STATUS (*send_vdev_spectral_configure_cmd)(wmi_unified_t wmi_handle,
1675*5113495bSYour Name 		struct vdev_spectral_configure_params *param);
1676*5113495bSYour Name 
1677*5113495bSYour Name QDF_STATUS (*send_vdev_spectral_enable_cmd)(wmi_unified_t wmi_handle,
1678*5113495bSYour Name 		struct vdev_spectral_enable_params *param);
1679*5113495bSYour Name 
1680*5113495bSYour Name QDF_STATUS (*send_bss_chan_info_request_cmd)(wmi_unified_t wmi_handle,
1681*5113495bSYour Name 		struct bss_chan_info_request_params *param);
1682*5113495bSYour Name 
1683*5113495bSYour Name QDF_STATUS (*send_thermal_mitigation_param_cmd)(wmi_unified_t wmi_handle,
1684*5113495bSYour Name 		struct thermal_mitigation_params *param);
1685*5113495bSYour Name 
1686*5113495bSYour Name QDF_STATUS (*send_vdev_set_neighbour_rx_cmd)(wmi_unified_t wmi_handle,
1687*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1688*5113495bSYour Name 		struct set_neighbour_rx_params *param);
1689*5113495bSYour Name 
1690*5113495bSYour Name QDF_STATUS (*send_vdev_set_fwtest_param_cmd)(wmi_unified_t wmi_handle,
1691*5113495bSYour Name 		struct set_fwtest_params *param);
1692*5113495bSYour Name 
1693*5113495bSYour Name QDF_STATUS (*send_vdev_config_ratemask_cmd)(wmi_unified_t wmi_handle,
1694*5113495bSYour Name 		struct config_ratemask_params *param);
1695*5113495bSYour Name 
1696*5113495bSYour Name QDF_STATUS (*send_vdev_set_custom_aggr_size_cmd)(wmi_unified_t wmi_handle,
1697*5113495bSYour Name 		struct set_custom_aggr_size_params *param);
1698*5113495bSYour Name 
1699*5113495bSYour Name QDF_STATUS (*send_vdev_set_qdepth_thresh_cmd)(wmi_unified_t wmi_handle,
1700*5113495bSYour Name 		struct set_qdepth_thresh_params *param);
1701*5113495bSYour Name 
1702*5113495bSYour Name QDF_STATUS (*send_wow_wakeup_cmd)(wmi_unified_t wmi_handle);
1703*5113495bSYour Name 
1704*5113495bSYour Name QDF_STATUS (*send_wow_add_wakeup_event_cmd)(wmi_unified_t wmi_handle,
1705*5113495bSYour Name 		struct wow_add_wakeup_params *param);
1706*5113495bSYour Name 
1707*5113495bSYour Name QDF_STATUS (*send_wow_add_wakeup_pattern_cmd)(wmi_unified_t wmi_handle,
1708*5113495bSYour Name 		struct wow_add_wakeup_pattern_params *param);
1709*5113495bSYour Name 
1710*5113495bSYour Name QDF_STATUS (*send_wow_remove_wakeup_pattern_cmd)(wmi_unified_t wmi_handle,
1711*5113495bSYour Name 		struct wow_remove_wakeup_pattern_params *param);
1712*5113495bSYour Name 
1713*5113495bSYour Name QDF_STATUS (*send_pdev_set_regdomain_cmd)(wmi_unified_t wmi_handle,
1714*5113495bSYour Name 		struct pdev_set_regdomain_params *param);
1715*5113495bSYour Name 
1716*5113495bSYour Name QDF_STATUS (*send_set_beacon_filter_cmd)(wmi_unified_t wmi_handle,
1717*5113495bSYour Name 		struct set_beacon_filter_params *param);
1718*5113495bSYour Name 
1719*5113495bSYour Name QDF_STATUS (*send_remove_beacon_filter_cmd)(wmi_unified_t wmi_handle,
1720*5113495bSYour Name 		struct remove_beacon_filter_params *param);
1721*5113495bSYour Name /*
1722*5113495bSYour Name QDF_STATUS (*send_mgmt_cmd)(wmi_unified_t wmi_handle,
1723*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1724*5113495bSYour Name 		struct mgmt_params *param);
1725*5113495bSYour Name 		*/
1726*5113495bSYour Name 
1727*5113495bSYour Name QDF_STATUS (*send_addba_clearresponse_cmd)(wmi_unified_t wmi_handle,
1728*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1729*5113495bSYour Name 		struct addba_clearresponse_params *param);
1730*5113495bSYour Name 
1731*5113495bSYour Name QDF_STATUS (*send_addba_send_cmd)(wmi_unified_t wmi_handle,
1732*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1733*5113495bSYour Name 		struct addba_send_params *param);
1734*5113495bSYour Name 
1735*5113495bSYour Name QDF_STATUS (*send_delba_send_cmd)(wmi_unified_t wmi_handle,
1736*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1737*5113495bSYour Name 		struct delba_send_params *param);
1738*5113495bSYour Name 
1739*5113495bSYour Name QDF_STATUS (*send_addba_setresponse_cmd)(wmi_unified_t wmi_handle,
1740*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1741*5113495bSYour Name 		struct addba_setresponse_params *param);
1742*5113495bSYour Name 
1743*5113495bSYour Name QDF_STATUS (*send_singleamsdu_cmd)(wmi_unified_t wmi_handle,
1744*5113495bSYour Name 		uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1745*5113495bSYour Name 		struct singleamsdu_params *param);
1746*5113495bSYour Name 
1747*5113495bSYour Name QDF_STATUS (*send_mu_scan_cmd)(wmi_unified_t wmi_handle,
1748*5113495bSYour Name 		struct mu_scan_params *param);
1749*5113495bSYour Name 
1750*5113495bSYour Name QDF_STATUS (*send_lteu_config_cmd)(wmi_unified_t wmi_handle,
1751*5113495bSYour Name 		struct lteu_config_params *param);
1752*5113495bSYour Name 
1753*5113495bSYour Name QDF_STATUS (*send_set_ps_mode_cmd)(wmi_unified_t wmi_handle,
1754*5113495bSYour Name 		       struct set_ps_mode_params *param);
1755*5113495bSYour Name QDF_STATUS (*save_service_bitmap)(wmi_unified_t wmi_handle,
1756*5113495bSYour Name 		void *evt_buf,  void *bitmap_buf);
1757*5113495bSYour Name QDF_STATUS (*save_ext_service_bitmap)(wmi_unified_t wmi_handle,
1758*5113495bSYour Name 		void *evt_buf,  void *bitmap_buf);
1759*5113495bSYour Name bool (*is_service_enabled)(wmi_unified_t wmi_handle,
1760*5113495bSYour Name 	uint32_t service_id);
1761*5113495bSYour Name QDF_STATUS (*get_target_cap_from_service_ready)(wmi_unified_t wmi_handle,
1762*5113495bSYour Name 	void *evt_buf, struct wlan_psoc_target_capability_info *ev);
1763*5113495bSYour Name 
1764*5113495bSYour Name QDF_STATUS (*extract_fw_version)(wmi_unified_t wmi_handle,
1765*5113495bSYour Name 				void *ev, struct wmi_host_fw_ver *fw_ver);
1766*5113495bSYour Name 
1767*5113495bSYour Name QDF_STATUS (*extract_fw_abi_version)(wmi_unified_t wmi_handle,
1768*5113495bSYour Name 				void *ev, struct wmi_host_fw_abi_ver *fw_ver);
1769*5113495bSYour Name 
1770*5113495bSYour Name QDF_STATUS (*extract_hal_reg_cap)(
1771*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
1772*5113495bSYour Name 		struct wlan_psoc_hal_reg_capability *hal_reg_cap);
1773*5113495bSYour Name 
1774*5113495bSYour Name QDF_STATUS (*extract_hal_reg_cap_ext2)(
1775*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf, uint8_t phy_idx,
1776*5113495bSYour Name 		struct wlan_psoc_host_hal_reg_capabilities_ext2 *hal_reg_cap);
1777*5113495bSYour Name 
1778*5113495bSYour Name uint32_t (*extract_num_mem_reqs)(wmi_unified_t wmi_handle,
1779*5113495bSYour Name 				 void *evt_buf);
1780*5113495bSYour Name 
1781*5113495bSYour Name QDF_STATUS (*extract_host_mem_req)(wmi_unified_t wmi_handle,
1782*5113495bSYour Name 				   void *evt_buf, host_mem_req *mem_reqs,
1783*5113495bSYour Name 				   uint32_t num_active_peers,
1784*5113495bSYour Name 				   uint32_t num_peers,
1785*5113495bSYour Name 				   enum wmi_fw_mem_prio fw_prio, uint16_t idx);
1786*5113495bSYour Name 
1787*5113495bSYour Name QDF_STATUS (*init_cmd_send)(wmi_unified_t wmi_handle,
1788*5113495bSYour Name 				struct wmi_init_cmd_param *param);
1789*5113495bSYour Name 
1790*5113495bSYour Name QDF_STATUS (*save_fw_version)(wmi_unified_t wmi_handle, void *evt_buf);
1791*5113495bSYour Name uint32_t (*ready_extract_init_status)(wmi_unified_t wmi_hdl, void *ev);
1792*5113495bSYour Name QDF_STATUS (*ready_extract_mac_addr)(wmi_unified_t wmi_hdl, void *ev,
1793*5113495bSYour Name 		uint8_t *macaddr);
1794*5113495bSYour Name wmi_host_mac_addr * (*ready_extract_mac_addr_list)(wmi_unified_t wmi_hdl,
1795*5113495bSYour Name 					void *ev, uint8_t *num_mac_addr);
1796*5113495bSYour Name QDF_STATUS (*extract_ready_event_params)(wmi_unified_t wmi_handle,
1797*5113495bSYour Name 		void *evt_buf, struct wmi_host_ready_ev_param *ev_param);
1798*5113495bSYour Name 
1799*5113495bSYour Name QDF_STATUS (*check_and_update_fw_version)(wmi_unified_t wmi_hdl, void *ev);
1800*5113495bSYour Name uint8_t* (*extract_dbglog_data_len)(wmi_unified_t wmi_handle, void *evt_buf,
1801*5113495bSYour Name 		uint32_t *len);
1802*5113495bSYour Name QDF_STATUS (*send_ext_resource_config)(wmi_unified_t wmi_handle,
1803*5113495bSYour Name 		wmi_host_ext_resource_config *ext_cfg);
1804*5113495bSYour Name 
1805*5113495bSYour Name QDF_STATUS (*send_nf_dbr_dbm_info_get_cmd)(wmi_unified_t wmi_handle,
1806*5113495bSYour Name 					   uint8_t mac_id);
1807*5113495bSYour Name 
1808*5113495bSYour Name #ifdef WLAN_FEATURE_GPIO_CFG
1809*5113495bSYour Name QDF_STATUS (*send_gpio_config_cmd)(wmi_unified_t wmi_handle,
1810*5113495bSYour Name 		      struct gpio_config_params *param);
1811*5113495bSYour Name 
1812*5113495bSYour Name QDF_STATUS (*send_gpio_output_cmd)(wmi_unified_t wmi_handle,
1813*5113495bSYour Name 		      struct gpio_output_params *param);
1814*5113495bSYour Name #endif
1815*5113495bSYour Name 
1816*5113495bSYour Name QDF_STATUS (*send_rtt_meas_req_test_cmd)(wmi_unified_t wmi_handle,
1817*5113495bSYour Name 		      struct rtt_meas_req_test_params *param);
1818*5113495bSYour Name 
1819*5113495bSYour Name QDF_STATUS (*send_rtt_meas_req_cmd)(wmi_unified_t wmi_handle,
1820*5113495bSYour Name 		      struct rtt_meas_req_params *param);
1821*5113495bSYour Name 
1822*5113495bSYour Name QDF_STATUS (*send_rtt_keepalive_req_cmd)(wmi_unified_t wmi_handle,
1823*5113495bSYour Name 		      struct rtt_keepalive_req_params *param);
1824*5113495bSYour Name 
1825*5113495bSYour Name QDF_STATUS (*send_lci_set_cmd)(wmi_unified_t wmi_handle,
1826*5113495bSYour Name 		      struct lci_set_params *param);
1827*5113495bSYour Name 
1828*5113495bSYour Name QDF_STATUS (*send_lcr_set_cmd)(wmi_unified_t wmi_handle,
1829*5113495bSYour Name 		      struct lcr_set_params *param);
1830*5113495bSYour Name 
1831*5113495bSYour Name QDF_STATUS (*send_periodic_chan_stats_config_cmd)(wmi_unified_t wmi_handle,
1832*5113495bSYour Name 			struct periodic_chan_stats_params *param);
1833*5113495bSYour Name 
1834*5113495bSYour Name #ifdef WLAN_ATF_ENABLE
1835*5113495bSYour Name QDF_STATUS (*send_atf_peer_list_cmd)(wmi_unified_t wmi_handle,
1836*5113495bSYour Name 				     struct set_atf_params *param);
1837*5113495bSYour Name 
1838*5113495bSYour Name QDF_STATUS
1839*5113495bSYour Name (*send_atf_peer_request_cmd)(wmi_unified_t wmi_handle,
1840*5113495bSYour Name 			     struct atf_peer_request_params *param);
1841*5113495bSYour Name 
1842*5113495bSYour Name QDF_STATUS
1843*5113495bSYour Name (*send_set_atf_grouping_cmd)(wmi_unified_t wmi_handle,
1844*5113495bSYour Name 			     struct atf_grouping_params *param);
1845*5113495bSYour Name 
1846*5113495bSYour Name QDF_STATUS
1847*5113495bSYour Name (*send_set_atf_group_ac_cmd)(wmi_unified_t wmi_handle,
1848*5113495bSYour Name 			     struct atf_group_ac_params *param);
1849*5113495bSYour Name 
1850*5113495bSYour Name QDF_STATUS (*extract_atf_peer_stats_ev)(wmi_unified_t wmi_handle,
1851*5113495bSYour Name 					void *evt_buf,
1852*5113495bSYour Name 					wmi_host_atf_peer_stats_event *ev);
1853*5113495bSYour Name 
1854*5113495bSYour Name QDF_STATUS (*extract_atf_token_info_ev)(wmi_unified_t wmi_handle,
1855*5113495bSYour Name 					void *evt_buf, uint8_t idx,
1856*5113495bSYour Name 					wmi_host_atf_peer_stats_info *atf_info);
1857*5113495bSYour Name 
1858*5113495bSYour Name #ifdef WLAN_ATF_INCREASED_STA
1859*5113495bSYour Name QDF_STATUS (*send_atf_peer_list_cmd_v2)(wmi_unified_t wmi_handle,
1860*5113495bSYour Name 					struct atf_peer_params_v2 *param);
1861*5113495bSYour Name QDF_STATUS
1862*5113495bSYour Name (*send_set_atf_grouping_cmd_v2)(wmi_unified_t wmi_handle,
1863*5113495bSYour Name 				struct atf_grouping_params_v2 *param);
1864*5113495bSYour Name #endif
1865*5113495bSYour Name #endif
1866*5113495bSYour Name 
1867*5113495bSYour Name QDF_STATUS (*send_get_user_position_cmd)(wmi_unified_t wmi_handle,
1868*5113495bSYour Name 			uint32_t value);
1869*5113495bSYour Name 
1870*5113495bSYour Name QDF_STATUS
1871*5113495bSYour Name (*send_reset_peer_mumimo_tx_count_cmd)(wmi_unified_t wmi_handle,
1872*5113495bSYour Name 			uint32_t value);
1873*5113495bSYour Name 
1874*5113495bSYour Name QDF_STATUS (*send_get_peer_mumimo_tx_count_cmd)(wmi_unified_t wmi_handle,
1875*5113495bSYour Name 			uint32_t value);
1876*5113495bSYour Name 
1877*5113495bSYour Name QDF_STATUS
1878*5113495bSYour Name (*send_pdev_caldata_version_check_cmd)(wmi_unified_t wmi_handle,
1879*5113495bSYour Name 			uint32_t value);
1880*5113495bSYour Name 
1881*5113495bSYour Name QDF_STATUS
1882*5113495bSYour Name (*send_btcoex_wlan_priority_cmd)(wmi_unified_t wmi_handle,
1883*5113495bSYour Name 			struct btcoex_cfg_params *param);
1884*5113495bSYour Name 
1885*5113495bSYour Name QDF_STATUS
1886*5113495bSYour Name (*send_start_11d_scan_cmd)(wmi_unified_t wmi_handle,
1887*5113495bSYour Name 			struct reg_start_11d_scan_req *param);
1888*5113495bSYour Name 
1889*5113495bSYour Name QDF_STATUS
1890*5113495bSYour Name (*send_stop_11d_scan_cmd)(wmi_unified_t wmi_handle,
1891*5113495bSYour Name 			struct reg_stop_11d_scan_req *param);
1892*5113495bSYour Name 
1893*5113495bSYour Name QDF_STATUS
1894*5113495bSYour Name (*send_btcoex_duty_cycle_cmd)(wmi_unified_t wmi_handle,
1895*5113495bSYour Name 			struct btcoex_cfg_params *param);
1896*5113495bSYour Name 
1897*5113495bSYour Name QDF_STATUS
1898*5113495bSYour Name (*send_egid_info_cmd)(wmi_unified_t wmi_handle,
1899*5113495bSYour Name 		      struct esl_egid_params *param);
1900*5113495bSYour Name 
1901*5113495bSYour Name QDF_STATUS
1902*5113495bSYour Name (*send_coex_ver_cfg_cmd)(wmi_unified_t wmi_handle, coex_ver_cfg_t *param);
1903*5113495bSYour Name 
1904*5113495bSYour Name QDF_STATUS
1905*5113495bSYour Name (*send_coex_config_cmd)(wmi_unified_t wmi_handle,
1906*5113495bSYour Name 			struct coex_config_params *param);
1907*5113495bSYour Name 
1908*5113495bSYour Name QDF_STATUS
1909*5113495bSYour Name (*send_coex_multi_config_cmd)(wmi_unified_t wmi_handle,
1910*5113495bSYour Name 			      struct coex_multi_config *param);
1911*5113495bSYour Name 
1912*5113495bSYour Name #ifdef WLAN_FEATURE_DBAM_CONFIG
1913*5113495bSYour Name QDF_STATUS
1914*5113495bSYour Name (*send_dbam_config_cmd)(wmi_unified_t wmi_handle,
1915*5113495bSYour Name 			struct coex_dbam_config_params *param);
1916*5113495bSYour Name QDF_STATUS
1917*5113495bSYour Name (*extract_dbam_config_resp_event)(wmi_unified_t wmi_handle, void *evt_buf,
1918*5113495bSYour Name 				  struct coex_dbam_config_resp *resp);
1919*5113495bSYour Name #endif
1920*5113495bSYour Name 
1921*5113495bSYour Name #ifdef OL_ATH_SMART_LOGGING
1922*5113495bSYour Name QDF_STATUS
1923*5113495bSYour Name (*send_smart_logging_enable_cmd)(wmi_unified_t wmi_handle, uint32_t param);
1924*5113495bSYour Name 
1925*5113495bSYour Name QDF_STATUS
1926*5113495bSYour Name (*send_smart_logging_fatal_cmd)(wmi_unified_t wmi_handle,
1927*5113495bSYour Name 				struct wmi_debug_fatal_events *param);
1928*5113495bSYour Name #endif /* OL_ATH_SMART_LOGGING */
1929*5113495bSYour Name 
1930*5113495bSYour Name #ifdef DCS_INTERFERENCE_DETECTION
1931*5113495bSYour Name QDF_STATUS (*extract_dcs_interference_type)(
1932*5113495bSYour Name 		wmi_unified_t wmi_handle,
1933*5113495bSYour Name 		void *evt_buf,
1934*5113495bSYour Name 		struct wlan_host_dcs_interference_param *param);
1935*5113495bSYour Name 
1936*5113495bSYour Name QDF_STATUS (*extract_dcs_im_tgt_stats)(
1937*5113495bSYour Name 		wmi_unified_t wmi_handle,
1938*5113495bSYour Name 		void *evt_buf,
1939*5113495bSYour Name 		struct wlan_host_dcs_im_tgt_stats *wlan_stat);
1940*5113495bSYour Name 
1941*5113495bSYour Name QDF_STATUS (*extract_dcs_awgn_info)(wmi_unified_t wmi_handle, void *evt_buf,
1942*5113495bSYour Name 				    struct wlan_host_dcs_awgn_info *awgn_info);
1943*5113495bSYour Name #else
1944*5113495bSYour Name QDF_STATUS (*extract_dcs_interference_type)(wmi_unified_t wmi_handle,
1945*5113495bSYour Name 	void *evt_buf, struct wmi_host_dcs_interference_param *param);
1946*5113495bSYour Name 
1947*5113495bSYour Name QDF_STATUS (*extract_dcs_cw_int)(wmi_unified_t wmi_handle, void *evt_buf,
1948*5113495bSYour Name 	wmi_host_ath_dcs_cw_int *cw_int);
1949*5113495bSYour Name 
1950*5113495bSYour Name QDF_STATUS (*extract_dcs_im_tgt_stats)(wmi_unified_t wmi_handle, void *evt_buf,
1951*5113495bSYour Name 	wmi_host_dcs_im_tgt_stats_t *wlan_stat);
1952*5113495bSYour Name 
1953*5113495bSYour Name QDF_STATUS (*extract_dcs_awgn_info)(
1954*5113495bSYour Name 		wmi_unified_t wmi_handle,
1955*5113495bSYour Name 		void *evt_buf,
1956*5113495bSYour Name 		struct wmi_host_dcs_awgn_info *awgn_info);
1957*5113495bSYour Name #endif
1958*5113495bSYour Name 
1959*5113495bSYour Name QDF_STATUS (*extract_fips_event_data)(wmi_unified_t wmi_handle,
1960*5113495bSYour Name 	void *evt_buf, struct wmi_host_fips_event_param *param);
1961*5113495bSYour Name 
1962*5113495bSYour Name #ifdef WLAN_FEATURE_FIPS_BER_CCMGCM
1963*5113495bSYour Name QDF_STATUS
1964*5113495bSYour Name (*extract_fips_extend_ev_data)(wmi_unified_t wmi_handle,
1965*5113495bSYour Name 			       void *evt_buf,
1966*5113495bSYour Name 			       struct wmi_host_fips_extend_event_param
1967*5113495bSYour Name 			       *param);
1968*5113495bSYour Name #endif
1969*5113495bSYour Name 
1970*5113495bSYour Name #ifdef WLAN_FEATURE_DISA
1971*5113495bSYour Name QDF_STATUS
1972*5113495bSYour Name (*extract_encrypt_decrypt_resp_event)(wmi_unified_t wmi_handle,
1973*5113495bSYour Name 				      void *evt_buf,
1974*5113495bSYour Name 				      struct disa_encrypt_decrypt_resp_params
1975*5113495bSYour Name 				      *resp);
1976*5113495bSYour Name #endif
1977*5113495bSYour Name 
1978*5113495bSYour Name QDF_STATUS (*extract_vdev_start_resp)(wmi_unified_t wmi_handle, void *evt_buf,
1979*5113495bSYour Name 				      struct vdev_start_response *vdev_rsp);
1980*5113495bSYour Name 
1981*5113495bSYour Name QDF_STATUS (*extract_vdev_delete_resp)(
1982*5113495bSYour Name 				wmi_unified_t wmi_handle, void *evt_buf,
1983*5113495bSYour Name 				struct vdev_delete_response *delete_rsp);
1984*5113495bSYour Name 
1985*5113495bSYour Name QDF_STATUS (*extract_tbttoffset_update_params)(wmi_unified_t wmi_hdl,
1986*5113495bSYour Name 					void *evt_buf, uint8_t idx,
1987*5113495bSYour Name 					struct tbttoffset_params *tbtt_param);
1988*5113495bSYour Name 
1989*5113495bSYour Name QDF_STATUS (*extract_ext_tbttoffset_update_params)(wmi_unified_t wmi_hdl,
1990*5113495bSYour Name 					void *evt_buf, uint8_t idx,
1991*5113495bSYour Name 					struct tbttoffset_params *tbtt_param);
1992*5113495bSYour Name 
1993*5113495bSYour Name QDF_STATUS (*extract_tbttoffset_num_vdevs)(wmi_unified_t wmi_hdl, void *evt_buf,
1994*5113495bSYour Name 					   uint32_t *num_vdevs);
1995*5113495bSYour Name 
1996*5113495bSYour Name QDF_STATUS (*extract_ext_tbttoffset_num_vdevs)(wmi_unified_t wmi_hdl,
1997*5113495bSYour Name 					       void *evt_buf,
1998*5113495bSYour Name 					       uint32_t *num_vdevs);
1999*5113495bSYour Name 
2000*5113495bSYour Name QDF_STATUS (*extract_muedca_params_handler)(wmi_unified_t wmi_hdl,
2001*5113495bSYour Name 					    void *evt_buf,
2002*5113495bSYour Name 					    struct muedca_params *muedca_param_list);
2003*5113495bSYour Name 
2004*5113495bSYour Name QDF_STATUS (*extract_mgmt_rx_params)(wmi_unified_t wmi_handle, void *evt_buf,
2005*5113495bSYour Name 	struct mgmt_rx_event_params *hdr, uint8_t **bufp);
2006*5113495bSYour Name 
2007*5113495bSYour Name QDF_STATUS (*extract_frame_pn_params)(wmi_unified_t wmi_handle, void *evt_buf,
2008*5113495bSYour Name 				      struct frame_pn_params *pn_params);
2009*5113495bSYour Name 
2010*5113495bSYour Name QDF_STATUS (*extract_is_conn_ap_frame)(wmi_unified_t wmi_handle,
2011*5113495bSYour Name 				       void *evt_buf,
2012*5113495bSYour Name 				       struct frm_conn_ap *is_conn_ap);
2013*5113495bSYour Name 
2014*5113495bSYour Name QDF_STATUS (*extract_vdev_stopped_param)(wmi_unified_t wmi_handle,
2015*5113495bSYour Name 		void *evt_buf, uint32_t *vdev_id);
2016*5113495bSYour Name 
2017*5113495bSYour Name QDF_STATUS (*extract_vdev_roam_param)(wmi_unified_t wmi_handle, void *evt_buf,
2018*5113495bSYour Name 	wmi_host_roam_event *param);
2019*5113495bSYour Name 
2020*5113495bSYour Name QDF_STATUS (*extract_vdev_scan_ev_param)(wmi_unified_t wmi_handle,
2021*5113495bSYour Name 		void *evt_buf, struct scan_event *param);
2022*5113495bSYour Name 
2023*5113495bSYour Name #ifdef FEATURE_WLAN_SCAN_PNO
2024*5113495bSYour Name QDF_STATUS (*extract_nlo_match_ev_param)(wmi_unified_t wmi_handle,
2025*5113495bSYour Name 					 void *evt_buf,
2026*5113495bSYour Name 					 struct scan_event *param);
2027*5113495bSYour Name 
2028*5113495bSYour Name QDF_STATUS (*extract_nlo_complete_ev_param)(wmi_unified_t wmi_handle,
2029*5113495bSYour Name 					    void *evt_buf,
2030*5113495bSYour Name 					    struct scan_event *param);
2031*5113495bSYour Name #endif
2032*5113495bSYour Name 
2033*5113495bSYour Name QDF_STATUS (*extract_mu_ev_param)(wmi_unified_t wmi_handle, void *evt_buf,
2034*5113495bSYour Name 	wmi_host_mu_report_event *param);
2035*5113495bSYour Name 
2036*5113495bSYour Name QDF_STATUS (*extract_mu_db_entry)(wmi_unified_t wmi_hdl, void *evt_buf,
2037*5113495bSYour Name 	uint8_t idx, wmi_host_mu_db_entry *param);
2038*5113495bSYour Name 
2039*5113495bSYour Name QDF_STATUS (*extract_mumimo_tx_count_ev_param)(wmi_unified_t wmi_handle,
2040*5113495bSYour Name 	void *evt_buf, wmi_host_peer_txmu_cnt_event *param);
2041*5113495bSYour Name 
2042*5113495bSYour Name QDF_STATUS (*extract_peer_gid_userpos_list_ev_param)(wmi_unified_t wmi_handle,
2043*5113495bSYour Name 	void *evt_buf, wmi_host_peer_gid_userpos_list_event *param);
2044*5113495bSYour Name 
2045*5113495bSYour Name QDF_STATUS
2046*5113495bSYour Name (*extract_esp_estimation_ev_param)(wmi_unified_t wmi_handle, void *evt_buf,
2047*5113495bSYour Name 				   struct esp_estimation_event *param);
2048*5113495bSYour Name 
2049*5113495bSYour Name QDF_STATUS (*extract_gpio_input_ev_param)(wmi_unified_t wmi_handle,
2050*5113495bSYour Name 	void *evt_buf, uint32_t *gpio_num);
2051*5113495bSYour Name 
2052*5113495bSYour Name QDF_STATUS (*extract_pdev_reserve_ast_ev_param)(wmi_unified_t wmi_handle,
2053*5113495bSYour Name 		void *evt_buf, struct wmi_host_proxy_ast_reserve_param *param);
2054*5113495bSYour Name 
2055*5113495bSYour Name QDF_STATUS (*extract_pdev_generic_buffer_ev_param)(wmi_unified_t wmi_handle,
2056*5113495bSYour Name 		void *evt_buf, wmi_host_pdev_generic_buffer_event *param);
2057*5113495bSYour Name 
2058*5113495bSYour Name QDF_STATUS (*extract_pdev_csa_switch_count_status)(wmi_unified_t wmi_handle,
2059*5113495bSYour Name 		void *evt_buf, struct pdev_csa_switch_count_status *param);
2060*5113495bSYour Name 
2061*5113495bSYour Name QDF_STATUS (*extract_swba_num_vdevs)(wmi_unified_t wmi_handle, void *evt_buf,
2062*5113495bSYour Name 	uint32_t *num_vdevs, uint32_t *num_quiet_triggered_vdevs);
2063*5113495bSYour Name 
2064*5113495bSYour Name #ifdef CONVERGED_P2P_ENABLE
2065*5113495bSYour Name #ifdef FEATURE_P2P_LISTEN_OFFLOAD
2066*5113495bSYour Name QDF_STATUS (*extract_p2p_lo_stop_ev_param)(wmi_unified_t wmi_handle,
2067*5113495bSYour Name 	void *evt_buf, struct p2p_lo_event *param);
2068*5113495bSYour Name #endif
2069*5113495bSYour Name 
2070*5113495bSYour Name QDF_STATUS (*extract_p2p_noa_ev_param)(wmi_unified_t wmi_handle,
2071*5113495bSYour Name 	void *evt_buf, struct p2p_noa_info *param);
2072*5113495bSYour Name 
2073*5113495bSYour Name QDF_STATUS
2074*5113495bSYour Name (*extract_mac_addr_rx_filter_evt_param)(wmi_unified_t wmi_handle,
2075*5113495bSYour Name 					void *evt_buf,
2076*5113495bSYour Name 					struct p2p_set_mac_filter_evt *param);
2077*5113495bSYour Name #endif
2078*5113495bSYour Name 
2079*5113495bSYour Name QDF_STATUS (*set_mac_addr_rx_filter)(wmi_unified_t wmi_handle,
2080*5113495bSYour Name 				     struct set_rx_mac_filter *param);
2081*5113495bSYour Name 
2082*5113495bSYour Name #ifdef WLAN_FEATURE_INTEROP_ISSUES_AP
2083*5113495bSYour Name QDF_STATUS
2084*5113495bSYour Name (*extract_interop_issues_ap_ev_param)(wmi_unified_t wmi_handle, void *evt_buf,
2085*5113495bSYour Name 				  struct wlan_interop_issues_ap_event *param);
2086*5113495bSYour Name QDF_STATUS
2087*5113495bSYour Name (*send_set_rap_ps_cmd)(wmi_unified_t wmi_handle,
2088*5113495bSYour Name 		       struct wlan_interop_issues_ap_info *interop_issues_ap);
2089*5113495bSYour Name #endif
2090*5113495bSYour Name 
2091*5113495bSYour Name QDF_STATUS (*extract_peer_ratecode_list_ev)(wmi_unified_t wmi_handle,
2092*5113495bSYour Name 					    void *evt_buf, uint8_t *peer_mac,
2093*5113495bSYour Name 					    uint32_t *pdev_id,
2094*5113495bSYour Name 					    wmi_sa_rate_cap *rate_cap);
2095*5113495bSYour Name 
2096*5113495bSYour Name QDF_STATUS (*extract_comb_phyerr)(wmi_unified_t wmi_handle, void *evt_buf,
2097*5113495bSYour Name 	uint16_t datalen, uint16_t *buf_offset, wmi_host_phyerr_t *phyerr);
2098*5113495bSYour Name 
2099*5113495bSYour Name QDF_STATUS (*extract_single_phyerr)(wmi_unified_t wmi_handle, void *evt_buf,
2100*5113495bSYour Name 	uint16_t datalen, uint16_t *buf_offset, wmi_host_phyerr_t *phyerr);
2101*5113495bSYour Name 
2102*5113495bSYour Name QDF_STATUS (*extract_composite_phyerr)(wmi_unified_t wmi_handle, void *evt_buf,
2103*5113495bSYour Name 	uint16_t datalen, wmi_host_phyerr_t *phyerr);
2104*5113495bSYour Name 
2105*5113495bSYour Name QDF_STATUS (*extract_rtt_hdr)(wmi_unified_t wmi_handle, void *evt_buf,
2106*5113495bSYour Name 	wmi_host_rtt_event_hdr *ev);
2107*5113495bSYour Name 
2108*5113495bSYour Name QDF_STATUS (*extract_rtt_ev)(wmi_unified_t wmi_handle, void *evt_buf,
2109*5113495bSYour Name 	wmi_host_rtt_meas_event *ev, uint8_t *hdump, uint16_t hdump_len);
2110*5113495bSYour Name 
2111*5113495bSYour Name QDF_STATUS (*extract_rtt_error_report_ev)(wmi_unified_t wmi_handle,
2112*5113495bSYour Name 		void *evt_buf, wmi_host_rtt_error_report_event *ev);
2113*5113495bSYour Name 
2114*5113495bSYour Name QDF_STATUS (*extract_all_stats_count)(wmi_unified_t wmi_handle, void *evt_buf,
2115*5113495bSYour Name 			   wmi_host_stats_event *stats_param);
2116*5113495bSYour Name #ifdef WLAN_FEATURE_BIG_DATA_STATS
2117*5113495bSYour Name QDF_STATUS (*extract_big_data_stats)(
2118*5113495bSYour Name 			   wmi_unified_t wmi_handle, void *evt_buf,
2119*5113495bSYour Name 			   struct big_data_stats_event *stats_param);
2120*5113495bSYour Name #endif
2121*5113495bSYour Name QDF_STATUS (*extract_pdev_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2122*5113495bSYour Name 			 uint32_t index, wmi_host_pdev_stats *pdev_stats);
2123*5113495bSYour Name 
2124*5113495bSYour Name QDF_STATUS (*extract_pmf_bcn_protect_stats)(wmi_unified_t wmi_handle,
2125*5113495bSYour Name 		void *evt_buf, wmi_host_pmf_bcn_protect_stats *pmf_bcn_stats);
2126*5113495bSYour Name 
2127*5113495bSYour Name QDF_STATUS (*extract_unit_test)(wmi_unified_t wmi_handle, void *evt_buf,
2128*5113495bSYour Name 		wmi_unit_test_event *unit_test, uint32_t maxspace);
2129*5113495bSYour Name 
2130*5113495bSYour Name QDF_STATUS (*extract_pdev_ext_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2131*5113495bSYour Name 		 uint32_t index, wmi_host_pdev_ext_stats *pdev_ext_stats);
2132*5113495bSYour Name 
2133*5113495bSYour Name QDF_STATUS (*extract_vdev_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2134*5113495bSYour Name 			 uint32_t index, wmi_host_vdev_stats *vdev_stats);
2135*5113495bSYour Name 
2136*5113495bSYour Name QDF_STATUS (*extract_per_chain_rssi_stats)(wmi_unified_t wmi_handle,
2137*5113495bSYour Name 			void *evt_buf, uint32_t index,
2138*5113495bSYour Name 			struct wmi_host_per_chain_rssi_stats *rssi_stats);
2139*5113495bSYour Name 
2140*5113495bSYour Name QDF_STATUS (*extract_peer_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2141*5113495bSYour Name 			 uint32_t index, wmi_host_peer_stats *peer_stats);
2142*5113495bSYour Name 
2143*5113495bSYour Name QDF_STATUS (*extract_bcnflt_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2144*5113495bSYour Name 			 uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats);
2145*5113495bSYour Name 
2146*5113495bSYour Name QDF_STATUS (*extract_peer_extd_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2147*5113495bSYour Name 		 uint32_t index, wmi_host_peer_extd_stats *peer_extd_stats);
2148*5113495bSYour Name 
2149*5113495bSYour Name QDF_STATUS (*extract_peer_retry_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2150*5113495bSYour Name 	    uint32_t index,
2151*5113495bSYour Name 	    struct wmi_host_peer_retry_stats *peer_retry_stats);
2152*5113495bSYour Name 
2153*5113495bSYour Name QDF_STATUS (*extract_peer_adv_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2154*5113495bSYour Name 				     struct wmi_host_peer_adv_stats
2155*5113495bSYour Name 				     *peer_adv_stats);
2156*5113495bSYour Name 
2157*5113495bSYour Name QDF_STATUS (*extract_chan_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2158*5113495bSYour Name 			 uint32_t index, wmi_host_chan_stats *chan_stats);
2159*5113495bSYour Name 
2160*5113495bSYour Name #ifdef WLAN_FEATURE_MIB_STATS
2161*5113495bSYour Name QDF_STATUS (*extract_mib_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2162*5113495bSYour Name 				struct mib_stats_metrics *mib_stats);
2163*5113495bSYour Name #endif
2164*5113495bSYour Name 
2165*5113495bSYour Name QDF_STATUS (*extract_thermal_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2166*5113495bSYour Name 	    uint32_t *temp, enum thermal_throttle_level *level,
2167*5113495bSYour Name 	    uint32_t *therm_throt_levels,
2168*5113495bSYour Name 	    struct thermal_throt_level_stats *tt_temp_range_stats_event,
2169*5113495bSYour Name 	    uint32_t *pdev_id);
2170*5113495bSYour Name 
2171*5113495bSYour Name QDF_STATUS (*extract_thermal_level_stats)(wmi_unified_t wmi_handle,
2172*5113495bSYour Name 		void *evt_buf, uint8_t idx, uint32_t *levelcount,
2173*5113495bSYour Name 		uint32_t *dccount);
2174*5113495bSYour Name 
2175*5113495bSYour Name QDF_STATUS (*extract_profile_ctx)(wmi_unified_t wmi_handle, void *evt_buf,
2176*5113495bSYour Name 				   wmi_host_wlan_profile_ctx_t *profile_ctx);
2177*5113495bSYour Name 
2178*5113495bSYour Name QDF_STATUS (*extract_profile_data)(wmi_unified_t wmi_handle, void *evt_buf,
2179*5113495bSYour Name 				uint8_t idx,
2180*5113495bSYour Name 				wmi_host_wlan_profile_t *profile_data);
2181*5113495bSYour Name 
2182*5113495bSYour Name QDF_STATUS (*extract_bss_chan_info_event)(wmi_unified_t wmi_handle,
2183*5113495bSYour Name 		void *evt_buf,
2184*5113495bSYour Name 		wmi_host_pdev_bss_chan_info_event *bss_chan_info);
2185*5113495bSYour Name 
2186*5113495bSYour Name QDF_STATUS (*extract_tx_data_traffic_ctrl_ev)(wmi_unified_t wmi_handle,
2187*5113495bSYour Name 		void *evt_buf, wmi_host_tx_data_traffic_ctrl_event *ev);
2188*5113495bSYour Name 
2189*5113495bSYour Name QDF_STATUS (*extract_vdev_extd_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2190*5113495bSYour Name 		uint32_t index, wmi_host_vdev_extd_stats *vdev_extd_stats);
2191*5113495bSYour Name 
2192*5113495bSYour Name QDF_STATUS (*extract_vdev_nac_rssi_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2193*5113495bSYour Name 		struct wmi_host_vdev_nac_rssi_event *vdev_nac_rssi_stats);
2194*5113495bSYour Name 
2195*5113495bSYour Name QDF_STATUS (*extract_bcn_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2196*5113495bSYour Name 		uint32_t index, wmi_host_bcn_stats *bcn_stats);
2197*5113495bSYour Name 
2198*5113495bSYour Name #ifdef QCA_SUPPORT_MC_CP_STATS
2199*5113495bSYour Name QDF_STATUS (*extract_peer_stats_count)(wmi_unified_t wmi_handle, void *evt_buf,
2200*5113495bSYour Name 				       wmi_host_stats_event *stats_param);
2201*5113495bSYour Name 
2202*5113495bSYour Name QDF_STATUS (*extract_peer_stats_info)(wmi_unified_t wmi_handle, void *evt_buf,
2203*5113495bSYour Name 		uint32_t index, wmi_host_peer_stats_info *peer_stats_info);
2204*5113495bSYour Name 
2205*5113495bSYour Name QDF_STATUS
2206*5113495bSYour Name (*extract_peer_tx_pkt_per_mcs)(wmi_unified_t wmi_handle, void *evt_buf,
2207*5113495bSYour Name 			       uint32_t index,
2208*5113495bSYour Name 			       wmi_host_peer_stats_info *peer_stats_info);
2209*5113495bSYour Name QDF_STATUS
2210*5113495bSYour Name (*extract_peer_rx_pkt_per_mcs)(wmi_unified_t wmi_handle, void *evt_buf,
2211*5113495bSYour Name 			       uint32_t index,
2212*5113495bSYour Name 			       wmi_host_peer_stats_info *peer_stats_info);
2213*5113495bSYour Name 
2214*5113495bSYour Name #endif /* QCA_SUPPORT_MC_CP_STATS */
2215*5113495bSYour Name 
2216*5113495bSYour Name QDF_STATUS
2217*5113495bSYour Name (*extract_vdev_prb_fils_stats)(wmi_unified_t wmi_handle,
2218*5113495bSYour Name 			       void *evt_buf, uint32_t index,
2219*5113495bSYour Name 			       struct wmi_host_vdev_prb_fils_stats *vdev_stats);
2220*5113495bSYour Name 
2221*5113495bSYour Name #ifdef OL_ATH_SMART_LOGGING
2222*5113495bSYour Name QDF_STATUS (*extract_smartlog_event)(wmi_unified_t wmi_handle, void *evt_buf,
2223*5113495bSYour Name 				     struct wmi_debug_fatal_events *event);
2224*5113495bSYour Name #endif /* OL_ATH_SMART_LOGGING */
2225*5113495bSYour Name QDF_STATUS (*send_power_dbg_cmd)(wmi_unified_t wmi_handle,
2226*5113495bSYour Name 				struct wmi_power_dbg_params *param);
2227*5113495bSYour Name 
2228*5113495bSYour Name QDF_STATUS (*send_multiple_vdev_restart_req_cmd)(wmi_unified_t wmi_handle,
2229*5113495bSYour Name 				struct multiple_vdev_restart_params *param);
2230*5113495bSYour Name QDF_STATUS (*send_multiple_vdev_set_param_cmd)(
2231*5113495bSYour Name 		wmi_unified_t wmi_handle,
2232*5113495bSYour Name 		struct multiple_vdev_set_param *param);
2233*5113495bSYour Name #ifdef QCA_SUPPORT_AGILE_DFS
2234*5113495bSYour Name QDF_STATUS
2235*5113495bSYour Name (*send_adfs_ocac_abort_cmd)(wmi_unified_t wmi_handle,
2236*5113495bSYour Name 			    struct vdev_adfs_abort_params *param);
2237*5113495bSYour Name 
2238*5113495bSYour Name QDF_STATUS (*send_adfs_ch_cfg_cmd)(wmi_unified_t wmi_handle,
2239*5113495bSYour Name 				   struct vdev_adfs_ch_cfg_params *param);
2240*5113495bSYour Name #endif
2241*5113495bSYour Name QDF_STATUS (*send_fw_test_cmd)(wmi_unified_t wmi_handle,
2242*5113495bSYour Name 			       struct set_fwtest_params *wmi_fwtest);
2243*5113495bSYour Name 
2244*5113495bSYour Name QDF_STATUS (*send_wfa_test_cmd)(wmi_unified_t wmi_handle,
2245*5113495bSYour Name 				struct set_wfatest_params *wmi_wfatest);
2246*5113495bSYour Name #ifdef WLAN_FEATURE_ACTION_OUI
2247*5113495bSYour Name QDF_STATUS (*send_action_oui_cmd)(wmi_unified_t wmi_handle,
2248*5113495bSYour Name 				  struct action_oui_request *req);
2249*5113495bSYour Name #endif /* WLAN_FEATURE_ACTION_OUI */
2250*5113495bSYour Name 
2251*5113495bSYour Name QDF_STATUS (*send_peer_rx_reorder_queue_setup_cmd)(wmi_unified_t wmi_handle,
2252*5113495bSYour Name 		struct rx_reorder_queue_setup_params *param);
2253*5113495bSYour Name 
2254*5113495bSYour Name QDF_STATUS (*send_peer_multi_rx_reorder_queue_setup_cmd)(wmi_unified_t wmi_hdl,
2255*5113495bSYour Name 		struct multi_rx_reorder_queue_setup_params *param);
2256*5113495bSYour Name 
2257*5113495bSYour Name QDF_STATUS (*send_peer_rx_reorder_queue_remove_cmd)(wmi_unified_t wmi_handle,
2258*5113495bSYour Name 		struct rx_reorder_queue_remove_params *param);
2259*5113495bSYour Name 
2260*5113495bSYour Name QDF_STATUS (*extract_service_ready_ext)(
2261*5113495bSYour Name 			wmi_unified_t wmi_handle,
2262*5113495bSYour Name 			uint8_t *evt_buf,
2263*5113495bSYour Name 			struct wlan_psoc_host_service_ext_param *param);
2264*5113495bSYour Name 
2265*5113495bSYour Name QDF_STATUS (*extract_service_ready_ext2)(
2266*5113495bSYour Name 			wmi_unified_t wmi_handle,
2267*5113495bSYour Name 			uint8_t *evt_buf,
2268*5113495bSYour Name 			struct wlan_psoc_host_service_ext2_param *param);
2269*5113495bSYour Name 
2270*5113495bSYour Name QDF_STATUS (*extract_dbs_or_sbs_service_ready_ext2)(
2271*5113495bSYour Name 			wmi_unified_t wmi_handle, uint8_t *event,
2272*5113495bSYour Name 			uint32_t *sbs_lower_band_end_freq);
2273*5113495bSYour Name 
2274*5113495bSYour Name QDF_STATUS (*extract_hw_mode_cap_service_ready_ext)(
2275*5113495bSYour Name 			wmi_unified_t wmi_handle,
2276*5113495bSYour Name 			uint8_t *evt_buf, uint8_t hw_mode_idx,
2277*5113495bSYour Name 			struct wlan_psoc_host_hw_mode_caps *param);
2278*5113495bSYour Name 
2279*5113495bSYour Name QDF_STATUS (*extract_mac_phy_cap_service_ready_ext)(
2280*5113495bSYour Name 			wmi_unified_t wmi_handle,
2281*5113495bSYour Name 			uint8_t *evt_buf,
2282*5113495bSYour Name 			uint8_t hw_mode_id,
2283*5113495bSYour Name 			uint8_t phy_id,
2284*5113495bSYour Name 			struct wlan_psoc_host_mac_phy_caps *param);
2285*5113495bSYour Name 
2286*5113495bSYour Name QDF_STATUS (*extract_mac_phy_cap_service_ready_ext2)(
2287*5113495bSYour Name 			wmi_unified_t wmi_handle,
2288*5113495bSYour Name 			uint8_t *evt_buf,
2289*5113495bSYour Name 			uint8_t hw_mode_id,
2290*5113495bSYour Name 			uint8_t phy_id,
2291*5113495bSYour Name 			uint8_t phy_idx,
2292*5113495bSYour Name 			struct wlan_psoc_host_mac_phy_caps_ext2 *mac_phy_cap);
2293*5113495bSYour Name 
2294*5113495bSYour Name QDF_STATUS (*extract_reg_cap_service_ready_ext)(
2295*5113495bSYour Name 			wmi_unified_t wmi_handle,
2296*5113495bSYour Name 			uint8_t *evt_buf, uint8_t phy_idx,
2297*5113495bSYour Name 			struct wlan_psoc_host_hal_reg_capabilities_ext *param);
2298*5113495bSYour Name 
2299*5113495bSYour Name QDF_STATUS (*extract_dbr_ring_cap_service_ready_ext)(
2300*5113495bSYour Name 			wmi_unified_t wmi_handle,
2301*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2302*5113495bSYour Name 			struct wlan_psoc_host_dbr_ring_caps *param);
2303*5113495bSYour Name 
2304*5113495bSYour Name QDF_STATUS (*extract_dbr_ring_cap_service_ready_ext2)(
2305*5113495bSYour Name 			wmi_unified_t wmi_handle,
2306*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2307*5113495bSYour Name 			struct wlan_psoc_host_dbr_ring_caps *param);
2308*5113495bSYour Name 
2309*5113495bSYour Name QDF_STATUS (*extract_scan_radio_cap_service_ready_ext2)(
2310*5113495bSYour Name 			wmi_unified_t wmi_handle,
2311*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2312*5113495bSYour Name 			struct wlan_psoc_host_scan_radio_caps *param);
2313*5113495bSYour Name 
2314*5113495bSYour Name QDF_STATUS (*extract_msdu_idx_qtype_map_service_ready_ext2)(
2315*5113495bSYour Name 			wmi_unified_t wmi_handle,
2316*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2317*5113495bSYour Name 			uint8_t *msdu_qtype);
2318*5113495bSYour Name 
2319*5113495bSYour Name QDF_STATUS (*extract_sw_cal_ver_ext2)(wmi_unified_t wmi_handle,
2320*5113495bSYour Name 				      uint8_t *event,
2321*5113495bSYour Name 				      struct wmi_host_sw_cal_ver *cal);
2322*5113495bSYour Name 
2323*5113495bSYour Name QDF_STATUS (*extract_scaling_params_service_ready_ext)(
2324*5113495bSYour Name 			wmi_unified_t wmi_handle,
2325*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2326*5113495bSYour Name 			struct wlan_psoc_host_spectral_scaling_params *param);
2327*5113495bSYour Name 
2328*5113495bSYour Name QDF_STATUS (*extract_sar_cap_service_ready_ext)(
2329*5113495bSYour Name 		wmi_unified_t wmi_handle,
2330*5113495bSYour Name 		uint8_t *evt_buf,
2331*5113495bSYour Name 		struct wlan_psoc_host_service_ext_param *ext_param);
2332*5113495bSYour Name 
2333*5113495bSYour Name #ifdef WLAN_SUPPORT_TWT
2334*5113495bSYour Name QDF_STATUS (*extract_twt_cap_service_ready_ext2)(
2335*5113495bSYour Name 		wmi_unified_t wmi_handle,
2336*5113495bSYour Name 		uint8_t *evt_buf,
2337*5113495bSYour Name 		struct wmi_twt_cap_bitmap_params *var);
2338*5113495bSYour Name #endif
2339*5113495bSYour Name 
2340*5113495bSYour Name #ifdef WMI_DBR_SUPPORT
2341*5113495bSYour Name QDF_STATUS (*send_dbr_cfg_cmd)(wmi_unified_t wmi_handle,
2342*5113495bSYour Name 				   struct direct_buf_rx_cfg_req *cfg);
2343*5113495bSYour Name 
2344*5113495bSYour Name QDF_STATUS (*extract_dbr_buf_release_fixed)(
2345*5113495bSYour Name 			wmi_unified_t wmi_handle,
2346*5113495bSYour Name 			uint8_t *evt_buf,
2347*5113495bSYour Name 			struct direct_buf_rx_rsp *param);
2348*5113495bSYour Name 
2349*5113495bSYour Name QDF_STATUS (*extract_dbr_buf_release_entry)(
2350*5113495bSYour Name 			wmi_unified_t wmi_handle,
2351*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2352*5113495bSYour Name 			struct direct_buf_rx_entry *param);
2353*5113495bSYour Name 
2354*5113495bSYour Name QDF_STATUS (*extract_dbr_buf_metadata)(
2355*5113495bSYour Name 			wmi_unified_t wmi_handle,
2356*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2357*5113495bSYour Name 			struct direct_buf_rx_metadata *param);
2358*5113495bSYour Name 
2359*5113495bSYour Name QDF_STATUS (*extract_dbr_buf_cv_metadata)(
2360*5113495bSYour Name 			wmi_unified_t wmi_handle,
2361*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2362*5113495bSYour Name 			struct direct_buf_rx_cv_metadata *param);
2363*5113495bSYour Name 
2364*5113495bSYour Name QDF_STATUS (*extract_dbr_buf_cqi_metadata)(
2365*5113495bSYour Name 			wmi_unified_t wmi_handle,
2366*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
2367*5113495bSYour Name 			struct direct_buf_rx_cqi_metadata *param);
2368*5113495bSYour Name #endif
2369*5113495bSYour Name 
2370*5113495bSYour Name QDF_STATUS (*extract_pdev_utf_event)(wmi_unified_t wmi_hdl,
2371*5113495bSYour Name 				     uint8_t *evt_buf,
2372*5113495bSYour Name 				     struct wmi_host_pdev_utf_event *param);
2373*5113495bSYour Name 
2374*5113495bSYour Name QDF_STATUS (*extract_pdev_qvit_event)(wmi_unified_t wmi_hdl,
2375*5113495bSYour Name 				     uint8_t *evt_buf,
2376*5113495bSYour Name 				     struct wmi_host_pdev_qvit_event *param);
2377*5113495bSYour Name 
2378*5113495bSYour Name uint16_t (*wmi_set_htc_tx_tag)(wmi_unified_t wmi_handle,
2379*5113495bSYour Name 				wmi_buf_t buf, uint32_t cmd_id);
2380*5113495bSYour Name 
2381*5113495bSYour Name QDF_STATUS (*extract_vdev_peer_delete_all_resp)(
2382*5113495bSYour Name 		wmi_unified_t wmi_handle,
2383*5113495bSYour Name 		void *evt_buf,
2384*5113495bSYour Name 		struct peer_delete_all_response *peer_delete_all_rsp);
2385*5113495bSYour Name 
2386*5113495bSYour Name QDF_STATUS (*extract_vdev_peer_delete_all_response_event)(
2387*5113495bSYour Name 		wmi_unified_t wmi_handle,
2388*5113495bSYour Name 		void *evt_buf,
2389*5113495bSYour Name 		struct peer_delete_all_response *param);
2390*5113495bSYour Name 
2391*5113495bSYour Name bool (*is_management_record)(uint32_t cmd_id);
2392*5113495bSYour Name bool (*is_diag_event)(uint32_t event_id);
2393*5113495bSYour Name bool (*is_force_fw_hang_cmd)(uint32_t event_id);
2394*5113495bSYour Name uint8_t *(*wmi_id_to_name)(uint32_t cmd_id);
2395*5113495bSYour Name QDF_STATUS (*send_dfs_phyerr_offload_en_cmd)(wmi_unified_t wmi_handle,
2396*5113495bSYour Name 		uint32_t pdev_id);
2397*5113495bSYour Name QDF_STATUS (*send_dfs_phyerr_offload_dis_cmd)(wmi_unified_t wmi_handle,
2398*5113495bSYour Name 		uint32_t pdev_id);
2399*5113495bSYour Name QDF_STATUS (*extract_reg_chan_list_update_event)(wmi_unified_t wmi_handle,
2400*5113495bSYour Name 						 uint8_t *evt_buf,
2401*5113495bSYour Name 						 struct cur_regulatory_info
2402*5113495bSYour Name 						 *reg_info,
2403*5113495bSYour Name 						 uint32_t len);
2404*5113495bSYour Name #ifdef CONFIG_BAND_6GHZ
2405*5113495bSYour Name QDF_STATUS (*extract_reg_chan_list_ext_update_event)(wmi_unified_t wmi_handle,
2406*5113495bSYour Name 						     uint8_t *evt_buf,
2407*5113495bSYour Name 						     struct cur_regulatory_info
2408*5113495bSYour Name 						     *reg_info,
2409*5113495bSYour Name 						     uint32_t len);
2410*5113495bSYour Name #ifdef CONFIG_AFC_SUPPORT
2411*5113495bSYour Name QDF_STATUS
2412*5113495bSYour Name (*extract_afc_event)(wmi_unified_t wmi_handle,
2413*5113495bSYour Name 		     uint8_t *evt_buf,
2414*5113495bSYour Name 		     struct afc_regulatory_info *reg_info,
2415*5113495bSYour Name 		     uint32_t len);
2416*5113495bSYour Name #endif
2417*5113495bSYour Name #endif
2418*5113495bSYour Name 
2419*5113495bSYour Name QDF_STATUS (*extract_reg_11d_new_country_event)(wmi_unified_t wmi_handle,
2420*5113495bSYour Name 		uint8_t *evt_buf,
2421*5113495bSYour Name 		struct reg_11d_new_country *reg_11d_country,
2422*5113495bSYour Name 		uint32_t len);
2423*5113495bSYour Name 
2424*5113495bSYour Name QDF_STATUS (*extract_reg_ch_avoid_event)(wmi_unified_t wmi_handle,
2425*5113495bSYour Name 		uint8_t *evt_buf,
2426*5113495bSYour Name 		struct ch_avoid_ind_type *ch_avoid_event,
2427*5113495bSYour Name 		uint32_t len);
2428*5113495bSYour Name 
2429*5113495bSYour Name #ifdef WLAN_SUPPORT_RF_CHARACTERIZATION
2430*5113495bSYour Name QDF_STATUS (*extract_num_rf_characterization_entries)(wmi_unified_t wmi_hdl,
2431*5113495bSYour Name 				uint8_t *evt_buf,
2432*5113495bSYour Name 				uint32_t *num_rf_characterization_entries);
2433*5113495bSYour Name 
2434*5113495bSYour Name 
2435*5113495bSYour Name QDF_STATUS (*extract_rf_characterization_entries)(wmi_unified_t wmi_handle,
2436*5113495bSYour Name 	uint8_t *evt_buf,
2437*5113495bSYour Name 	uint32_t num_rf_characterization_entries,
2438*5113495bSYour Name 	struct wmi_host_rf_characterization_event_param *rf_characterization_entries);
2439*5113495bSYour Name #endif
2440*5113495bSYour Name 
2441*5113495bSYour Name QDF_STATUS (*extract_chainmask_tables)(wmi_unified_t wmi_handle,
2442*5113495bSYour Name 		uint8_t *evt_buf,
2443*5113495bSYour Name 		struct wlan_psoc_host_chainmask_table *chainmask_table);
2444*5113495bSYour Name 
2445*5113495bSYour Name QDF_STATUS (*send_get_rcpi_cmd)(wmi_unified_t wmi_handle,
2446*5113495bSYour Name 				struct rcpi_req *get_rcpi_param);
2447*5113495bSYour Name 
2448*5113495bSYour Name QDF_STATUS (*extract_rcpi_response_event)(wmi_unified_t wmi_handle,
2449*5113495bSYour Name 					  void *evt_buf,
2450*5113495bSYour Name 					  struct rcpi_res *res);
2451*5113495bSYour Name 
2452*5113495bSYour Name QDF_STATUS (*extract_dfs_cac_complete_event)(wmi_unified_t wmi_handle,
2453*5113495bSYour Name 		uint8_t *evt_buf,
2454*5113495bSYour Name 		uint32_t *vdev_id,
2455*5113495bSYour Name 		uint32_t len);
2456*5113495bSYour Name QDF_STATUS
2457*5113495bSYour Name (*extract_dfs_ocac_complete_event)(wmi_unified_t wmi_handle,
2458*5113495bSYour Name 				   uint8_t *evt_buf,
2459*5113495bSYour Name 				   struct vdev_adfs_complete_status *oca_stats);
2460*5113495bSYour Name 
2461*5113495bSYour Name QDF_STATUS (*extract_dfs_radar_detection_event)(wmi_unified_t wmi_handle,
2462*5113495bSYour Name 		uint8_t *evt_buf,
2463*5113495bSYour Name 		struct radar_found_info *radar_found,
2464*5113495bSYour Name 		uint32_t len);
2465*5113495bSYour Name QDF_STATUS (*extract_wlan_radar_event_info)(wmi_unified_t wmi_handle,
2466*5113495bSYour Name 		uint8_t *evt_buf,
2467*5113495bSYour Name 		struct radar_event_info *wlan_radar_event,
2468*5113495bSYour Name 		uint32_t len);
2469*5113495bSYour Name 
2470*5113495bSYour Name QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
2471*5113495bSYour Name 				struct set_country *param);
2472*5113495bSYour Name 
2473*5113495bSYour Name uint32_t (*convert_pdev_id_host_to_target)(wmi_unified_t wmi_handle,
2474*5113495bSYour Name 					   uint32_t pdev_id);
2475*5113495bSYour Name uint32_t (*convert_pdev_id_target_to_host)(wmi_unified_t wmi_handle,
2476*5113495bSYour Name 					   uint32_t pdev_id);
2477*5113495bSYour Name uint32_t (*convert_phy_id_host_to_target)(wmi_unified_t wmi_handle,
2478*5113495bSYour Name 					  uint32_t phy_id);
2479*5113495bSYour Name uint32_t (*convert_phy_id_target_to_host)(wmi_unified_t wmi_handle,
2480*5113495bSYour Name 					  uint32_t phy_id);
2481*5113495bSYour Name uint32_t (*convert_host_vdev_param_tlv)(uint32_t param_id);
2482*5113495bSYour Name 
2483*5113495bSYour Name /*
2484*5113495bSYour Name  * For MCL, convert_pdev_id_host_to_target returns legacy pdev id value.
2485*5113495bSYour Name  * But in converged firmware, WMI_SET_CURRENT_COUNTRY_CMDID expects target
2486*5113495bSYour Name  * mapping of pdev_id to give only one WMI_REG_CHAN_LIST_CC_EVENTID.
2487*5113495bSYour Name  * wmi_pdev_id_conversion_enable cannot be used since it overwrites
2488*5113495bSYour Name  * convert_pdev_id_host_to_target which effects legacy cases.
2489*5113495bSYour Name  * Below two commands: convert_host_pdev_id_to_target and
2490*5113495bSYour Name  * convert_target_pdev_id_to_host should be used for any WMI
2491*5113495bSYour Name  * command/event where FW expects target/host mapping of pdev_id respectively.
2492*5113495bSYour Name  */
2493*5113495bSYour Name uint32_t (*convert_host_pdev_id_to_target)(wmi_unified_t wmi_handle,
2494*5113495bSYour Name 					   uint32_t pdev_id);
2495*5113495bSYour Name uint32_t (*convert_target_pdev_id_to_host)(wmi_unified_t wmi_handle,
2496*5113495bSYour Name 					   uint32_t pdev_id);
2497*5113495bSYour Name 
2498*5113495bSYour Name uint32_t (*convert_host_phy_id_to_target)(wmi_unified_t wmi_handle,
2499*5113495bSYour Name 					  uint32_t phy_id);
2500*5113495bSYour Name uint32_t (*convert_target_phy_id_to_host)(wmi_unified_t wmi_handle,
2501*5113495bSYour Name 					  uint32_t phy_id);
2502*5113495bSYour Name 
2503*5113495bSYour Name QDF_STATUS (*send_user_country_code_cmd)(wmi_unified_t wmi_handle,
2504*5113495bSYour Name 		uint8_t pdev_id, struct cc_regdmn_s *rd);
2505*5113495bSYour Name 
2506*5113495bSYour Name QDF_STATUS (*send_wds_entry_list_cmd)(wmi_unified_t wmi_handle);
2507*5113495bSYour Name QDF_STATUS (*extract_wds_entry)(wmi_unified_t wmi_handle,
2508*5113495bSYour Name 		uint8_t *evt_buf,
2509*5113495bSYour Name 		struct wdsentry *wds_entry,
2510*5113495bSYour Name 		u_int32_t idx);
2511*5113495bSYour Name 
2512*5113495bSYour Name #ifdef WLAN_FEATURE_NAN
2513*5113495bSYour Name QDF_STATUS (*send_ndp_initiator_req_cmd)(wmi_unified_t wmi_handle,
2514*5113495bSYour Name 				struct nan_datapath_initiator_req *req);
2515*5113495bSYour Name QDF_STATUS (*send_ndp_responder_req_cmd)(wmi_unified_t wmi_handle,
2516*5113495bSYour Name 				struct nan_datapath_responder_req *req);
2517*5113495bSYour Name QDF_STATUS (*send_ndp_end_req_cmd)(wmi_unified_t wmi_handle,
2518*5113495bSYour Name 				struct nan_datapath_end_req *req);
2519*5113495bSYour Name QDF_STATUS (*send_terminate_all_ndps_req_cmd)(wmi_unified_t wmi_handle,
2520*5113495bSYour Name 					      uint32_t vdev_id);
2521*5113495bSYour Name 
2522*5113495bSYour Name QDF_STATUS (*extract_ndp_initiator_rsp)(wmi_unified_t wmi_handle,
2523*5113495bSYour Name 		uint8_t *data, struct nan_datapath_initiator_rsp *rsp);
2524*5113495bSYour Name QDF_STATUS (*extract_ndp_ind)(wmi_unified_t wmi_handle,
2525*5113495bSYour Name 		uint8_t *data, struct nan_datapath_indication_event *ind);
2526*5113495bSYour Name QDF_STATUS (*extract_nan_msg)(uint8_t *data,
2527*5113495bSYour Name 			      struct nan_dump_msg *msg);
2528*5113495bSYour Name QDF_STATUS (*extract_ndp_confirm)(wmi_unified_t wmi_handle,
2529*5113495bSYour Name 		uint8_t *data, struct nan_datapath_confirm_event *ev);
2530*5113495bSYour Name QDF_STATUS (*extract_ndp_responder_rsp)(wmi_unified_t wmi_handle,
2531*5113495bSYour Name 		uint8_t *data, struct nan_datapath_responder_rsp *rsp);
2532*5113495bSYour Name QDF_STATUS (*extract_ndp_end_rsp)(wmi_unified_t wmi_handle,
2533*5113495bSYour Name 		uint8_t *data, struct nan_datapath_end_rsp_event *rsp);
2534*5113495bSYour Name QDF_STATUS (*extract_ndp_end_ind)(wmi_unified_t wmi_handle,
2535*5113495bSYour Name 		uint8_t *data, struct nan_datapath_end_indication_event **ind);
2536*5113495bSYour Name QDF_STATUS (*extract_ndp_sch_update)(wmi_unified_t wmi_handle,
2537*5113495bSYour Name 		uint8_t *data, struct nan_datapath_sch_update_event *ind);
2538*5113495bSYour Name QDF_STATUS (*extract_ndp_host_event)(wmi_unified_t wmi_handle, uint8_t *data,
2539*5113495bSYour Name 		struct nan_datapath_host_event *evt);
2540*5113495bSYour Name #endif /* WLAN_FEATURE_NAN */
2541*5113495bSYour Name 
2542*5113495bSYour Name QDF_STATUS (*send_obss_detection_cfg_cmd)(wmi_unified_t wmi_handle,
2543*5113495bSYour Name 		struct wmi_obss_detection_cfg_param *obss_cfg_param);
2544*5113495bSYour Name QDF_STATUS (*extract_obss_detection_info)(uint8_t *evt_buf,
2545*5113495bSYour Name 					  struct wmi_obss_detect_info *info);
2546*5113495bSYour Name #if defined(WLAN_SUPPORT_FILS) || defined(CONFIG_BAND_6GHZ)
2547*5113495bSYour Name QDF_STATUS (*send_vdev_fils_enable_cmd)(wmi_unified_t wmi_handle,
2548*5113495bSYour Name 					struct config_fils_params *param);
2549*5113495bSYour Name #endif
2550*5113495bSYour Name 
2551*5113495bSYour Name QDF_STATUS
2552*5113495bSYour Name (*send_roam_scan_stats_cmd)(wmi_unified_t wmi_handle,
2553*5113495bSYour Name 			    struct wmi_roam_scan_stats_req *params);
2554*5113495bSYour Name 
2555*5113495bSYour Name QDF_STATUS
2556*5113495bSYour Name (*extract_roam_scan_stats_res_evt)(wmi_unified_t wmi_handle,
2557*5113495bSYour Name 				   void *evt_buf,
2558*5113495bSYour Name 				   uint32_t *vdev_id,
2559*5113495bSYour Name 				   struct wmi_roam_scan_stats_res **res_param);
2560*5113495bSYour Name QDF_STATUS
2561*5113495bSYour Name (*extract_offload_bcn_tx_status_evt)(wmi_unified_t wmi_handle,
2562*5113495bSYour Name 				     void *evt_buf, uint32_t *vdev_id,
2563*5113495bSYour Name 				     uint32_t *tx_status);
2564*5113495bSYour Name 
2565*5113495bSYour Name QDF_STATUS
2566*5113495bSYour Name (*extract_roam_trigger_stats)(wmi_unified_t wmi_handle,
2567*5113495bSYour Name 			      void *evt_buf,
2568*5113495bSYour Name 			      struct wmi_roam_trigger_info *trig,
2569*5113495bSYour Name 			      uint8_t idx, uint8_t btm_idx);
2570*5113495bSYour Name 
2571*5113495bSYour Name QDF_STATUS
2572*5113495bSYour Name (*extract_roam_scan_stats)(wmi_unified_t wmi_handle,
2573*5113495bSYour Name 			   void *evt_buf,
2574*5113495bSYour Name 			   struct wmi_roam_scan_data *dst, uint8_t idx,
2575*5113495bSYour Name 			   uint8_t chan_idx, uint8_t ap_idx);
2576*5113495bSYour Name 
2577*5113495bSYour Name QDF_STATUS
2578*5113495bSYour Name (*extract_roam_result_stats)(wmi_unified_t wmi_handle,
2579*5113495bSYour Name 			     void *evt_buf,
2580*5113495bSYour Name 			     struct wmi_roam_result *dst,
2581*5113495bSYour Name 			     uint8_t idx);
2582*5113495bSYour Name 
2583*5113495bSYour Name QDF_STATUS
2584*5113495bSYour Name (*extract_roam_11kv_stats)(wmi_unified_t wmi_handle,
2585*5113495bSYour Name 			   void *evt_buf,
2586*5113495bSYour Name 			   struct wmi_neighbor_report_data *dst,
2587*5113495bSYour Name 			   uint8_t idx, uint8_t rpt_idx);
2588*5113495bSYour Name 
2589*5113495bSYour Name void (*wmi_pdev_id_conversion_enable)(wmi_unified_t wmi_handle,
2590*5113495bSYour Name 				      uint32_t *pdev_map,
2591*5113495bSYour Name 				      uint8_t size);
2592*5113495bSYour Name void (*send_time_stamp_sync_cmd)(wmi_unified_t wmi_handle);
2593*5113495bSYour Name void (*wmi_free_allocated_event)(uint32_t cmd_event_id,
2594*5113495bSYour Name 				void **wmi_cmd_struct_ptr);
2595*5113495bSYour Name int (*wmi_check_and_pad_event)(void *os_handle, void *param_struc_ptr,
2596*5113495bSYour Name 				uint32_t param_buf_len,
2597*5113495bSYour Name 				uint32_t wmi_cmd_event_id,
2598*5113495bSYour Name 				void **wmi_cmd_struct_ptr);
2599*5113495bSYour Name int (*wmi_check_command_params)(void *os_handle, void *param_struc_ptr,
2600*5113495bSYour Name 				uint32_t param_buf_len,
2601*5113495bSYour Name 				uint32_t wmi_cmd_event_id);
2602*5113495bSYour Name #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
2603*5113495bSYour Name QDF_STATUS (*send_twt_enable_cmd)(wmi_unified_t wmi_handle,
2604*5113495bSYour Name 			struct twt_enable_param *params);
2605*5113495bSYour Name 
2606*5113495bSYour Name QDF_STATUS (*send_twt_disable_cmd)(wmi_unified_t wmi_handle,
2607*5113495bSYour Name 			struct twt_disable_param *params);
2608*5113495bSYour Name 
2609*5113495bSYour Name QDF_STATUS (*send_twt_add_dialog_cmd)(wmi_unified_t wmi_handle,
2610*5113495bSYour Name 			struct twt_add_dialog_param *params);
2611*5113495bSYour Name 
2612*5113495bSYour Name QDF_STATUS (*send_twt_del_dialog_cmd)(wmi_unified_t wmi_handle,
2613*5113495bSYour Name 			struct twt_del_dialog_param *params);
2614*5113495bSYour Name 
2615*5113495bSYour Name QDF_STATUS (*send_twt_pause_dialog_cmd)(wmi_unified_t wmi_handle,
2616*5113495bSYour Name 			struct twt_pause_dialog_cmd_param *params);
2617*5113495bSYour Name 
2618*5113495bSYour Name QDF_STATUS (*send_twt_nudge_dialog_cmd)(wmi_unified_t wmi_handle,
2619*5113495bSYour Name 			struct twt_nudge_dialog_cmd_param *params);
2620*5113495bSYour Name 
2621*5113495bSYour Name QDF_STATUS (*send_twt_resume_dialog_cmd)(wmi_unified_t wmi_handle,
2622*5113495bSYour Name 			struct twt_resume_dialog_cmd_param *params);
2623*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
2624*5113495bSYour Name QDF_STATUS (*send_twt_btwt_invite_sta_cmd)(wmi_unified_t wmi_handle,
2625*5113495bSYour Name 			struct twt_btwt_invite_sta_cmd_param *params);
2626*5113495bSYour Name 
2627*5113495bSYour Name QDF_STATUS (*send_twt_btwt_remove_sta_cmd)(wmi_unified_t wmi_handle,
2628*5113495bSYour Name 			struct twt_btwt_remove_sta_cmd_param *params);
2629*5113495bSYour Name #endif
2630*5113495bSYour Name 
2631*5113495bSYour Name QDF_STATUS (*extract_twt_enable_comp_event)(wmi_unified_t wmi_handle,
2632*5113495bSYour Name 		uint8_t *evt_buf,
2633*5113495bSYour Name 		struct twt_enable_complete_event_param *params);
2634*5113495bSYour Name 
2635*5113495bSYour Name QDF_STATUS (*extract_twt_disable_comp_event)(wmi_unified_t wmi_handle,
2636*5113495bSYour Name 		uint8_t *evt_buf,
2637*5113495bSYour Name 		struct twt_disable_complete_event_param *params);
2638*5113495bSYour Name 
2639*5113495bSYour Name QDF_STATUS (*extract_twt_add_dialog_comp_event)(wmi_unified_t wmi_handle,
2640*5113495bSYour Name 		uint8_t *evt_buf,
2641*5113495bSYour Name 		struct twt_add_dialog_complete_event_param *params);
2642*5113495bSYour Name 
2643*5113495bSYour Name QDF_STATUS (*extract_twt_add_dialog_comp_additional_params)
2644*5113495bSYour Name 		(
2645*5113495bSYour Name 		 wmi_unified_t wmi_handle, uint8_t *evt_buf,
2646*5113495bSYour Name 		 uint32_t evt_buf_len, uint32_t idx,
2647*5113495bSYour Name 		 struct twt_add_dialog_additional_params *additional_params
2648*5113495bSYour Name 		);
2649*5113495bSYour Name 
2650*5113495bSYour Name QDF_STATUS (*extract_twt_del_dialog_comp_event)(wmi_unified_t wmi_handle,
2651*5113495bSYour Name 		uint8_t *evt_buf,
2652*5113495bSYour Name 		struct twt_del_dialog_complete_event_param *params);
2653*5113495bSYour Name 
2654*5113495bSYour Name QDF_STATUS (*extract_twt_pause_dialog_comp_event)(wmi_unified_t wmi_handle,
2655*5113495bSYour Name 		uint8_t *evt_buf,
2656*5113495bSYour Name 		struct twt_pause_dialog_complete_event_param *params);
2657*5113495bSYour Name 
2658*5113495bSYour Name QDF_STATUS (*extract_twt_nudge_dialog_comp_event)(wmi_unified_t wmi_handle,
2659*5113495bSYour Name 		uint8_t *evt_buf,
2660*5113495bSYour Name 		struct twt_nudge_dialog_complete_event_param *params);
2661*5113495bSYour Name 
2662*5113495bSYour Name QDF_STATUS (*extract_twt_resume_dialog_comp_event)(wmi_unified_t wmi_handle,
2663*5113495bSYour Name 		uint8_t *evt_buf,
2664*5113495bSYour Name 		struct twt_resume_dialog_complete_event_param *params);
2665*5113495bSYour Name 
2666*5113495bSYour Name QDF_STATUS (*extract_twt_notify_event)(wmi_unified_t wmi_handle,
2667*5113495bSYour Name 		uint8_t *evt_buf,
2668*5113495bSYour Name 		struct twt_notify_event_param *params);
2669*5113495bSYour Name QDF_STATUS (*extract_twt_ack_comp_event)(wmi_unified_t wmi_handle,
2670*5113495bSYour Name 		uint8_t *evt_buf,
2671*5113495bSYour Name 		struct twt_ack_complete_event_param *params);
2672*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
2673*5113495bSYour Name QDF_STATUS (*extract_twt_btwt_invite_sta_comp_event)(wmi_unified_t wmi_handle,
2674*5113495bSYour Name 		uint8_t *evt_buf,
2675*5113495bSYour Name 		struct twt_btwt_invite_sta_complete_event_param *params);
2676*5113495bSYour Name 
2677*5113495bSYour Name QDF_STATUS (*extract_twt_btwt_remove_sta_comp_event)(wmi_unified_t wmi_handle,
2678*5113495bSYour Name 		uint8_t *evt_buf,
2679*5113495bSYour Name 		struct twt_btwt_remove_sta_complete_event_param *params);
2680*5113495bSYour Name #endif
2681*5113495bSYour Name 
2682*5113495bSYour Name QDF_STATUS(*extract_twt_session_stats_event)
2683*5113495bSYour Name 		(
2684*5113495bSYour Name 		 wmi_unified_t wmi_handle,
2685*5113495bSYour Name 		 uint8_t *evt_buf,
2686*5113495bSYour Name 		 struct twt_session_stats_event_param *params
2687*5113495bSYour Name 		);
2688*5113495bSYour Name QDF_STATUS(*extract_twt_session_stats_data)
2689*5113495bSYour Name 		(
2690*5113495bSYour Name 		 wmi_unified_t wmi_handle,
2691*5113495bSYour Name 		 uint8_t *evt_buf,
2692*5113495bSYour Name 		 struct twt_session_stats_event_param *params,
2693*5113495bSYour Name 		 struct twt_session_stats_info *session,
2694*5113495bSYour Name 		 uint32_t idx
2695*5113495bSYour Name 		);
2696*5113495bSYour Name 
2697*5113495bSYour Name #elif defined(WLAN_SUPPORT_TWT)
2698*5113495bSYour Name QDF_STATUS (*send_twt_enable_cmd)(wmi_unified_t wmi_handle,
2699*5113495bSYour Name 			struct wmi_twt_enable_param *params);
2700*5113495bSYour Name 
2701*5113495bSYour Name QDF_STATUS (*send_twt_disable_cmd)(wmi_unified_t wmi_handle,
2702*5113495bSYour Name 			struct wmi_twt_disable_param *params);
2703*5113495bSYour Name 
2704*5113495bSYour Name QDF_STATUS (*send_twt_add_dialog_cmd)(wmi_unified_t wmi_handle,
2705*5113495bSYour Name 			struct wmi_twt_add_dialog_param *params);
2706*5113495bSYour Name 
2707*5113495bSYour Name QDF_STATUS (*send_twt_del_dialog_cmd)(wmi_unified_t wmi_handle,
2708*5113495bSYour Name 			struct wmi_twt_del_dialog_param *params);
2709*5113495bSYour Name 
2710*5113495bSYour Name QDF_STATUS (*send_twt_pause_dialog_cmd)(wmi_unified_t wmi_handle,
2711*5113495bSYour Name 			struct wmi_twt_pause_dialog_cmd_param *params);
2712*5113495bSYour Name 
2713*5113495bSYour Name QDF_STATUS (*send_twt_nudge_dialog_cmd)(wmi_unified_t wmi_handle,
2714*5113495bSYour Name 			struct wmi_twt_nudge_dialog_cmd_param *params);
2715*5113495bSYour Name 
2716*5113495bSYour Name QDF_STATUS (*send_twt_resume_dialog_cmd)(wmi_unified_t wmi_handle,
2717*5113495bSYour Name 			struct wmi_twt_resume_dialog_cmd_param *params);
2718*5113495bSYour Name 
2719*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
2720*5113495bSYour Name QDF_STATUS (*send_twt_btwt_invite_sta_cmd)(wmi_unified_t wmi_handle,
2721*5113495bSYour Name 			struct wmi_twt_btwt_invite_sta_cmd_param *params);
2722*5113495bSYour Name 
2723*5113495bSYour Name QDF_STATUS (*send_twt_btwt_remove_sta_cmd)(wmi_unified_t wmi_handle,
2724*5113495bSYour Name 			struct wmi_twt_btwt_remove_sta_cmd_param *params);
2725*5113495bSYour Name #endif
2726*5113495bSYour Name 
2727*5113495bSYour Name QDF_STATUS (*extract_twt_enable_comp_event)(wmi_unified_t wmi_handle,
2728*5113495bSYour Name 		uint8_t *evt_buf,
2729*5113495bSYour Name 		struct wmi_twt_enable_complete_event_param *params);
2730*5113495bSYour Name 
2731*5113495bSYour Name QDF_STATUS (*extract_twt_disable_comp_event)(wmi_unified_t wmi_handle,
2732*5113495bSYour Name 		uint8_t *evt_buf,
2733*5113495bSYour Name 		struct wmi_twt_disable_complete_event *params);
2734*5113495bSYour Name 
2735*5113495bSYour Name QDF_STATUS (*extract_twt_add_dialog_comp_event)(wmi_unified_t wmi_handle,
2736*5113495bSYour Name 		uint8_t *evt_buf,
2737*5113495bSYour Name 		struct wmi_twt_add_dialog_complete_event_param *params);
2738*5113495bSYour Name 
2739*5113495bSYour Name QDF_STATUS (*extract_twt_add_dialog_comp_additional_params)
2740*5113495bSYour Name 		(
2741*5113495bSYour Name 		 wmi_unified_t wmi_handle, uint8_t *evt_buf,
2742*5113495bSYour Name 		 uint32_t evt_buf_len, uint32_t idx,
2743*5113495bSYour Name 		 struct wmi_twt_add_dialog_additional_params *additional_params
2744*5113495bSYour Name 		);
2745*5113495bSYour Name 
2746*5113495bSYour Name QDF_STATUS (*extract_twt_del_dialog_comp_event)(wmi_unified_t wmi_handle,
2747*5113495bSYour Name 		uint8_t *evt_buf,
2748*5113495bSYour Name 		struct wmi_twt_del_dialog_complete_event_param *params);
2749*5113495bSYour Name 
2750*5113495bSYour Name QDF_STATUS (*extract_twt_pause_dialog_comp_event)(wmi_unified_t wmi_handle,
2751*5113495bSYour Name 		uint8_t *evt_buf,
2752*5113495bSYour Name 		struct wmi_twt_pause_dialog_complete_event_param *params);
2753*5113495bSYour Name 
2754*5113495bSYour Name QDF_STATUS (*extract_twt_nudge_dialog_comp_event)(wmi_unified_t wmi_handle,
2755*5113495bSYour Name 		uint8_t *evt_buf,
2756*5113495bSYour Name 		struct wmi_twt_nudge_dialog_complete_event_param *params);
2757*5113495bSYour Name 
2758*5113495bSYour Name QDF_STATUS (*extract_twt_resume_dialog_comp_event)(wmi_unified_t wmi_handle,
2759*5113495bSYour Name 		uint8_t *evt_buf,
2760*5113495bSYour Name 		struct wmi_twt_resume_dialog_complete_event_param *params);
2761*5113495bSYour Name 
2762*5113495bSYour Name QDF_STATUS (*extract_twt_notify_event)(wmi_unified_t wmi_handle,
2763*5113495bSYour Name 		uint8_t *evt_buf,
2764*5113495bSYour Name 		struct wmi_twt_notify_event_param *params);
2765*5113495bSYour Name QDF_STATUS (*extract_twt_ack_comp_event)(wmi_unified_t wmi_handle,
2766*5113495bSYour Name 		uint8_t *evt_buf,
2767*5113495bSYour Name 		struct wmi_twt_ack_complete_event_param *params);
2768*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
2769*5113495bSYour Name QDF_STATUS (*extract_twt_btwt_invite_sta_comp_event)(wmi_unified_t wmi_handle,
2770*5113495bSYour Name 		uint8_t *evt_buf,
2771*5113495bSYour Name 		struct wmi_twt_btwt_invite_sta_complete_event_param *params);
2772*5113495bSYour Name 
2773*5113495bSYour Name QDF_STATUS (*extract_twt_btwt_remove_sta_comp_event)(wmi_unified_t wmi_handle,
2774*5113495bSYour Name 		uint8_t *evt_buf,
2775*5113495bSYour Name 		struct wmi_twt_btwt_remove_sta_complete_event_param *params);
2776*5113495bSYour Name #endif
2777*5113495bSYour Name 
2778*5113495bSYour Name QDF_STATUS(*extract_twt_session_stats_event)
2779*5113495bSYour Name 		(
2780*5113495bSYour Name 		 wmi_unified_t wmi_handle,
2781*5113495bSYour Name 		 uint8_t *evt_buf,
2782*5113495bSYour Name 		 struct wmi_twt_session_stats_event_param *params
2783*5113495bSYour Name 		);
2784*5113495bSYour Name QDF_STATUS(*extract_twt_session_stats_data)
2785*5113495bSYour Name 		(
2786*5113495bSYour Name 		 wmi_unified_t wmi_handle,
2787*5113495bSYour Name 		 uint8_t *evt_buf,
2788*5113495bSYour Name 		 struct wmi_twt_session_stats_event_param *params,
2789*5113495bSYour Name 		 struct wmi_host_twt_session_stats_info *session,
2790*5113495bSYour Name 		 uint32_t idx
2791*5113495bSYour Name 		);
2792*5113495bSYour Name #endif
2793*5113495bSYour Name 
2794*5113495bSYour Name #ifdef QCA_STANDALONE_SOUNDING_TRIGGER
2795*5113495bSYour Name QDF_STATUS (*extract_standalone_sounding_evt_params)
2796*5113495bSYour Name 		(
2797*5113495bSYour Name 		wmi_unified_t wmi_handle,
2798*5113495bSYour Name 		void *evt_buf,
2799*5113495bSYour Name 		struct wmi_host_standalone_sounding_evt_params *ss_params
2800*5113495bSYour Name 		);
2801*5113495bSYour Name #endif
2802*5113495bSYour Name 
2803*5113495bSYour Name #ifdef QCA_SUPPORT_CP_STATS
2804*5113495bSYour Name QDF_STATUS (*extract_cca_stats)(wmi_unified_t wmi_handle, void *evt_buf,
2805*5113495bSYour Name 				struct wmi_host_congestion_stats *stats);
2806*5113495bSYour Name #endif /* QCA_SUPPORT_CP_STATS */
2807*5113495bSYour Name 
2808*5113495bSYour Name #if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST)
2809*5113495bSYour Name QDF_STATUS (*send_dfs_average_radar_params_cmd)(
2810*5113495bSYour Name 		wmi_unified_t wmi_handle,
2811*5113495bSYour Name 		struct dfs_radar_found_params *params);
2812*5113495bSYour Name 
2813*5113495bSYour Name QDF_STATUS (*extract_dfs_status_from_fw)(wmi_unified_t wmi_handle,
2814*5113495bSYour Name 					 void *evt_buf,
2815*5113495bSYour Name 					 uint32_t *dfs_status_check);
2816*5113495bSYour Name #endif
2817*5113495bSYour Name 
2818*5113495bSYour Name 
2819*5113495bSYour Name #ifdef OBSS_PD
2820*5113495bSYour Name QDF_STATUS (*send_obss_spatial_reuse_set)(wmi_unified_t wmi_handle,
2821*5113495bSYour Name 		struct wmi_host_obss_spatial_reuse_set_param
2822*5113495bSYour Name 		*obss_spatial_reuse_param);
2823*5113495bSYour Name 
2824*5113495bSYour Name QDF_STATUS (*send_obss_spatial_reuse_set_def_thresh)(wmi_unified_t wmi_handle,
2825*5113495bSYour Name 		struct wmi_host_obss_spatial_reuse_set_def_thresh
2826*5113495bSYour Name 		*obss_spatial_reuse_param);
2827*5113495bSYour Name 
2828*5113495bSYour Name QDF_STATUS (*send_self_srg_bss_color_bitmap_set)(
2829*5113495bSYour Name 	wmi_unified_t wmi_handle, uint32_t bitmap_0,
2830*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
2831*5113495bSYour Name 
2832*5113495bSYour Name QDF_STATUS (*send_self_srg_partial_bssid_bitmap_set)(
2833*5113495bSYour Name 	wmi_unified_t wmi_handle, uint32_t bitmap_0,
2834*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
2835*5113495bSYour Name 
2836*5113495bSYour Name QDF_STATUS (*send_self_srg_obss_color_enable_bitmap)(
2837*5113495bSYour Name 	wmi_unified_t wmi_handle, uint32_t bitmap_0,
2838*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
2839*5113495bSYour Name 
2840*5113495bSYour Name QDF_STATUS (*send_self_srg_obss_bssid_enable_bitmap)(
2841*5113495bSYour Name 	wmi_unified_t wmi_handle, uint32_t bitmap_0,
2842*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
2843*5113495bSYour Name 
2844*5113495bSYour Name QDF_STATUS (*send_self_non_srg_obss_color_enable_bitmap)(
2845*5113495bSYour Name 	wmi_unified_t wmi_handle, uint32_t bitmap_0,
2846*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
2847*5113495bSYour Name 
2848*5113495bSYour Name QDF_STATUS (*send_self_non_srg_obss_bssid_enable_bitmap)(
2849*5113495bSYour Name 	wmi_unified_t wmi_handle, uint32_t bitmap_0,
2850*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
2851*5113495bSYour Name #endif
2852*5113495bSYour Name 
2853*5113495bSYour Name QDF_STATUS
2854*5113495bSYour Name (*extract_ctl_failsafe_check_ev_param)(
2855*5113495bSYour Name 		wmi_unified_t wmi_handle,
2856*5113495bSYour Name 		void *evt_buf,
2857*5113495bSYour Name 		struct wmi_host_pdev_ctl_failsafe_event *param);
2858*5113495bSYour Name 
2859*5113495bSYour Name QDF_STATUS (*send_peer_del_all_wds_entries_cmd)(wmi_unified_t wmi_handle,
2860*5113495bSYour Name 		struct peer_del_all_wds_entries_params *param);
2861*5113495bSYour Name 
2862*5113495bSYour Name #ifdef WLAN_CFR_ENABLE
2863*5113495bSYour Name QDF_STATUS
2864*5113495bSYour Name (*extract_cfr_peer_tx_event_param)(wmi_unified_t wmi_handle, void *evt_buf,
2865*5113495bSYour Name 				   wmi_cfr_peer_tx_event_param *peer_tx_event);
2866*5113495bSYour Name 
2867*5113495bSYour Name QDF_STATUS (*send_peer_cfr_capture_cmd)(wmi_unified_t wmi_handle,
2868*5113495bSYour Name 					struct peer_cfr_params *param);
2869*5113495bSYour Name #ifdef WLAN_ENH_CFR_ENABLE
2870*5113495bSYour Name QDF_STATUS (*send_cfr_rcc_cmd)(wmi_unified_t wmi_handle,
2871*5113495bSYour Name 			  struct cfr_rcc_param *cfg);
2872*5113495bSYour Name #endif
2873*5113495bSYour Name #endif
2874*5113495bSYour Name 
2875*5113495bSYour Name #ifdef WMI_AP_SUPPORT
2876*5113495bSYour Name QDF_STATUS (*send_vdev_pcp_tid_map_cmd)(wmi_unified_t wmi_handle,
2877*5113495bSYour Name 					struct vap_pcp_tid_map_params *param);
2878*5113495bSYour Name QDF_STATUS (*send_vdev_tidmap_prec_cmd)(wmi_unified_t wmi_handle,
2879*5113495bSYour Name 					struct vap_tidmap_prec_params *param);
2880*5113495bSYour Name QDF_STATUS (*send_peer_ft_roam_cmd)(wmi_unified_t wmi_handle,
2881*5113495bSYour Name 				    uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
2882*5113495bSYour Name 				    uint8_t vdev_id);
2883*5113495bSYour Name #endif
2884*5113495bSYour Name QDF_STATUS (*send_mws_coex_status_req_cmd)(wmi_unified_t wmi_handle,
2885*5113495bSYour Name 					   uint32_t vdev_id, uint32_t cmd_id);
2886*5113495bSYour Name 
2887*5113495bSYour Name #ifdef WIFI_POS_CONVERGED
2888*5113495bSYour Name QDF_STATUS (*extract_oem_response_param)
2889*5113495bSYour Name 		(wmi_unified_t wmi_hdl, void *resp_buf,
2890*5113495bSYour Name 		 struct wmi_oem_response_param *oem_resp_param);
2891*5113495bSYour Name #endif /* WIFI_POS_CONVERGED */
2892*5113495bSYour Name 
2893*5113495bSYour Name #if defined(WIFI_POS_CONVERGED) && defined(WLAN_FEATURE_RTT_11AZ_SUPPORT)
2894*5113495bSYour Name QDF_STATUS (*extract_pasn_peer_create_req_event)
2895*5113495bSYour Name 			(wmi_unified_t wmi_handle,
2896*5113495bSYour Name 			 void *evt_buf,
2897*5113495bSYour Name 			 struct wifi_pos_pasn_peer_data *dst);
2898*5113495bSYour Name 
2899*5113495bSYour Name QDF_STATUS (*extract_pasn_peer_delete_req_event)
2900*5113495bSYour Name 			(wmi_unified_t wmi_handle,
2901*5113495bSYour Name 			 void *evt_buf,
2902*5113495bSYour Name 			 struct wifi_pos_pasn_peer_data *dst);
2903*5113495bSYour Name 
2904*5113495bSYour Name QDF_STATUS (*send_rtt_pasn_auth_status_cmd)
2905*5113495bSYour Name 			(wmi_unified_t wmi_handle,
2906*5113495bSYour Name 			 struct wlan_pasn_auth_status *data);
2907*5113495bSYour Name 
2908*5113495bSYour Name QDF_STATUS (*send_rtt_pasn_deauth_cmd)(wmi_unified_t wmi_handle,
2909*5113495bSYour Name 				       struct qdf_mac_addr *peer_mac);
2910*5113495bSYour Name #endif
2911*5113495bSYour Name 
2912*5113495bSYour Name QDF_STATUS (*extract_hw_mode_resp_event)(wmi_unified_t wmi_handle,
2913*5113495bSYour Name 					 void *evt_buf, uint32_t *cmd_status);
2914*5113495bSYour Name 
2915*5113495bSYour Name QDF_STATUS (*extract_rf_path_resp)(wmi_unified_t wmi_handle,
2916*5113495bSYour Name 				   void *evt_buf, uint32_t *cmd_status);
2917*5113495bSYour Name 
2918*5113495bSYour Name #ifdef WLAN_FEATURE_ELNA
2919*5113495bSYour Name QDF_STATUS (*send_set_elna_bypass_cmd)(wmi_unified_t wmi_handle,
2920*5113495bSYour Name 				       struct set_elna_bypass_request *req);
2921*5113495bSYour Name QDF_STATUS (*send_get_elna_bypass_cmd)(wmi_unified_t wmi_handle,
2922*5113495bSYour Name 				       struct get_elna_bypass_request *req);
2923*5113495bSYour Name QDF_STATUS (*extract_get_elna_bypass_resp)(wmi_unified_t wmi_handle,
2924*5113495bSYour Name 					 void *resp_buf,
2925*5113495bSYour Name 					 struct get_elna_bypass_response *resp);
2926*5113495bSYour Name #endif /* WLAN_FEATURE_ELNA */
2927*5113495bSYour Name 
2928*5113495bSYour Name #ifdef WLAN_SEND_DSCP_UP_MAP_TO_FW
2929*5113495bSYour Name QDF_STATUS (*send_dscp_tid_map_cmd)(wmi_unified_t wmi_handle,
2930*5113495bSYour Name 				     uint32_t *dscp_to_tid_map);
2931*5113495bSYour Name #endif
2932*5113495bSYour Name 
2933*5113495bSYour Name #ifdef WLAN_FEATURE_MDNS_OFFLOAD
2934*5113495bSYour Name QDF_STATUS (*send_set_mdns_config_cmd)(wmi_unified_t wmi_handle,
2935*5113495bSYour Name 				       struct mdns_config_info *mdns_info);
2936*5113495bSYour Name #endif /* WLAN_FEATURE_MDNS_OFFLOAD */
2937*5113495bSYour Name 
2938*5113495bSYour Name #ifdef THERMAL_STATS_SUPPORT
2939*5113495bSYour Name QDF_STATUS (*send_get_thermal_stats_cmd)(wmi_unified_t wmi_handle,
2940*5113495bSYour Name 					 enum thermal_stats_request_type req,
2941*5113495bSYour Name 					 uint8_t temp_offset);
2942*5113495bSYour Name #endif /* THERMAL_STATS_SUPPORT */
2943*5113495bSYour Name 
2944*5113495bSYour Name QDF_STATUS (*send_pdev_get_pn_cmd)(wmi_unified_t wmi_handle,
2945*5113495bSYour Name 				   struct peer_request_pn_param *pn_params);
2946*5113495bSYour Name QDF_STATUS (*extract_get_pn_data)(wmi_unified_t wmi_handle,
2947*5113495bSYour Name 				  void *evt_buf,
2948*5113495bSYour Name 				  struct wmi_host_get_pn_event *param);
2949*5113495bSYour Name QDF_STATUS (*send_pdev_get_rxpn_cmd)(wmi_unified_t wmi_handle,
2950*5113495bSYour Name 				     struct peer_request_rxpn_param *pn_params);
2951*5113495bSYour Name QDF_STATUS (*extract_get_rxpn_data)(wmi_unified_t wmi_handle,
2952*5113495bSYour Name 				    void *evt_buf,
2953*5113495bSYour Name 				    struct wmi_host_get_rxpn_event *param);
2954*5113495bSYour Name #ifdef FEATURE_ANI_LEVEL_REQUEST
2955*5113495bSYour Name QDF_STATUS (*send_ani_level_cmd)(wmi_unified_t wmi_handle, uint32_t *freqs,
2956*5113495bSYour Name 				 uint8_t num_freqs);
2957*5113495bSYour Name 
2958*5113495bSYour Name QDF_STATUS (*extract_ani_level)(uint8_t *evt_buf,
2959*5113495bSYour Name 				struct wmi_host_ani_level_event **info,
2960*5113495bSYour Name 				uint32_t *num_freqs);
2961*5113495bSYour Name #endif /* FEATURE_ANI_LEVEL_REQUEST */
2962*5113495bSYour Name 
2963*5113495bSYour Name QDF_STATUS (*extract_multi_vdev_restart_resp_event)(
2964*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
2965*5113495bSYour Name 		struct multi_vdev_restart_resp *restart_rsp);
2966*5113495bSYour Name 
2967*5113495bSYour Name #ifdef WLAN_FEATURE_PKT_CAPTURE
2968*5113495bSYour Name QDF_STATUS (*extract_vdev_mgmt_offload_event)(
2969*5113495bSYour Name 				void *handle,
2970*5113495bSYour Name 				void *event_buf,
2971*5113495bSYour Name 				struct mgmt_offload_event_params *params);
2972*5113495bSYour Name #endif /* WLAN_FEATURE_PKT_CAPTURE */
2973*5113495bSYour Name 
2974*5113495bSYour Name #ifdef WLAN_FEATURE_PKT_CAPTURE_V2
2975*5113495bSYour Name QDF_STATUS (*extract_smart_monitor_event)(
2976*5113495bSYour Name 				void *handle,
2977*5113495bSYour Name 				void *event_buf,
2978*5113495bSYour Name 				struct smu_event_params *params);
2979*5113495bSYour Name #endif /* WLAN_FEATURE_PKT_CAPTURE_V2 */
2980*5113495bSYour Name 
2981*5113495bSYour Name QDF_STATUS (*multisoc_tbtt_sync_cmd)(wmi_unified_t wmi_handle,
2982*5113495bSYour Name 				     struct rnr_tbtt_multisoc_sync_param *param);
2983*5113495bSYour Name 
2984*5113495bSYour Name #ifdef WLAN_FEATURE_SR
2985*5113495bSYour Name QDF_STATUS (*vdev_param_sr_prohibit_send)(wmi_unified_t wmi_handle,
2986*5113495bSYour Name 					  struct sr_prohibit_param *param);
2987*5113495bSYour Name #endif
2988*5113495bSYour Name 
2989*5113495bSYour Name #ifdef FEATURE_WLAN_TIME_SYNC_FTM
2990*5113495bSYour Name QDF_STATUS (*send_wlan_time_sync_ftm_trigger_cmd)(wmi_unified_t wmi_handle,
2991*5113495bSYour Name 						  uint32_t vdev_id,
2992*5113495bSYour Name 						  bool burst_mode);
2993*5113495bSYour Name 
2994*5113495bSYour Name QDF_STATUS (*send_wlan_ts_qtime_cmd)(wmi_unified_t wmi_handle,
2995*5113495bSYour Name 				     uint32_t vdev_id,
2996*5113495bSYour Name 				     uint64_t lpass_ts);
2997*5113495bSYour Name 
2998*5113495bSYour Name QDF_STATUS (*extract_time_sync_ftm_start_stop_event)(
2999*5113495bSYour Name 				wmi_unified_t wmi_hdl, void *evt_buf,
3000*5113495bSYour Name 				struct ftm_time_sync_start_stop_params *param);
3001*5113495bSYour Name 
3002*5113495bSYour Name QDF_STATUS (*extract_time_sync_ftm_offset_event)(
3003*5113495bSYour Name 					wmi_unified_t wmi_hdl, void *evt_buf,
3004*5113495bSYour Name 					struct ftm_time_sync_offset *param);
3005*5113495bSYour Name #endif /* FEATURE_WLAN_TIME_SYNC_FTM */
3006*5113495bSYour Name QDF_STATUS (*send_roam_scan_ch_list_req_cmd)(wmi_unified_t wmi_hdl,
3007*5113495bSYour Name 					     uint32_t vdev_id);
3008*5113495bSYour Name 
3009*5113495bSYour Name QDF_STATUS (*send_injector_config_cmd)(wmi_unified_t wmi_handle,
3010*5113495bSYour Name 				struct wmi_host_injector_frame_params *params);
3011*5113495bSYour Name 
3012*5113495bSYour Name QDF_STATUS (*send_cp_stats_cmd)(wmi_unified_t wmi_handle,
3013*5113495bSYour Name 				void *buf_ptr, uint32_t buf_len);
3014*5113495bSYour Name 
3015*5113495bSYour Name QDF_STATUS (*send_halphy_stats_cmd)(wmi_unified_t wmi_handle,
3016*5113495bSYour Name 				    void *buf_ptr, uint32_t buf_len);
3017*5113495bSYour Name 
3018*5113495bSYour Name QDF_STATUS (*extract_cp_stats_more_pending)(wmi_unified_t wmi_handle,
3019*5113495bSYour Name 					    void *evt_buf,
3020*5113495bSYour Name 					    uint32_t *more_flag);
3021*5113495bSYour Name QDF_STATUS (*extract_halphy_stats_end_of_event)(wmi_unified_t wmi_handle,
3022*5113495bSYour Name 						void *evt_buf,
3023*5113495bSYour Name 						uint32_t *end_of_event_flag);
3024*5113495bSYour Name QDF_STATUS (*extract_halphy_stats_event_count)(wmi_unified_t wmi_handle,
3025*5113495bSYour Name 					       void *evt_buf,
3026*5113495bSYour Name 					       uint32_t *event_count_flag);
3027*5113495bSYour Name #if defined(WLAN_SUPPORT_INFRA_CTRL_PATH_STATS) || \
3028*5113495bSYour Name 	defined(WLAN_CONFIG_TELEMETRY_AGENT)
3029*5113495bSYour Name QDF_STATUS
3030*5113495bSYour Name (*extract_infra_cp_stats)(wmi_unified_t wmi_handle,
3031*5113495bSYour Name 			  void *evt_buf, uint32_t evt_buf_len,
3032*5113495bSYour Name 			  struct infra_cp_stats_event *params);
3033*5113495bSYour Name 
3034*5113495bSYour Name QDF_STATUS
3035*5113495bSYour Name (*send_infra_cp_stats_request_cmd)(wmi_unified_t wmi_handle,
3036*5113495bSYour Name 				   struct infra_cp_stats_cmd_info *param);
3037*5113495bSYour Name #endif /* WLAN_SUPPORT_INFRA_CTRL_PATH_STATS */
3038*5113495bSYour Name 
3039*5113495bSYour Name QDF_STATUS (*send_vdev_tsf_tstamp_action_cmd)(wmi_unified_t wmi,
3040*5113495bSYour Name 					      uint8_t vdev_id);
3041*5113495bSYour Name 
3042*5113495bSYour Name QDF_STATUS (*extract_vdev_tsf_report_event)(wmi_unified_t wmi_handle,
3043*5113495bSYour Name 					    void *evt_buf,
3044*5113495bSYour Name 					    struct wmi_host_tsf_event *param);
3045*5113495bSYour Name #ifdef WMI_AP_SUPPORT
3046*5113495bSYour Name QDF_STATUS (*set_radio_tx_mode_select_cmd)(
3047*5113495bSYour Name 				wmi_unified_t wmi,
3048*5113495bSYour Name 				struct wmi_pdev_enable_tx_mode_selection *param);
3049*5113495bSYour Name QDF_STATUS (*send_lcr_cmd)(wmi_unified_t wmi_handle,
3050*5113495bSYour Name 			   struct wmi_wifi_pos_lcr_info *lcr_info);
3051*5113495bSYour Name QDF_STATUS (*send_lci_cmd)(wmi_unified_t wmi_handle,
3052*5113495bSYour Name 			   struct wifi_pos_lci_info *lci_info);
3053*5113495bSYour Name #if !defined(CNSS_GENL) && defined(WLAN_RTT_MEASUREMENT_NOTIFICATION)
3054*5113495bSYour Name QDF_STATUS (*extract_measreq_chan_info)(uint32_t data_len, uint8_t *data,
3055*5113495bSYour Name 					struct rtt_channel_info *chinfo);
3056*5113495bSYour Name #endif
3057*5113495bSYour Name 
3058*5113495bSYour Name #ifdef WLAN_SUPPORT_MESH_LATENCY
3059*5113495bSYour Name QDF_STATUS (*config_vdev_tid_latency_info_cmd)(
3060*5113495bSYour Name 				wmi_unified_t wmi,
3061*5113495bSYour Name 				struct wmi_vdev_tid_latency_config_params
3062*5113495bSYour Name 				*param);
3063*5113495bSYour Name QDF_STATUS (*config_peer_latency_info_cmd)(
3064*5113495bSYour Name 				wmi_unified_t wmi,
3065*5113495bSYour Name 				struct wmi_peer_latency_config_params
3066*5113495bSYour Name 				*param);
3067*5113495bSYour Name #endif
3068*5113495bSYour Name #endif
3069*5113495bSYour Name 
3070*5113495bSYour Name #ifdef WLAN_WSI_STATS_SUPPORT
3071*5113495bSYour Name QDF_STATUS (*send_wsi_stats_info_cmd)(
3072*5113495bSYour Name 				wmi_unified_t wmi,
3073*5113495bSYour Name 				struct wmi_wsi_stats_info_params
3074*5113495bSYour Name 				*param);
3075*5113495bSYour Name #endif
3076*5113495bSYour Name 
3077*5113495bSYour Name #ifdef QCA_MANUAL_TRIGGERED_ULOFDMA
3078*5113495bSYour Name QDF_STATUS
3079*5113495bSYour Name (*trigger_ulofdma_su_cmd)(wmi_unified_t wmi,
3080*5113495bSYour Name 			  struct wmi_trigger_ul_ofdma_su_params *param);
3081*5113495bSYour Name QDF_STATUS
3082*5113495bSYour Name (*trigger_ulofdma_mu_cmd)(wmi_unified_t wmi,
3083*5113495bSYour Name 			  struct wmi_trigger_ul_ofdma_mu_params *param);
3084*5113495bSYour Name #endif
3085*5113495bSYour Name 
3086*5113495bSYour Name #ifdef QCA_STANDALONE_SOUNDING_TRIGGER
3087*5113495bSYour Name QDF_STATUS
3088*5113495bSYour Name (*config_txbf_sounding_trig_info_cmd)(wmi_unified_t wmi,
3089*5113495bSYour Name 				      struct wmi_txbf_sounding_trig_param
3090*5113495bSYour Name 				      *sounding_params);
3091*5113495bSYour Name #endif
3092*5113495bSYour Name QDF_STATUS (*send_set_tpc_power_cmd)(wmi_unified_t wmi_handle,
3093*5113495bSYour Name 				     uint8_t vdev_id,
3094*5113495bSYour Name 				     struct reg_tpc_power_info *param);
3095*5113495bSYour Name 
3096*5113495bSYour Name #ifdef CONFIG_AFC_SUPPORT
3097*5113495bSYour Name QDF_STATUS
3098*5113495bSYour Name (*send_afc_cmd)(wmi_unified_t wmi_handle, uint8_t pdev_id,
3099*5113495bSYour Name 		struct reg_afc_resp_rx_ind_info *param);
3100*5113495bSYour Name #endif
3101*5113495bSYour Name 
3102*5113495bSYour Name #ifdef WLAN_FEATURE_BIG_DATA_STATS
3103*5113495bSYour Name QDF_STATUS (*send_big_data_stats_request_cmd)(
3104*5113495bSYour Name 				wmi_unified_t wmi_handle,
3105*5113495bSYour Name 				struct stats_request_params *param);
3106*5113495bSYour Name #endif
3107*5113495bSYour Name QDF_STATUS (*extract_dpd_status_ev_param)(wmi_unified_t wmi_handle,
3108*5113495bSYour Name 					  void *evt_buf,
3109*5113495bSYour Name 					  struct wmi_host_pdev_get_dpd_status_event *param);
3110*5113495bSYour Name 
3111*5113495bSYour Name QDF_STATUS (*extract_halphy_cal_status_ev_param)(wmi_unified_t wmi_handle,
3112*5113495bSYour Name 						 void *evt_buf,
3113*5113495bSYour Name 						 struct wmi_host_pdev_get_halphy_cal_status_event *param);
3114*5113495bSYour Name 
3115*5113495bSYour Name QDF_STATUS
3116*5113495bSYour Name (*extract_install_key_comp_event)(wmi_unified_t wmi_handle,
3117*5113495bSYour Name 				  void *evt_buf, uint32_t len,
3118*5113495bSYour Name 				  struct wmi_install_key_comp_event *param);
3119*5113495bSYour Name 
3120*5113495bSYour Name QDF_STATUS (*send_vdev_set_ltf_key_seed_cmd)
3121*5113495bSYour Name 			(wmi_unified_t wmi_handle,
3122*5113495bSYour Name 			 struct wlan_crypto_ltf_keyseed_data *data);
3123*5113495bSYour Name 
3124*5113495bSYour Name #ifdef WLAN_ENH_CFR_ENABLE
3125*5113495bSYour Name QDF_STATUS
3126*5113495bSYour Name (*extract_cfr_phase_param)(wmi_unified_t wmi_handle,
3127*5113495bSYour Name 			   void *evt_buf,
3128*5113495bSYour Name 			   struct wmi_cfr_phase_delta_param *param);
3129*5113495bSYour Name #ifdef WLAN_RCC_ENHANCED_AOA_SUPPORT
3130*5113495bSYour Name QDF_STATUS
3131*5113495bSYour Name (*extract_cfr_enh_phase_data)(wmi_unified_t wmi_handle,
3132*5113495bSYour Name 			      void *evt_buf,
3133*5113495bSYour Name 			      struct wmi_cfr_enh_phase_delta_param *param);
3134*5113495bSYour Name QDF_STATUS
3135*5113495bSYour Name (*extract_cfr_enh_phase_fixed_param)(
3136*5113495bSYour Name 				wmi_unified_t wmi_handle,
3137*5113495bSYour Name 				void *evt_buf,
3138*5113495bSYour Name 				struct wmi_cfr_enh_phase_delta_param *param);
3139*5113495bSYour Name #endif /* WLAN_RCC_ENHANCED_AOA_SUPPORT */
3140*5113495bSYour Name #endif
3141*5113495bSYour Name 
3142*5113495bSYour Name QDF_STATUS (*send_set_halphy_cal)(wmi_unified_t wmi_handle,
3143*5113495bSYour Name 				  struct wmi_host_send_set_halphy_cal_info *param);
3144*5113495bSYour Name 
3145*5113495bSYour Name QDF_STATUS
3146*5113495bSYour Name (*extract_halphy_cal_ev_param)(wmi_unified_t wmi_handle,
3147*5113495bSYour Name 			       void *evt_buf,
3148*5113495bSYour Name 			       struct wmi_host_pdev_set_halphy_cal_event *param);
3149*5113495bSYour Name 
3150*5113495bSYour Name QDF_STATUS (*extract_mgmt_rx_ext_params)(wmi_unified_t wmi_handle,
3151*5113495bSYour Name 					 void *evt_buf,
3152*5113495bSYour Name 					 struct mgmt_rx_event_ext_params *params);
3153*5113495bSYour Name 
3154*5113495bSYour Name #ifdef WLAN_MGMT_RX_REO_SUPPORT
3155*5113495bSYour Name QDF_STATUS (*extract_mgmt_rx_fw_consumed)(wmi_unified_t wmi_handle,
3156*5113495bSYour Name 					  void *evt_buf,
3157*5113495bSYour Name 					  struct mgmt_rx_reo_params *params);
3158*5113495bSYour Name 
3159*5113495bSYour Name QDF_STATUS (*extract_mgmt_rx_reo_params)(wmi_unified_t wmi_handle,
3160*5113495bSYour Name 					 void *evt_buf,
3161*5113495bSYour Name 					 struct mgmt_rx_reo_params *params);
3162*5113495bSYour Name 
3163*5113495bSYour Name QDF_STATUS (*send_mgmt_rx_reo_filter_config_cmd)(
3164*5113495bSYour Name 					wmi_unified_t wmi_handle,
3165*5113495bSYour Name 					uint8_t pdev_id,
3166*5113495bSYour Name 					struct mgmt_rx_reo_filter *filter);
3167*5113495bSYour Name #endif
3168*5113495bSYour Name 
3169*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
3170*5113495bSYour Name QDF_STATUS (*mlo_setup_cmd_send)(wmi_unified_t wmi_handle,
3171*5113495bSYour Name 				 struct wmi_mlo_setup_params *params);
3172*5113495bSYour Name QDF_STATUS (*mlo_teardown_cmd_send)(wmi_unified_t wmi_handle,
3173*5113495bSYour Name 				    struct wmi_mlo_teardown_params *params);
3174*5113495bSYour Name QDF_STATUS (*mlo_ready_cmd_send)(wmi_unified_t wmi_handle,
3175*5113495bSYour Name 				 struct wmi_mlo_ready_params *params);
3176*5113495bSYour Name QDF_STATUS
3177*5113495bSYour Name (*extract_mlo_setup_cmpl_event)(wmi_unified_t wmi_handle,
3178*5113495bSYour Name 				uint8_t *buf,
3179*5113495bSYour Name 				struct wmi_mlo_setup_complete_params *params);
3180*5113495bSYour Name QDF_STATUS
3181*5113495bSYour Name (*extract_mlo_teardown_cmpl_event)(wmi_unified_t wmi_handle,
3182*5113495bSYour Name 				   uint8_t *buf,
3183*5113495bSYour Name 				   struct wmi_mlo_teardown_cmpl_params *param);
3184*5113495bSYour Name QDF_STATUS
3185*5113495bSYour Name (*send_mlo_link_set_active_cmd)(wmi_unified_t wmi_handle,
3186*5113495bSYour Name 				struct mlo_link_set_active_param *param);
3187*5113495bSYour Name 
3188*5113495bSYour Name QDF_STATUS
3189*5113495bSYour Name (*send_mlo_vdev_pause)(wmi_unified_t wmi_handle,
3190*5113495bSYour Name 		       struct mlo_vdev_pause *info);
3191*5113495bSYour Name 
3192*5113495bSYour Name QDF_STATUS
3193*5113495bSYour Name (*extract_mlo_link_set_active_resp)(wmi_unified_t wmi_handle,
3194*5113495bSYour Name 				    void *evt_buf,
3195*5113495bSYour Name 				    struct mlo_link_set_active_resp *resp);
3196*5113495bSYour Name QDF_STATUS
3197*5113495bSYour Name (*extract_mgmt_rx_ml_cu_params)(wmi_unified_t wmi_handle,
3198*5113495bSYour Name 				void *evt_buf,
3199*5113495bSYour Name 				struct mlo_mgmt_ml_info *cu_params);
3200*5113495bSYour Name 
3201*5113495bSYour Name QDF_STATUS (*send_mlo_link_removal_cmd)(
3202*5113495bSYour Name 		wmi_unified_t wmi_handle,
3203*5113495bSYour Name 		const struct mlo_link_removal_cmd_params *params);
3204*5113495bSYour Name 
3205*5113495bSYour Name QDF_STATUS (*extract_mlo_link_removal_evt_fixed_param)(
3206*5113495bSYour Name 		struct wmi_unified *wmi_handle,
3207*5113495bSYour Name 		void *buf,
3208*5113495bSYour Name 		struct mlo_link_removal_evt_params *params);
3209*5113495bSYour Name 
3210*5113495bSYour Name QDF_STATUS (*extract_mlo_link_removal_tbtt_update)(
3211*5113495bSYour Name 		struct wmi_unified *wmi_handle,
3212*5113495bSYour Name 		void *buf,
3213*5113495bSYour Name 		struct mlo_link_removal_tbtt_info *tbtt_info);
3214*5113495bSYour Name 
3215*5113495bSYour Name QDF_STATUS (*extract_mgmt_rx_mlo_link_removal_info)(
3216*5113495bSYour Name 		struct wmi_unified *wmi_handle,
3217*5113495bSYour Name 		void *buf,
3218*5113495bSYour Name 		struct mgmt_rx_mlo_link_removal_info *link_removal_info,
3219*5113495bSYour Name 		int num_link_removal_info);
3220*5113495bSYour Name 
3221*5113495bSYour Name QDF_STATUS (*extract_mlo_link_disable_request_evt_param)(
3222*5113495bSYour Name 		struct wmi_unified *wmi_handle,
3223*5113495bSYour Name 		void *buf,
3224*5113495bSYour Name 		struct mlo_link_disable_request_evt_params *params);
3225*5113495bSYour Name 
3226*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
3227*5113495bSYour Name QDF_STATUS (*extract_mlo_link_state_switch_evt)(
3228*5113495bSYour Name 			struct wmi_unified *wmi_handle,
3229*5113495bSYour Name 			void *buf, uint8_t len,
3230*5113495bSYour Name 			struct mlo_link_switch_state_info *params);
3231*5113495bSYour Name 
3232*5113495bSYour Name QDF_STATUS
3233*5113495bSYour Name (*extract_mlo_link_switch_request_event)(struct wmi_unified *wmi_handle,
3234*5113495bSYour Name 					 void *buf,
3235*5113495bSYour Name 					 struct wlan_mlo_link_switch_req *req);
3236*5113495bSYour Name QDF_STATUS
3237*5113495bSYour Name (*send_mlo_link_switch_req_cnf_cmd)(wmi_unified_t wmi_handle,
3238*5113495bSYour Name 				    struct wlan_mlo_link_switch_cnf *params);
3239*5113495bSYour Name #endif
3240*5113495bSYour Name #endif
3241*5113495bSYour Name 
3242*5113495bSYour Name #ifdef WLAN_FEATURE_SON
3243*5113495bSYour Name QDF_STATUS
3244*5113495bSYour Name (*extract_inst_rssi_stats_resp)(wmi_unified_t wmi_handle, void *evt_buf,
3245*5113495bSYour Name 			struct wmi_host_inst_rssi_stats_resp *inst_rssi_resp);
3246*5113495bSYour Name #endif
3247*5113495bSYour Name 
3248*5113495bSYour Name #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
3249*5113495bSYour Name QDF_STATUS (*send_set_mac_address_cmd)(wmi_unified_t wmi,
3250*5113495bSYour Name 				       struct set_mac_addr_params *params);
3251*5113495bSYour Name QDF_STATUS (*extract_update_mac_address_event)(wmi_unified_t wmi_handle,
3252*5113495bSYour Name 					       void *evt_buf, uint8_t *vdev_id,
3253*5113495bSYour Name 					       uint8_t *status);
3254*5113495bSYour Name #endif
3255*5113495bSYour Name 
3256*5113495bSYour Name QDF_STATUS
3257*5113495bSYour Name (*send_soc_tqm_reset_enable_disable_cmd)(wmi_unified_t wmi_handle,
3258*5113495bSYour Name 					 uint32_t enable);
3259*5113495bSYour Name QDF_STATUS
3260*5113495bSYour Name (*send_set_peer_disable_mode)(wmi_unified_t wmi_handle, uint8_t *peer_mac,
3261*5113495bSYour Name 			      uint8_t pdev_id, uint32_t disabled_modes);
3262*5113495bSYour Name #ifdef CONFIG_SAWF_DEF_QUEUES
3263*5113495bSYour Name QDF_STATUS
3264*5113495bSYour Name (*send_set_rate_upper_cap_cmd)(wmi_unified_t wmi_handle, uint8_t pdev_id,
3265*5113495bSYour Name 			       struct wmi_rc_params *param);
3266*5113495bSYour Name QDF_STATUS
3267*5113495bSYour Name (*send_set_rate_retry_mcs_drop_cmd)(wmi_unified_t wmi_handle, uint8_t pdev_id,
3268*5113495bSYour Name 				    struct wmi_rc_params *param);
3269*5113495bSYour Name QDF_STATUS
3270*5113495bSYour Name (*send_set_mcs_probe_intvl_cmd)(wmi_unified_t wmi_handle, uint8_t pdev_id,
3271*5113495bSYour Name 				struct wmi_rc_params *param);
3272*5113495bSYour Name QDF_STATUS
3273*5113495bSYour Name (*send_set_nss_probe_intvl_cmd)(wmi_unified_t wmi_handle, uint8_t pdev_id,
3274*5113495bSYour Name 				struct wmi_rc_params *param);
3275*5113495bSYour Name QDF_STATUS
3276*5113495bSYour Name (*send_sawf_create_cmd)(wmi_unified_t wmi, struct wmi_sawf_params *params);
3277*5113495bSYour Name QDF_STATUS
3278*5113495bSYour Name (*send_sawf_disable_cmd)(wmi_unified_t wmi, uint32_t svc_id);
3279*5113495bSYour Name #endif
3280*5113495bSYour Name 
3281*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
3282*5113495bSYour Name QDF_STATUS (*extract_quiet_offload_event)(
3283*5113495bSYour Name 				wmi_unified_t wmi_handle, void *evt_buf,
3284*5113495bSYour Name 				struct vdev_sta_quiet_event *quiet_event);
3285*5113495bSYour Name 
3286*5113495bSYour Name QDF_STATUS (*extract_mlo_link_state_event)(
3287*5113495bSYour Name 				struct wmi_unified *wmi_handle,
3288*5113495bSYour Name 				void *buf,
3289*5113495bSYour Name 				struct ml_link_state_info_event *params);
3290*5113495bSYour Name #endif
3291*5113495bSYour Name 
3292*5113495bSYour Name #ifdef WLAN_SUPPORT_PPEDS
3293*5113495bSYour Name QDF_STATUS
3294*5113495bSYour Name (*peer_ppe_ds_param_send)(wmi_unified_t wmi_handle,
3295*5113495bSYour Name 			  struct peer_ppe_ds_param *param);
3296*5113495bSYour Name #endif /* WLAN_SUPPORT_PPEDS */
3297*5113495bSYour Name 
3298*5113495bSYour Name QDF_STATUS
3299*5113495bSYour Name (*send_vdev_pn_mgmt_rxfilter_cmd)(wmi_unified_t wmi_handle,
3300*5113495bSYour Name 				  struct vdev_pn_mgmt_rxfilter_params *params);
3301*5113495bSYour Name 
3302*5113495bSYour Name #ifdef WLAN_FEATURE_11BE
3303*5113495bSYour Name QDF_STATUS (*send_mlo_peer_tid_to_link_map)(
3304*5113495bSYour Name 			wmi_unified_t wmi_handle,
3305*5113495bSYour Name 			struct wmi_host_tid_to_link_map_params *params,
3306*5113495bSYour Name 			bool t2lm_info);
3307*5113495bSYour Name 
3308*5113495bSYour Name QDF_STATUS (*send_mlo_vdev_tid_to_link_map)(
3309*5113495bSYour Name 			wmi_unified_t wmi_handle,
3310*5113495bSYour Name 			struct wmi_host_tid_to_link_map_ap_params *params);
3311*5113495bSYour Name 
3312*5113495bSYour Name QDF_STATUS (*send_mlo_link_state_request)(
3313*5113495bSYour Name 			wmi_unified_t wmi_handle,
3314*5113495bSYour Name 			struct wmi_host_link_state_params *params);
3315*5113495bSYour Name 
3316*5113495bSYour Name QDF_STATUS (*send_link_set_bss_params_cmd)(
3317*5113495bSYour Name 		wmi_unified_t wmi_handle,
3318*5113495bSYour Name 		struct wmi_host_link_bss_params *params);
3319*5113495bSYour Name 
3320*5113495bSYour Name QDF_STATUS (*extract_mlo_vdev_tid_to_link_map_event)(
3321*5113495bSYour Name 		struct wmi_unified *wmi_handle,
3322*5113495bSYour Name 		uint8_t *buf,
3323*5113495bSYour Name 		struct mlo_vdev_host_tid_to_link_map_resp *params);
3324*5113495bSYour Name 
3325*5113495bSYour Name QDF_STATUS (*extract_mlo_vdev_bcast_tid_to_link_map_event)(
3326*5113495bSYour Name 			struct wmi_unified *wmi_handle,
3327*5113495bSYour Name 			void *buf,
3328*5113495bSYour Name 			struct mlo_bcast_t2lm_info *bcast_info);
3329*5113495bSYour Name 
3330*5113495bSYour Name #endif /* WLAN_FEATURE_11BE */
3331*5113495bSYour Name 
3332*5113495bSYour Name QDF_STATUS
3333*5113495bSYour Name (*extract_pktlog_decode_info_event)(wmi_unified_t wmi_handle, void *evt_buf,
3334*5113495bSYour Name 				    uint8_t *pdev_id, uint8_t *software_image,
3335*5113495bSYour Name 				    uint8_t *chip_info,
3336*5113495bSYour Name 				    uint32_t *pktlog_json_version);
3337*5113495bSYour Name 
3338*5113495bSYour Name QDF_STATUS
3339*5113495bSYour Name (*send_peer_filter_set_tx_cmd)(wmi_unified_t wmi_handle,
3340*5113495bSYour Name 			       uint8_t macaddr[],
3341*5113495bSYour Name 			       struct set_tx_peer_filter *param);
3342*5113495bSYour Name 
3343*5113495bSYour Name QDF_STATUS
3344*5113495bSYour Name (*extract_pdev_telemetry_stats)(
3345*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3346*5113495bSYour Name 		struct wmi_host_pdev_telemetry_stats *pdev_stats);
3347*5113495bSYour Name #ifdef WLAN_FEATURE_PEER_TXQ_FLUSH_CONF
3348*5113495bSYour Name QDF_STATUS
3349*5113495bSYour Name (*send_peer_txq_flush_config_cmd)(wmi_unified_t wmi_handle,
3350*5113495bSYour Name 				  struct peer_txq_flush_config_params *param);
3351*5113495bSYour Name #endif
3352*5113495bSYour Name 
3353*5113495bSYour Name #ifdef FEATURE_SET
3354*5113495bSYour Name QDF_STATUS
3355*5113495bSYour Name (*feature_set_cmd_send)(wmi_unified_t wmi_handle,
3356*5113495bSYour Name 			struct target_feature_set *feature_set);
3357*5113495bSYour Name #endif
3358*5113495bSYour Name 
3359*5113495bSYour Name #ifdef WLAN_FEATURE_COAP
3360*5113495bSYour Name QDF_STATUS
3361*5113495bSYour Name (*send_coap_add_pattern_cmd)(wmi_unified_t wmi_handle,
3362*5113495bSYour Name 			     struct coap_offload_reply_param *param);
3363*5113495bSYour Name 
3364*5113495bSYour Name QDF_STATUS
3365*5113495bSYour Name (*send_coap_del_pattern_cmd)(wmi_unified_t wmi_handle,
3366*5113495bSYour Name 			     uint8_t vdev_id, uint32_t pattern_id);
3367*5113495bSYour Name 
3368*5113495bSYour Name QDF_STATUS
3369*5113495bSYour Name (*send_coap_add_keepalive_pattern_cmd)(wmi_unified_t wmi_handle,
3370*5113495bSYour Name 		struct coap_offload_periodic_tx_param *param);
3371*5113495bSYour Name 
3372*5113495bSYour Name QDF_STATUS
3373*5113495bSYour Name (*send_coap_del_keepalive_pattern_cmd)(wmi_unified_t wmi_handle,
3374*5113495bSYour Name 				       uint8_t vdev_id, uint32_t pattern_id);
3375*5113495bSYour Name 
3376*5113495bSYour Name QDF_STATUS
3377*5113495bSYour Name (*send_coap_cache_get_cmd)(wmi_unified_t wmi_handle,
3378*5113495bSYour Name 			   uint8_t vdev_id, uint32_t pattern_id);
3379*5113495bSYour Name 
3380*5113495bSYour Name QDF_STATUS (*extract_coap_buf_info)(wmi_unified_t wmi_handle, void *evt_buf,
3381*5113495bSYour Name 				    struct coap_buf_info *info);
3382*5113495bSYour Name #endif
3383*5113495bSYour Name #ifdef HEALTH_MON_SUPPORT
3384*5113495bSYour Name QDF_STATUS
3385*5113495bSYour Name (*extract_health_mon_init_done_info_event)(wmi_unified_t wmi_handle,
3386*5113495bSYour Name 					   void *evt_buf,
3387*5113495bSYour Name 					   struct wmi_health_mon_params *param);
3388*5113495bSYour Name #endif /* HEALTH_MON_SUPPORT */
3389*5113495bSYour Name 
3390*5113495bSYour Name QDF_STATUS (*send_update_edca_pifs_param_cmd)(
3391*5113495bSYour Name 			wmi_unified_t wmi_handle,
3392*5113495bSYour Name 			struct edca_pifs_vparam *edca_pifs_param);
3393*5113495bSYour Name 
3394*5113495bSYour Name QDF_STATUS (*extract_sap_coex_cap_service_ready_ext2)(
3395*5113495bSYour Name 			wmi_unified_t wmi_handle, uint8_t *event,
3396*5113495bSYour Name 			struct wmi_host_coex_fix_chan_cap *cap);
3397*5113495bSYour Name 
3398*5113495bSYour Name #ifdef WMI_AP_SUPPORT
3399*5113495bSYour Name QDF_STATUS
3400*5113495bSYour Name (*send_wmi_tdma_schedule_request_cmd)(wmi_unified_t wmi_handle,
3401*5113495bSYour Name 				      struct wlan_tdma_sched_cmd_param *param);
3402*5113495bSYour Name 
3403*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
3404*5113495bSYour Name QDF_STATUS
3405*5113495bSYour Name (*send_wmi_link_recommendation_cmd)(wmi_unified_t wmi_handle,
3406*5113495bSYour Name 				    struct wlan_link_recmnd_param *param);
3407*5113495bSYour Name #endif
3408*5113495bSYour Name #endif
3409*5113495bSYour Name 
3410*5113495bSYour Name QDF_STATUS
3411*5113495bSYour Name (*extract_tgtr2p_table_event)(wmi_unified_t wmi_handle,
3412*5113495bSYour Name 			      uint8_t *evt_buf,
3413*5113495bSYour Name 			      struct r2p_table_update_status_obj *update_status,
3414*5113495bSYour Name 			      uint32_t len);
3415*5113495bSYour Name QDF_STATUS
3416*5113495bSYour Name (*extract_csa_ie_received_ev_params)(wmi_unified_t wmi_handle,
3417*5113495bSYour Name 				     void *evt_buf, uint8_t *vdev_id,
3418*5113495bSYour Name 				     struct csa_offload_params *csa_event);
3419*5113495bSYour Name #ifdef QCA_SUPPORT_PRIMARY_LINK_MIGRATE
3420*5113495bSYour Name QDF_STATUS (*send_peer_ptqm_migrate_cmd)(
3421*5113495bSYour Name 				wmi_unified_t wmi,
3422*5113495bSYour Name 				struct peer_ptqm_migrate_params *param);
3423*5113495bSYour Name 
3424*5113495bSYour Name QDF_STATUS (*extract_peer_ptqm_migrate_event)(
3425*5113495bSYour Name 		struct wmi_unified *wmi_handle,
3426*5113495bSYour Name 		uint8_t *buf,
3427*5113495bSYour Name 		struct peer_ptqm_migrate_event_params *params);
3428*5113495bSYour Name 
3429*5113495bSYour Name QDF_STATUS (*extract_peer_entry_ptqm_migrate_event)(
3430*5113495bSYour Name 		struct wmi_unified *wmi_handle,
3431*5113495bSYour Name 		uint8_t *buf,
3432*5113495bSYour Name 		uint32_t index,
3433*5113495bSYour Name 		struct peer_entry_ptqm_migrate_event_params *entry);
3434*5113495bSYour Name #endif /* QCA_SUPPORT_PRIMARY_LINK_MIGRATE */
3435*5113495bSYour Name 
3436*5113495bSYour Name QDF_STATUS (*extract_aux_dev_cap_service_ready_ext2)(
3437*5113495bSYour Name 			wmi_unified_t wmi_handle,
3438*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
3439*5113495bSYour Name 			struct wlan_psoc_host_aux_dev_caps *param);
3440*5113495bSYour Name 
3441*5113495bSYour Name #ifdef WLAN_RCC_ENHANCED_AOA_SUPPORT
3442*5113495bSYour Name QDF_STATUS (*extract_aoa_caps_service_ready_ext2)
3443*5113495bSYour Name 		(struct wmi_unified *wmi_handle, uint8_t *buf,
3444*5113495bSYour Name 		 struct wlan_psoc_host_rcc_enh_aoa_caps_ext2 *aoa_cap);
3445*5113495bSYour Name #endif /* WLAN_RCC_ENHANCED_AOA_SUPPORT */
3446*5113495bSYour Name 
3447*5113495bSYour Name #ifdef QCA_TARGET_IF_MLME
3448*5113495bSYour Name QDF_STATUS (*send_csa_event_status_ind)(
3449*5113495bSYour Name 		wmi_unified_t wmi_handle,
3450*5113495bSYour Name 		struct csa_event_status_ind params);
3451*5113495bSYour Name 
3452*5113495bSYour Name #ifdef WLAN_FEATURE_LL_LT_SAP
3453*5113495bSYour Name QDF_STATUS (*send_audio_transport_switch_resp)(
3454*5113495bSYour Name 		wmi_unified_t wmi_hdl,
3455*5113495bSYour Name 		enum bearer_switch_req_type req_type,
3456*5113495bSYour Name 		enum bearer_switch_status status);
3457*5113495bSYour Name 
3458*5113495bSYour Name QDF_STATUS (*extract_audio_transport_switch_req_event)(
3459*5113495bSYour Name 					wmi_unified_t wmi_hdl,
3460*5113495bSYour Name 					uint8_t *event, uint32_t data_len,
3461*5113495bSYour Name 					enum bearer_switch_req_type *req_type);
3462*5113495bSYour Name 
3463*5113495bSYour Name #endif /* WLAN_FEATURE_LL_LT_SAP */
3464*5113495bSYour Name #endif /* QCA_TARGET_IF_MLME */
3465*5113495bSYour Name };
3466*5113495bSYour Name 
3467*5113495bSYour Name /* Forward declaration for psoc*/
3468*5113495bSYour Name struct wlan_objmgr_psoc;
3469*5113495bSYour Name 
3470*5113495bSYour Name /**
3471*5113495bSYour Name  * struct wmi_cmd_init - Saved wmi INIT command
3472*5113495bSYour Name  * @buf: Buffer containing the wmi INIT command
3473*5113495bSYour Name  * @buf_len: Length of the buffer
3474*5113495bSYour Name  */
3475*5113495bSYour Name struct wmi_cmd_init {
3476*5113495bSYour Name 	wmi_buf_t buf;
3477*5113495bSYour Name 	uint32_t buf_len;
3478*5113495bSYour Name };
3479*5113495bSYour Name 
3480*5113495bSYour Name /**
3481*5113495bSYour Name  * struct wmi_host_abi_version - HOST WMI ABI version
3482*5113495bSYour Name  * @abi_version_0: WMI Major and Minor versions
3483*5113495bSYour Name  * @abi_version_1: WMI change revision
3484*5113495bSYour Name  * @abi_version_ns_0: ABI version namespace first four dwords
3485*5113495bSYour Name  * @abi_version_ns_1: ABI version namespace second four dwords
3486*5113495bSYour Name  * @abi_version_ns_2: ABI version namespace third four dwords
3487*5113495bSYour Name  * @abi_version_ns_3: ABI version namespace fourth four dwords
3488*5113495bSYour Name  */
3489*5113495bSYour Name struct wmi_host_abi_version {
3490*5113495bSYour Name 	uint32_t abi_version_0;
3491*5113495bSYour Name 	uint32_t abi_version_1;
3492*5113495bSYour Name 	uint32_t abi_version_ns_0;
3493*5113495bSYour Name 	uint32_t abi_version_ns_1;
3494*5113495bSYour Name 	uint32_t abi_version_ns_2;
3495*5113495bSYour Name 	uint32_t abi_version_ns_3;
3496*5113495bSYour Name };
3497*5113495bSYour Name 
3498*5113495bSYour Name /* number of debugfs entries used */
3499*5113495bSYour Name #ifdef WMI_INTERFACE_FILTERED_EVENT_LOGGING
3500*5113495bSYour Name /* filtered logging added 4 more entries */
3501*5113495bSYour Name #define NUM_DEBUG_INFOS 13
3502*5113495bSYour Name #else
3503*5113495bSYour Name #define NUM_DEBUG_INFOS 9
3504*5113495bSYour Name #endif
3505*5113495bSYour Name 
3506*5113495bSYour Name struct wmi_unified {
3507*5113495bSYour Name 	void *scn_handle;    /* handle to device */
3508*5113495bSYour Name 	osdev_t  osdev; /* handle to use OS-independent services */
3509*5113495bSYour Name 	struct wbuff_mod_handle *wbuff_handle; /* handle to wbuff */
3510*5113495bSYour Name 	qdf_atomic_t pending_cmds;
3511*5113495bSYour Name 	HTC_ENDPOINT_ID wmi_endpoint_id;
3512*5113495bSYour Name 	uint16_t max_msg_len;
3513*5113495bSYour Name 	uint32_t *event_id;
3514*5113495bSYour Name 	wmi_unified_event_handler *event_handler;
3515*5113495bSYour Name 	struct wmi_unified_exec_ctx *ctx;
3516*5113495bSYour Name 	HTC_HANDLE htc_handle;
3517*5113495bSYour Name 	qdf_spinlock_t eventq_lock;
3518*5113495bSYour Name 	qdf_nbuf_queue_t event_queue;
3519*5113495bSYour Name 	qdf_work_t rx_event_work;
3520*5113495bSYour Name 	qdf_workqueue_t *wmi_rx_work_queue;
3521*5113495bSYour Name 	qdf_workqueue_t *wmi_rx_diag_work_queue;
3522*5113495bSYour Name 	qdf_spinlock_t diag_eventq_lock;
3523*5113495bSYour Name 	qdf_nbuf_queue_t diag_event_queue;
3524*5113495bSYour Name 	qdf_work_t rx_diag_event_work;
3525*5113495bSYour Name 	uint32_t wmi_rx_diag_events_dropped;
3526*5113495bSYour Name 	int wmi_stop_in_progress;
3527*5113495bSYour Name 	struct wmi_host_abi_version fw_abi_version;
3528*5113495bSYour Name 	struct wmi_host_abi_version final_abi_vers;
3529*5113495bSYour Name 	uint32_t num_of_diag_events_logs;
3530*5113495bSYour Name 	uint32_t *events_logs_list;
3531*5113495bSYour Name #ifdef WLAN_DBGLOG_DEBUGFS
3532*5113495bSYour Name 	struct fwdebug dbglog;
3533*5113495bSYour Name 	struct dentry *debugfs_phy;
3534*5113495bSYour Name #endif /* WLAN_DBGLOG_DEBUGFS */
3535*5113495bSYour Name 
3536*5113495bSYour Name #ifdef WMI_INTERFACE_EVENT_LOGGING
3537*5113495bSYour Name 	struct wmi_debug_log_info log_info;
3538*5113495bSYour Name #endif /*WMI_INTERFACE_EVENT_LOGGING */
3539*5113495bSYour Name 
3540*5113495bSYour Name 	qdf_atomic_t is_target_suspended;
3541*5113495bSYour Name 	qdf_atomic_t is_target_suspend_acked;
3542*5113495bSYour Name #ifdef WLAN_FEATURE_WMI_SEND_RECV_QMI
3543*5113495bSYour Name 	bool is_qmi_stats_enabled;
3544*5113495bSYour Name #endif
3545*5113495bSYour Name 
3546*5113495bSYour Name #ifdef FEATURE_RUNTIME_PM
3547*5113495bSYour Name 	qdf_atomic_t runtime_pm_inprogress;
3548*5113495bSYour Name #endif
3549*5113495bSYour Name 	qdf_atomic_t is_wow_bus_suspended;
3550*5113495bSYour Name 	qdf_atomic_t is_wow_enable_ack_failed;
3551*5113495bSYour Name 	bool tag_crash_inject;
3552*5113495bSYour Name 	bool tgt_force_assert_enable;
3553*5113495bSYour Name 	enum wmi_target_type target_type;
3554*5113495bSYour Name 	struct wmi_ops *ops;
3555*5113495bSYour Name 	bool use_cookie;
3556*5113495bSYour Name 	bool wmi_stopinprogress;
3557*5113495bSYour Name 	uint32_t *wmi_events;
3558*5113495bSYour Name 	uint32_t *services;
3559*5113495bSYour Name 	struct wmi_soc *soc;
3560*5113495bSYour Name 	uint16_t wmi_max_cmds;
3561*5113495bSYour Name 	struct dentry *debugfs_de[NUM_DEBUG_INFOS];
3562*5113495bSYour Name 	qdf_atomic_t critical_events_in_flight;
3563*5113495bSYour Name #ifdef WMI_EXT_DBG
3564*5113495bSYour Name 	int wmi_ext_dbg_msg_queue_size;
3565*5113495bSYour Name 	qdf_list_t wmi_ext_dbg_msg_queue;
3566*5113495bSYour Name 	qdf_spinlock_t wmi_ext_dbg_msg_queue_lock;
3567*5113495bSYour Name 	qdf_dentry_t wmi_ext_dbg_dentry;
3568*5113495bSYour Name #endif /*WMI_EXT_DBG*/
3569*5113495bSYour Name 	uint32_t *cmd_pdev_id_map;
3570*5113495bSYour Name 	uint32_t *evt_pdev_id_map;
3571*5113495bSYour Name 	uint32_t *cmd_phy_id_map;
3572*5113495bSYour Name 	uint32_t *evt_phy_id_map;
3573*5113495bSYour Name #ifdef WMI_INTERFACE_SEQUENCE_CHECK
3574*5113495bSYour Name 	/* wmi sequence stop */
3575*5113495bSYour Name 	bool wmi_sequence_stop;
3576*5113495bSYour Name 	/* wmi next transmit sequence number */
3577*5113495bSYour Name 	uint32_t wmi_sequence;
3578*5113495bSYour Name 	/* wmi completion expected sequence number */
3579*5113495bSYour Name 	uint32_t wmi_exp_sequence;
3580*5113495bSYour Name 	qdf_spinlock_t wmi_seq_lock;
3581*5113495bSYour Name #endif /*WMI_INTERFACE_SEQUENCE_CHECK*/
3582*5113495bSYour Name 
3583*5113495bSYour Name 	qdf_atomic_t num_stats_over_qmi;
3584*5113495bSYour Name };
3585*5113495bSYour Name 
3586*5113495bSYour Name #define WMI_MAX_RADIOS 3
3587*5113495bSYour Name struct wmi_soc {
3588*5113495bSYour Name 	struct wlan_objmgr_psoc *wmi_psoc;
3589*5113495bSYour Name 	void *scn_handle;    /* handle to device */
3590*5113495bSYour Name 	qdf_atomic_t num_pdevs;
3591*5113495bSYour Name 	enum wmi_target_type target_type;
3592*5113495bSYour Name 	bool is_async_ep;
3593*5113495bSYour Name 	HTC_HANDLE htc_handle;
3594*5113495bSYour Name 	uint32_t event_id[WMI_UNIFIED_MAX_EVENT];
3595*5113495bSYour Name 	wmi_unified_event_handler event_handler[WMI_UNIFIED_MAX_EVENT];
3596*5113495bSYour Name 	uint32_t max_event_idx;
3597*5113495bSYour Name 	struct wmi_unified_exec_ctx ctx[WMI_UNIFIED_MAX_EVENT];
3598*5113495bSYour Name 	qdf_spinlock_t ctx_lock;
3599*5113495bSYour Name 	struct wmi_unified *wmi_pdev[WMI_MAX_RADIOS];
3600*5113495bSYour Name 	HTC_ENDPOINT_ID wmi_endpoint_id[WMI_MAX_RADIOS];
3601*5113495bSYour Name 	uint16_t max_msg_len[WMI_MAX_RADIOS];
3602*5113495bSYour Name 	struct wmi_ops *ops;
3603*5113495bSYour Name 	const uint32_t *svc_ids;
3604*5113495bSYour Name #if defined(WLAN_FEATURE_WMI_DIAG_OVER_CE7) || \
3605*5113495bSYour Name 	defined(WLAN_DIAG_AND_DBR_OVER_SEPARATE_CE)
3606*5113495bSYour Name 	HTC_ENDPOINT_ID wmi_diag_endpoint_id;
3607*5113495bSYour Name #endif
3608*5113495bSYour Name #if defined(WLAN_DIAG_AND_DBR_OVER_SEPARATE_CE)
3609*5113495bSYour Name 	HTC_ENDPOINT_ID wmi_dbr_endpoint_id;
3610*5113495bSYour Name #endif
3611*5113495bSYour Name 	uint32_t wmi_events[wmi_events_max];
3612*5113495bSYour Name 	/* WMI service bitmap received from target */
3613*5113495bSYour Name 	uint32_t *wmi_service_bitmap;
3614*5113495bSYour Name 	uint32_t *wmi_ext_service_bitmap;
3615*5113495bSYour Name 	uint32_t wmi_ext2_service_bitmap_len;
3616*5113495bSYour Name 	uint32_t *wmi_ext2_service_bitmap;
3617*5113495bSYour Name 	uint32_t services[wmi_services_max];
3618*5113495bSYour Name 	uint16_t wmi_max_cmds;
3619*5113495bSYour Name 	uint32_t soc_idx;
3620*5113495bSYour Name 	uint32_t cmd_pdev_id_map[WMI_MAX_RADIOS];
3621*5113495bSYour Name 	uint32_t evt_pdev_id_map[WMI_MAX_RADIOS];
3622*5113495bSYour Name 	uint32_t cmd_phy_id_map[WMI_MAX_RADIOS];
3623*5113495bSYour Name 	uint32_t evt_phy_id_map[WMI_MAX_RADIOS];
3624*5113495bSYour Name 	bool is_pdev_is_map_enable;
3625*5113495bSYour Name 	bool is_phy_id_map_enable;
3626*5113495bSYour Name #ifdef WMI_INTERFACE_EVENT_LOGGING
3627*5113495bSYour Name 	uint32_t buf_offset_command;
3628*5113495bSYour Name 	uint32_t buf_offset_event;
3629*5113495bSYour Name #endif /*WMI_INTERFACE_EVENT_LOGGING */
3630*5113495bSYour Name };
3631*5113495bSYour Name 
3632*5113495bSYour Name /**
3633*5113495bSYour Name  * struct wmi_process_fw_event_params - fw event parameters
3634*5113495bSYour Name  * @wmi_handle: wmi handle
3635*5113495bSYour Name  * @evt_buf: event buffer
3636*5113495bSYour Name  */
3637*5113495bSYour Name struct wmi_process_fw_event_params {
3638*5113495bSYour Name 	void *wmi_handle;
3639*5113495bSYour Name 	void *evt_buf;
3640*5113495bSYour Name };
3641*5113495bSYour Name 
3642*5113495bSYour Name /**
3643*5113495bSYour Name  * wmi_mtrace() - Wrappper function for qdf_mtrace api
3644*5113495bSYour Name  * @message_id: 32-Bit Wmi message ID
3645*5113495bSYour Name  * @vdev_id: Vdev ID
3646*5113495bSYour Name  * @data: Actual message contents
3647*5113495bSYour Name  *
3648*5113495bSYour Name  * This function converts the 32-bit WMI message ID in 15-bit message ID
3649*5113495bSYour Name  * format for qdf_mtrace as in qdf_mtrace message there are only 15
3650*5113495bSYour Name  * bits reserved for message ID.
3651*5113495bSYour Name  * out of these 15-bits, 8-bits (From MSB) specifies the WMI_GRP_ID
3652*5113495bSYour Name  * and remaining 7-bits specifies the actual WMI command. With this
3653*5113495bSYour Name  * notation there can be maximum 256 groups and each group can have
3654*5113495bSYour Name  * max 128 commands can be supported.
3655*5113495bSYour Name  *
3656*5113495bSYour Name  * Return: None
3657*5113495bSYour Name  */
3658*5113495bSYour Name void wmi_mtrace(uint32_t message_id, uint16_t vdev_id, uint32_t data);
3659*5113495bSYour Name 
3660*5113495bSYour Name void wmi_unified_register_module(enum wmi_target_type target_type,
3661*5113495bSYour Name 			void (*wmi_attach)(wmi_unified_t wmi_handle));
3662*5113495bSYour Name void wmi_tlv_init(void);
3663*5113495bSYour Name void wmi_non_tlv_init(void);
3664*5113495bSYour Name #ifdef WMI_NON_TLV_SUPPORT
3665*5113495bSYour Name /* ONLY_NON_TLV_TARGET:TLV attach dummy function definition for case when
3666*5113495bSYour Name  * driver supports only NON-TLV target (WIN mainline) */
3667*5113495bSYour Name #define wmi_tlv_attach(x) qdf_print("TLV Unavailable")
3668*5113495bSYour Name #else
3669*5113495bSYour Name void wmi_tlv_attach(wmi_unified_t wmi_handle);
3670*5113495bSYour Name #endif
3671*5113495bSYour Name void wmi_non_tlv_attach(wmi_unified_t wmi_handle);
3672*5113495bSYour Name 
3673*5113495bSYour Name #ifdef FEATURE_WLAN_EXTSCAN
3674*5113495bSYour Name void wmi_extscan_attach_tlv(struct wmi_unified *wmi_handle);
3675*5113495bSYour Name #else
wmi_extscan_attach_tlv(struct wmi_unified * wmi_handle)3676*5113495bSYour Name static inline void wmi_extscan_attach_tlv(struct wmi_unified *wmi_handle)
3677*5113495bSYour Name {
3678*5113495bSYour Name }
3679*5113495bSYour Name #endif
3680*5113495bSYour Name 
3681*5113495bSYour Name #ifdef WMI_SMART_ANT_SUPPORT
3682*5113495bSYour Name void wmi_smart_ant_attach_tlv(struct wmi_unified *wmi_handle);
3683*5113495bSYour Name #else
wmi_smart_ant_attach_tlv(struct wmi_unified * wmi_handle)3684*5113495bSYour Name static inline void wmi_smart_ant_attach_tlv(struct wmi_unified *wmi_handle)
3685*5113495bSYour Name {
3686*5113495bSYour Name }
3687*5113495bSYour Name #endif
3688*5113495bSYour Name 
3689*5113495bSYour Name #ifdef WMI_DBR_SUPPORT
3690*5113495bSYour Name void wmi_dbr_attach_tlv(struct wmi_unified *wmi_handle);
3691*5113495bSYour Name #else
wmi_dbr_attach_tlv(struct wmi_unified * wmi_handle)3692*5113495bSYour Name static inline void wmi_dbr_attach_tlv(struct wmi_unified *wmi_handle)
3693*5113495bSYour Name {
3694*5113495bSYour Name }
3695*5113495bSYour Name #endif
3696*5113495bSYour Name 
3697*5113495bSYour Name #ifdef WMI_ATF_SUPPORT
3698*5113495bSYour Name void wmi_atf_attach_tlv(struct wmi_unified *wmi_handle);
3699*5113495bSYour Name #else
wmi_atf_attach_tlv(struct wmi_unified * wmi_handle)3700*5113495bSYour Name static inline void wmi_atf_attach_tlv(struct wmi_unified *wmi_handle)
3701*5113495bSYour Name {
3702*5113495bSYour Name }
3703*5113495bSYour Name #endif
3704*5113495bSYour Name 
3705*5113495bSYour Name #ifdef WMI_AP_SUPPORT
3706*5113495bSYour Name void wmi_ap_attach_tlv(struct wmi_unified *wmi_handle);
3707*5113495bSYour Name #else
wmi_ap_attach_tlv(struct wmi_unified * wmi_handle)3708*5113495bSYour Name static inline void wmi_ap_attach_tlv(struct wmi_unified *wmi_handle)
3709*5113495bSYour Name {
3710*5113495bSYour Name }
3711*5113495bSYour Name #endif
3712*5113495bSYour Name 
3713*5113495bSYour Name #ifdef WLAN_FEATURE_DSRC
3714*5113495bSYour Name void wmi_ocb_attach_tlv(wmi_unified_t wmi_handle);
3715*5113495bSYour Name #else
wmi_ocb_attach_tlv(wmi_unified_t wmi_handle)3716*5113495bSYour Name static inline void wmi_ocb_attach_tlv(wmi_unified_t wmi_handle)
3717*5113495bSYour Name {
3718*5113495bSYour Name }
3719*5113495bSYour Name #endif
3720*5113495bSYour Name 
3721*5113495bSYour Name #ifdef WLAN_FEATURE_NAN
3722*5113495bSYour Name void wmi_nan_attach_tlv(wmi_unified_t wmi_handle);
3723*5113495bSYour Name #else
wmi_nan_attach_tlv(wmi_unified_t wmi_handle)3724*5113495bSYour Name static inline void wmi_nan_attach_tlv(wmi_unified_t wmi_handle)
3725*5113495bSYour Name {
3726*5113495bSYour Name }
3727*5113495bSYour Name #endif
3728*5113495bSYour Name 
3729*5113495bSYour Name #ifdef FEATURE_P2P_LISTEN_OFFLOAD
3730*5113495bSYour Name void wmi_p2p_listen_offload_attach_tlv(wmi_unified_t wmi_handle);
3731*5113495bSYour Name #else
3732*5113495bSYour Name static inline
wmi_p2p_listen_offload_attach_tlv(wmi_unified_t wmi_handle)3733*5113495bSYour Name void wmi_p2p_listen_offload_attach_tlv(wmi_unified_t wmi_handle)
3734*5113495bSYour Name {
3735*5113495bSYour Name }
3736*5113495bSYour Name #endif
3737*5113495bSYour Name 
3738*5113495bSYour Name #ifdef CONVERGED_P2P_ENABLE
3739*5113495bSYour Name void wmi_p2p_attach_tlv(wmi_unified_t wmi_handle);
3740*5113495bSYour Name #else
wmi_p2p_attach_tlv(struct wmi_unified * wmi_handle)3741*5113495bSYour Name static inline void wmi_p2p_attach_tlv(struct wmi_unified *wmi_handle)
3742*5113495bSYour Name {
3743*5113495bSYour Name }
3744*5113495bSYour Name #endif
3745*5113495bSYour Name 
3746*5113495bSYour Name #ifdef WLAN_FEATURE_INTEROP_ISSUES_AP
3747*5113495bSYour Name void wmi_interop_issues_ap_attach_tlv(wmi_unified_t wmi_handle);
3748*5113495bSYour Name #else
3749*5113495bSYour Name static inline void
wmi_interop_issues_ap_attach_tlv(struct wmi_unified * wmi_handle)3750*5113495bSYour Name wmi_interop_issues_ap_attach_tlv(struct wmi_unified *wmi_handle)
3751*5113495bSYour Name {
3752*5113495bSYour Name }
3753*5113495bSYour Name #endif
3754*5113495bSYour Name 
3755*5113495bSYour Name #ifdef DCS_INTERFERENCE_DETECTION
3756*5113495bSYour Name void wmi_dcs_attach_tlv(wmi_unified_t wmi_handle);
3757*5113495bSYour Name #else
3758*5113495bSYour Name static inline void
wmi_dcs_attach_tlv(struct wmi_unified * wmi_handle)3759*5113495bSYour Name wmi_dcs_attach_tlv(struct wmi_unified *wmi_handle)
3760*5113495bSYour Name {
3761*5113495bSYour Name }
3762*5113495bSYour Name #endif
3763*5113495bSYour Name 
3764*5113495bSYour Name #ifdef FEATURE_LFR_SUBNET_DETECTION
3765*5113495bSYour Name void wmi_lfr_subnet_detection_attach_tlv(wmi_unified_t wmi_handle);
3766*5113495bSYour Name #else
3767*5113495bSYour Name static inline
wmi_lfr_subnet_detection_attach_tlv(struct wmi_unified * wmi_handle)3768*5113495bSYour Name void wmi_lfr_subnet_detection_attach_tlv(struct wmi_unified *wmi_handle)
3769*5113495bSYour Name {
3770*5113495bSYour Name }
3771*5113495bSYour Name #endif
3772*5113495bSYour Name 
3773*5113495bSYour Name #ifdef FEATURE_RSSI_MONITOR
3774*5113495bSYour Name void wmi_rssi_monitor_attach_tlv(wmi_unified_t wmi_handle);
3775*5113495bSYour Name #else
3776*5113495bSYour Name static inline
wmi_rssi_monitor_attach_tlv(struct wmi_unified * wmi_handle)3777*5113495bSYour Name void wmi_rssi_monitor_attach_tlv(struct wmi_unified *wmi_handle)
3778*5113495bSYour Name {
3779*5113495bSYour Name }
3780*5113495bSYour Name #endif
3781*5113495bSYour Name 
3782*5113495bSYour Name #ifdef FEATURE_WLAN_ESE
3783*5113495bSYour Name void wmi_ese_attach_tlv(wmi_unified_t wmi_handle);
3784*5113495bSYour Name #else
wmi_ese_attach_tlv(struct wmi_unified * wmi_handle)3785*5113495bSYour Name static inline void wmi_ese_attach_tlv(struct wmi_unified *wmi_handle)
3786*5113495bSYour Name {
3787*5113495bSYour Name }
3788*5113495bSYour Name #endif
3789*5113495bSYour Name 
3790*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
3791*5113495bSYour Name void wmi_roam_offload_attach_tlv(wmi_unified_t wmi_handle);
3792*5113495bSYour Name #else
3793*5113495bSYour Name static inline
wmi_roam_offload_attach_tlv(struct wmi_unified * wmi_handle)3794*5113495bSYour Name void wmi_roam_offload_attach_tlv(struct wmi_unified *wmi_handle)
3795*5113495bSYour Name {
3796*5113495bSYour Name }
3797*5113495bSYour Name #endif
3798*5113495bSYour Name 
3799*5113495bSYour Name #ifdef WLAN_FEATURE_FILS_SK
3800*5113495bSYour Name void wmi_fils_sk_attach_tlv(wmi_unified_t wmi_handle);
3801*5113495bSYour Name #else
wmi_fils_sk_attach_tlv(struct wmi_unified * wmi_handle)3802*5113495bSYour Name static inline void wmi_fils_sk_attach_tlv(struct wmi_unified *wmi_handle)
3803*5113495bSYour Name {
3804*5113495bSYour Name }
3805*5113495bSYour Name #endif
3806*5113495bSYour Name 
3807*5113495bSYour Name #ifdef WMI_ROAM_SUPPORT
3808*5113495bSYour Name void wmi_roam_attach_tlv(struct wmi_unified *wmi_handle);
3809*5113495bSYour Name #else
wmi_roam_attach_tlv(struct wmi_unified * wmi_handle)3810*5113495bSYour Name static inline void wmi_roam_attach_tlv(struct wmi_unified *wmi_handle)
3811*5113495bSYour Name {
3812*5113495bSYour Name }
3813*5113495bSYour Name #endif
3814*5113495bSYour Name 
3815*5113495bSYour Name #ifdef WMI_CONCURRENCY_SUPPORT
3816*5113495bSYour Name void wmi_concurrency_attach_tlv(struct wmi_unified *wmi_handle);
3817*5113495bSYour Name #else
wmi_concurrency_attach_tlv(struct wmi_unified * wmi_handle)3818*5113495bSYour Name static inline void wmi_concurrency_attach_tlv(struct wmi_unified *wmi_handle)
3819*5113495bSYour Name {
3820*5113495bSYour Name }
3821*5113495bSYour Name #endif
3822*5113495bSYour Name 
3823*5113495bSYour Name #ifdef FEATURE_WLAN_D0WOW
3824*5113495bSYour Name void wmi_d0wow_attach_tlv(struct wmi_unified *wmi_handle);
3825*5113495bSYour Name #else
wmi_d0wow_attach_tlv(struct wmi_unified * wmi_handle)3826*5113495bSYour Name static inline void wmi_d0wow_attach_tlv(struct wmi_unified *wmi_handle)
3827*5113495bSYour Name {
3828*5113495bSYour Name }
3829*5113495bSYour Name #endif
3830*5113495bSYour Name 
3831*5113495bSYour Name #ifdef FEATURE_WLAN_RA_FILTERING
3832*5113495bSYour Name void wmi_ra_filtering_attach_tlv(struct wmi_unified *wmi_handle);
3833*5113495bSYour Name #else
3834*5113495bSYour Name static inline
wmi_ra_filtering_attach_tlv(struct wmi_unified * wmi_handle)3835*5113495bSYour Name void wmi_ra_filtering_attach_tlv(struct wmi_unified *wmi_handle)
3836*5113495bSYour Name {
3837*5113495bSYour Name }
3838*5113495bSYour Name #endif
3839*5113495bSYour Name 
3840*5113495bSYour Name #ifdef FEATURE_WLAN_LPHB
3841*5113495bSYour Name void wmi_lphb_attach_tlv(struct wmi_unified *wmi_handle);
3842*5113495bSYour Name #else
wmi_lphb_attach_tlv(struct wmi_unified * wmi_handle)3843*5113495bSYour Name static inline void wmi_lphb_attach_tlv(struct wmi_unified *wmi_handle)
3844*5113495bSYour Name {
3845*5113495bSYour Name }
3846*5113495bSYour Name #endif
3847*5113495bSYour Name 
3848*5113495bSYour Name #ifdef WLAN_FEATURE_PACKET_FILTERING
3849*5113495bSYour Name void wmi_packet_filtering_attach_tlv(struct wmi_unified *wmi_handle);
3850*5113495bSYour Name #else
3851*5113495bSYour Name static inline
wmi_packet_filtering_attach_tlv(struct wmi_unified * wmi_handle)3852*5113495bSYour Name void wmi_packet_filtering_attach_tlv(struct wmi_unified *wmi_handle)
3853*5113495bSYour Name {
3854*5113495bSYour Name }
3855*5113495bSYour Name #endif
3856*5113495bSYour Name 
3857*5113495bSYour Name #ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3858*5113495bSYour Name void wmi_extwow_attach_tlv(struct wmi_unified *wmi_handle);
3859*5113495bSYour Name #else
wmi_extwow_attach_tlv(struct wmi_unified * wmi_handle)3860*5113495bSYour Name static inline void wmi_extwow_attach_tlv(struct wmi_unified *wmi_handle)
3861*5113495bSYour Name {
3862*5113495bSYour Name }
3863*5113495bSYour Name #endif
3864*5113495bSYour Name 
3865*5113495bSYour Name #ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
3866*5113495bSYour Name void wmi_pmo_attach_tlv(struct wmi_unified *wmi_handle);
3867*5113495bSYour Name #else
wmi_pmo_attach_tlv(struct wmi_unified * wmi_handle)3868*5113495bSYour Name static inline void wmi_pmo_attach_tlv(struct wmi_unified *wmi_handle)
3869*5113495bSYour Name {
3870*5113495bSYour Name }
3871*5113495bSYour Name #endif
3872*5113495bSYour Name 
3873*5113495bSYour Name #ifdef FEATURE_WLAN_TDLS
3874*5113495bSYour Name void wmi_tdls_attach_tlv(struct wmi_unified *wmi_handle);
3875*5113495bSYour Name #else
wmi_tdls_attach_tlv(struct wmi_unified * wmi_handle)3876*5113495bSYour Name static inline void wmi_tdls_attach_tlv(struct wmi_unified *wmi_handle)
3877*5113495bSYour Name {
3878*5113495bSYour Name }
3879*5113495bSYour Name #endif
3880*5113495bSYour Name 
3881*5113495bSYour Name #ifdef WLAN_POLICY_MGR_ENABLE
3882*5113495bSYour Name void wmi_policy_mgr_attach_tlv(struct wmi_unified *wmi_handle);
3883*5113495bSYour Name #else
3884*5113495bSYour Name static inline
wmi_policy_mgr_attach_tlv(struct wmi_unified * wmi_handle)3885*5113495bSYour Name void wmi_policy_mgr_attach_tlv(struct wmi_unified *wmi_handle)
3886*5113495bSYour Name {
3887*5113495bSYour Name }
3888*5113495bSYour Name #endif
3889*5113495bSYour Name 
3890*5113495bSYour Name #if defined(WLAN_FEATURE_ROAM_OFFLOAD) && defined(FEATURE_DENYLIST_MGR)
3891*5113495bSYour Name void wmi_denylist_mgr_attach_tlv(struct wmi_unified *wmi_handle);
3892*5113495bSYour Name #else
3893*5113495bSYour Name static inline
wmi_denylist_mgr_attach_tlv(struct wmi_unified * wmi_handle)3894*5113495bSYour Name void wmi_denylist_mgr_attach_tlv(struct wmi_unified *wmi_handle)
3895*5113495bSYour Name {
3896*5113495bSYour Name }
3897*5113495bSYour Name #endif
3898*5113495bSYour Name 
3899*5113495bSYour Name #ifdef WMI_STA_SUPPORT
3900*5113495bSYour Name void wmi_sta_attach_tlv(struct wmi_unified *wmi_handle);
3901*5113495bSYour Name #else
wmi_sta_attach_tlv(struct wmi_unified * wmi_handle)3902*5113495bSYour Name static inline void wmi_sta_attach_tlv(struct wmi_unified *wmi_handle)
3903*5113495bSYour Name {
3904*5113495bSYour Name }
3905*5113495bSYour Name #endif
3906*5113495bSYour Name 
3907*5113495bSYour Name #ifdef WLAN_WMI_BCN
3908*5113495bSYour Name void wmi_bcn_attach_tlv(wmi_unified_t wmi_handle);
3909*5113495bSYour Name #else
wmi_bcn_attach_tlv(wmi_unified_t wmi_handle)3910*5113495bSYour Name static inline void wmi_bcn_attach_tlv(wmi_unified_t wmi_handle)
3911*5113495bSYour Name {
3912*5113495bSYour Name }
3913*5113495bSYour Name #endif
3914*5113495bSYour Name 
3915*5113495bSYour Name /**
3916*5113495bSYour Name  * wmi_fwol_attach_tlv() - attach fw offload tlv handlers
3917*5113495bSYour Name  * @wmi_handle: wmi handle
3918*5113495bSYour Name  *
3919*5113495bSYour Name  * Return: void
3920*5113495bSYour Name  */
3921*5113495bSYour Name #ifdef WLAN_FW_OFFLOAD
3922*5113495bSYour Name void wmi_fwol_attach_tlv(wmi_unified_t wmi_handle);
3923*5113495bSYour Name #else
wmi_fwol_attach_tlv(wmi_unified_t wmi_handle)3924*5113495bSYour Name static inline void wmi_fwol_attach_tlv(wmi_unified_t wmi_handle)
3925*5113495bSYour Name {
3926*5113495bSYour Name }
3927*5113495bSYour Name #endif
3928*5113495bSYour Name 
3929*5113495bSYour Name /**
3930*5113495bSYour Name  * wmi_gpio_attach_tlv() - attach gpio tlv handlers
3931*5113495bSYour Name  * @wmi_handle: wmi handle
3932*5113495bSYour Name  *
3933*5113495bSYour Name  * Return: void
3934*5113495bSYour Name  */
3935*5113495bSYour Name #ifdef WLAN_FEATURE_GPIO_CFG
3936*5113495bSYour Name void wmi_gpio_attach_tlv(wmi_unified_t wmi_handle);
3937*5113495bSYour Name #else
3938*5113495bSYour Name static inline void
wmi_gpio_attach_tlv(struct wmi_unified * wmi_handle)3939*5113495bSYour Name wmi_gpio_attach_tlv(struct wmi_unified *wmi_handle)
3940*5113495bSYour Name {
3941*5113495bSYour Name }
3942*5113495bSYour Name #endif
3943*5113495bSYour Name 
3944*5113495bSYour Name /**
3945*5113495bSYour Name  * wmi_align() - provides word aligned parameter
3946*5113495bSYour Name  * @param: parameter to be aligned
3947*5113495bSYour Name  *
3948*5113495bSYour Name  * Return: word aligned parameter
3949*5113495bSYour Name  */
wmi_align(uint32_t param)3950*5113495bSYour Name static inline uint32_t wmi_align(uint32_t param)
3951*5113495bSYour Name {
3952*5113495bSYour Name 	return roundup(param, sizeof(uint32_t));
3953*5113495bSYour Name }
3954*5113495bSYour Name 
3955*5113495bSYour Name /**
3956*5113495bSYour Name  * wmi_vdev_map_to_vdev_id() - Provides vdev id corresponding to idx
3957*5113495bSYour Name  *                             from vdev map
3958*5113495bSYour Name  * @vdev_map: Bitmask containing information of active vdev ids
3959*5113495bSYour Name  * @idx: Index referring to the i'th bit set from LSB in vdev map
3960*5113495bSYour Name  *
3961*5113495bSYour Name  * This API returns the vdev id for the i'th bit set from LSB in vdev map.
3962*5113495bSYour Name  * Index runs through 1 from maximum number of vdevs set in the vdev map
3963*5113495bSYour Name  *
3964*5113495bSYour Name  * Return: vdev id of the vdev object
3965*5113495bSYour Name  */
wmi_vdev_map_to_vdev_id(uint32_t vdev_map,uint32_t idx)3966*5113495bSYour Name static inline uint32_t wmi_vdev_map_to_vdev_id(uint32_t vdev_map,
3967*5113495bSYour Name 					       uint32_t idx)
3968*5113495bSYour Name {
3969*5113495bSYour Name 	uint32_t vdev_count = 0, vdev_set = 0, vdev_id = WLAN_INVALID_VDEV_ID;
3970*5113495bSYour Name 
3971*5113495bSYour Name 	while (vdev_map) {
3972*5113495bSYour Name 		vdev_set += (vdev_map & 0x1);
3973*5113495bSYour Name 		if (vdev_set == (idx+1)) {
3974*5113495bSYour Name 			vdev_id = vdev_count;
3975*5113495bSYour Name 			break;
3976*5113495bSYour Name 		}
3977*5113495bSYour Name 		vdev_map >>= 1;
3978*5113495bSYour Name 		vdev_count++;
3979*5113495bSYour Name 	}
3980*5113495bSYour Name 
3981*5113495bSYour Name 	return vdev_id;
3982*5113495bSYour Name }
3983*5113495bSYour Name 
3984*5113495bSYour Name /**
3985*5113495bSYour Name  * wmi_vdev_map_to_num_vdevs() - Provides number of vdevs active based on the
3986*5113495bSYour Name  *                               vdev map received from FW
3987*5113495bSYour Name  * @vdev_map: Bitmask containing information of active vdev ids
3988*5113495bSYour Name  *
3989*5113495bSYour Name  * Return: Number of vdevs set in the vdev bit mask
3990*5113495bSYour Name  */
wmi_vdev_map_to_num_vdevs(uint32_t vdev_map)3991*5113495bSYour Name static inline uint32_t wmi_vdev_map_to_num_vdevs(uint32_t vdev_map)
3992*5113495bSYour Name {
3993*5113495bSYour Name 	uint32_t num_vdevs = 0;
3994*5113495bSYour Name 
3995*5113495bSYour Name 	while (vdev_map) {
3996*5113495bSYour Name 		num_vdevs += (vdev_map & 0x1);
3997*5113495bSYour Name 		vdev_map >>= 1;
3998*5113495bSYour Name 	}
3999*5113495bSYour Name 
4000*5113495bSYour Name 	return num_vdevs;
4001*5113495bSYour Name }
4002*5113495bSYour Name 
4003*5113495bSYour Name #ifdef WMI_EXT_DBG
4004*5113495bSYour Name 
4005*5113495bSYour Name /**
4006*5113495bSYour Name  * wmi_ext_dbg_msg_get() - Allocate memory for wmi debug msg
4007*5113495bSYour Name  *
4008*5113495bSYour Name  * @buflen: Length of WMI message buffer
4009*5113495bSYour Name  *
4010*5113495bSYour Name  * Return: Allocated msg buffer else NULL on failure.
4011*5113495bSYour Name  */
wmi_ext_dbg_msg_get(uint32_t buflen)4012*5113495bSYour Name static inline struct wmi_ext_dbg_msg *wmi_ext_dbg_msg_get(uint32_t buflen)
4013*5113495bSYour Name {
4014*5113495bSYour Name 	return qdf_mem_malloc(sizeof(struct wmi_ext_dbg_msg) + buflen);
4015*5113495bSYour Name }
4016*5113495bSYour Name 
4017*5113495bSYour Name /**
4018*5113495bSYour Name  * wmi_ext_dbg_msg_put() - Free wmi debug msg buffer
4019*5113495bSYour Name  *
4020*5113495bSYour Name  * @msg: wmi message buffer to be freed
4021*5113495bSYour Name  *
4022*5113495bSYour Name  * Return: none
4023*5113495bSYour Name  */
wmi_ext_dbg_msg_put(struct wmi_ext_dbg_msg * msg)4024*5113495bSYour Name static inline void wmi_ext_dbg_msg_put(struct wmi_ext_dbg_msg *msg)
4025*5113495bSYour Name {
4026*5113495bSYour Name 	qdf_mem_free(msg);
4027*5113495bSYour Name }
4028*5113495bSYour Name 
4029*5113495bSYour Name #endif /*WMI_EXT_DBG */
4030*5113495bSYour Name 
4031*5113495bSYour Name #ifdef WLAN_CFR_ENABLE
4032*5113495bSYour Name void wmi_cfr_attach_tlv(struct wmi_unified *wmi_handle);
4033*5113495bSYour Name #else
wmi_cfr_attach_tlv(struct wmi_unified * wmi_handle)4034*5113495bSYour Name static inline void wmi_cfr_attach_tlv(struct wmi_unified *wmi_handle)
4035*5113495bSYour Name {
4036*5113495bSYour Name }
4037*5113495bSYour Name #endif
4038*5113495bSYour Name 
4039*5113495bSYour Name #ifdef QCA_SUPPORT_CP_STATS
4040*5113495bSYour Name void wmi_cp_stats_attach_tlv(struct wmi_unified *wmi_handle);
4041*5113495bSYour Name #else
wmi_cp_stats_attach_tlv(struct wmi_unified * wmi_handle)4042*5113495bSYour Name static inline void wmi_cp_stats_attach_tlv(struct wmi_unified *wmi_handle)
4043*5113495bSYour Name {
4044*5113495bSYour Name }
4045*5113495bSYour Name #endif /* QCA_SUPPORT_CP_STATS */
4046*5113495bSYour Name 
4047*5113495bSYour Name #ifdef QCA_TARGET_IF_MLME
4048*5113495bSYour Name void wmi_mlme_attach_tlv(wmi_unified_t wmi_handle);
4049*5113495bSYour Name #else
wmi_mlme_attach_tlv(wmi_unified_t wmi_handle)4050*5113495bSYour Name static inline void wmi_mlme_attach_tlv(wmi_unified_t wmi_handle)
4051*5113495bSYour Name {
4052*5113495bSYour Name }
4053*5113495bSYour Name #endif /* QCA_TARGET_IF_MLME */
4054*5113495bSYour Name 
4055*5113495bSYour Name #ifdef QCA_SUPPORT_MC_CP_STATS
4056*5113495bSYour Name void wmi_mc_cp_stats_attach_tlv(struct wmi_unified *wmi_handle);
4057*5113495bSYour Name #else
wmi_mc_cp_stats_attach_tlv(struct wmi_unified * wmi_handle)4058*5113495bSYour Name static inline void wmi_mc_cp_stats_attach_tlv(struct wmi_unified *wmi_handle)
4059*5113495bSYour Name {
4060*5113495bSYour Name }
4061*5113495bSYour Name #endif /* QCA_SUPPORT_MC_CP_STATS */
4062*5113495bSYour Name 
4063*5113495bSYour Name #ifdef WLAN_FEATURE_COAP
4064*5113495bSYour Name void wmi_coap_attach_tlv(wmi_unified_t wmi_handle);
4065*5113495bSYour Name #else
wmi_coap_attach_tlv(wmi_unified_t wmi_handle)4066*5113495bSYour Name static inline void wmi_coap_attach_tlv(wmi_unified_t wmi_handle)
4067*5113495bSYour Name {
4068*5113495bSYour Name }
4069*5113495bSYour Name #endif
4070*5113495bSYour Name 
4071*5113495bSYour Name /*
4072*5113495bSYour Name  * wmi_map_ch_width() - map wmi channel width to host channel width
4073*5113495bSYour Name  * @wmi_width: wmi channel width
4074*5113495bSYour Name  *
4075*5113495bSYour Name  * Return: host channel width, enum phy_ch_width
4076*5113495bSYour Name  */
4077*5113495bSYour Name enum phy_ch_width wmi_map_ch_width(A_UINT32 wmi_width);
4078*5113495bSYour Name 
4079*5113495bSYour Name /**
4080*5113495bSYour Name  * wmi_host_to_fw_phymode() - convert host to fw phymode
4081*5113495bSYour Name  * @host_phymode: phymode to convert
4082*5113495bSYour Name  *
4083*5113495bSYour Name  * Return: one of the values defined in enum WMI_HOST_WLAN_PHY_MODE;
4084*5113495bSYour Name  *         or WMI_HOST_MODE_UNKNOWN if the conversion fails
4085*5113495bSYour Name  */
4086*5113495bSYour Name WMI_HOST_WLAN_PHY_MODE wmi_host_to_fw_phymode(enum wlan_phymode host_phymode);
4087*5113495bSYour Name #endif
4088