xref: /wlan-driver/qca-wifi-host-cmn/wmi/inc/wmi_unified_api.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 Module
22*5113495bSYour Name  * Interface (WMI).
23*5113495bSYour Name  */
24*5113495bSYour Name 
25*5113495bSYour Name #ifndef _WMI_UNIFIED_API_H_
26*5113495bSYour Name #define _WMI_UNIFIED_API_H_
27*5113495bSYour Name 
28*5113495bSYour Name #include <osdep.h>
29*5113495bSYour Name #include "htc_api.h"
30*5113495bSYour Name #include "wmi_unified_param.h"
31*5113495bSYour Name #include "service_ready_param.h"
32*5113495bSYour Name #include "wlan_objmgr_psoc_obj.h"
33*5113495bSYour Name #include "wlan_mgmt_txrx_utils_api.h"
34*5113495bSYour Name #include <wlan_dfs_public_struct.h>
35*5113495bSYour Name #include <wlan_crypto_global_def.h>
36*5113495bSYour Name #include "wlan_thermal_public_struct.h"
37*5113495bSYour Name #ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
38*5113495bSYour Name #include "wmi_unified_pmo_api.h"
39*5113495bSYour Name #endif
40*5113495bSYour Name #ifdef WLAN_FEATURE_MIB_STATS
41*5113495bSYour Name #include "wlan_cp_stats_mc_defs.h"
42*5113495bSYour Name #endif
43*5113495bSYour Name #include "wlan_scan_public_structs.h"
44*5113495bSYour Name #ifdef WLAN_FEATURE_ACTION_OUI
45*5113495bSYour Name #include "wlan_action_oui_public_struct.h"
46*5113495bSYour Name #endif
47*5113495bSYour Name #ifdef WLAN_SUPPORT_GREEN_AP
48*5113495bSYour Name #include "wlan_green_ap_api.h"
49*5113495bSYour Name #endif
50*5113495bSYour Name #ifdef WLAN_FEATURE_DSRC
51*5113495bSYour Name #include "wlan_ocb_public_structs.h"
52*5113495bSYour Name #endif
53*5113495bSYour Name #ifdef WLAN_SUPPORT_TWT
54*5113495bSYour Name #include "wmi_unified_twt_param.h"
55*5113495bSYour Name #include "wmi_unified_twt_api.h"
56*5113495bSYour Name #endif
57*5113495bSYour Name #ifdef WDS_CONV_TARGET_IF_OPS_ENABLE
58*5113495bSYour Name #include "wmi_unified_wds_api.h"
59*5113495bSYour Name #endif
60*5113495bSYour Name #ifdef FEATURE_WLAN_EXTSCAN
61*5113495bSYour Name #include "wmi_unified_extscan_api.h"
62*5113495bSYour Name #endif
63*5113495bSYour Name 
64*5113495bSYour Name #ifdef IPA_OFFLOAD
65*5113495bSYour Name #include "wlan_ipa_public_struct.h"
66*5113495bSYour Name #endif
67*5113495bSYour Name 
68*5113495bSYour Name #ifdef WMI_SMART_ANT_SUPPORT
69*5113495bSYour Name #include "wmi_unified_smart_ant_api.h"
70*5113495bSYour Name #endif
71*5113495bSYour Name 
72*5113495bSYour Name #ifdef WMI_DBR_SUPPORT
73*5113495bSYour Name #include "wmi_unified_dbr_api.h"
74*5113495bSYour Name #endif
75*5113495bSYour Name 
76*5113495bSYour Name #ifdef WMI_ATF_SUPPORT
77*5113495bSYour Name #include "wmi_unified_atf_api.h"
78*5113495bSYour Name #endif
79*5113495bSYour Name 
80*5113495bSYour Name #ifdef WMI_AP_SUPPORT
81*5113495bSYour Name #include "wmi_unified_ap_api.h"
82*5113495bSYour Name #endif
83*5113495bSYour Name 
84*5113495bSYour Name #ifdef WLAN_FEATURE_DSRC
85*5113495bSYour Name #include "wmi_unified_ocb_api.h"
86*5113495bSYour Name #endif
87*5113495bSYour Name 
88*5113495bSYour Name #ifdef WLAN_FEATURE_NAN
89*5113495bSYour Name #include "wmi_unified_nan_api.h"
90*5113495bSYour Name #endif
91*5113495bSYour Name 
92*5113495bSYour Name #ifdef CONVERGED_P2P_ENABLE
93*5113495bSYour Name #include <wmi_unified_p2p_api.h>
94*5113495bSYour Name #endif
95*5113495bSYour Name 
96*5113495bSYour Name #ifdef WMI_ROAM_SUPPORT
97*5113495bSYour Name #include "wmi_unified_roam_api.h"
98*5113495bSYour Name #endif
99*5113495bSYour Name 
100*5113495bSYour Name #ifdef WMI_CONCURRENCY_SUPPORT
101*5113495bSYour Name #include "wmi_unified_concurrency_api.h"
102*5113495bSYour Name #endif
103*5113495bSYour Name 
104*5113495bSYour Name #ifdef WMI_STA_SUPPORT
105*5113495bSYour Name #include "wmi_unified_sta_api.h"
106*5113495bSYour Name #endif
107*5113495bSYour Name 
108*5113495bSYour Name #ifdef WLAN_FW_OFFLOAD
109*5113495bSYour Name #include "wmi_unified_fwol_api.h"
110*5113495bSYour Name #endif
111*5113495bSYour Name 
112*5113495bSYour Name #ifdef WLAN_FEATURE_PKT_CAPTURE
113*5113495bSYour Name #include "wlan_pkt_capture_public_structs.h"
114*5113495bSYour Name #endif
115*5113495bSYour Name 
116*5113495bSYour Name #ifdef WLAN_IOT_SIM_SUPPORT
117*5113495bSYour Name #include "wlan_iot_sim_public_structs.h"
118*5113495bSYour Name #endif
119*5113495bSYour Name 
120*5113495bSYour Name #include "wmi_unified_cp_stats_api.h"
121*5113495bSYour Name 
122*5113495bSYour Name #if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
123*5113495bSYour Name #include "wmi_unified_11be_setup_api.h"
124*5113495bSYour Name #endif
125*5113495bSYour Name 
126*5113495bSYour Name #ifdef WLAN_FEATURE_DBAM_CONFIG
127*5113495bSYour Name #include "wlan_coex_public_structs.h"
128*5113495bSYour Name #endif
129*5113495bSYour Name 
130*5113495bSYour Name typedef qdf_nbuf_t wmi_buf_t;
131*5113495bSYour Name #define wmi_buf_data(_buf) qdf_nbuf_data(_buf)
132*5113495bSYour Name 
133*5113495bSYour Name /* Number of bits to shift to combine 32 bit integer to 64 bit */
134*5113495bSYour Name #define WMI_LOWER_BITS_SHIFT_32	0x20
135*5113495bSYour Name 
136*5113495bSYour Name #define PHYERROR_MAX_BUFFER_LENGTH 0x7F000000
137*5113495bSYour Name 
138*5113495bSYour Name struct wmi_soc;
139*5113495bSYour Name struct policy_mgr_dual_mac_config;
140*5113495bSYour Name 
141*5113495bSYour Name /**
142*5113495bSYour Name  * enum wmi_target_type - type of supported wmi command
143*5113495bSYour Name  * @WMI_TLV_TARGET: tlv based target
144*5113495bSYour Name  * @WMI_NON_TLV_TARGET: non-tlv based target
145*5113495bSYour Name  * @WMI_MAX_TARGET_TYPE: max value
146*5113495bSYour Name  *
147*5113495bSYour Name  */
148*5113495bSYour Name enum wmi_target_type {
149*5113495bSYour Name 	WMI_TLV_TARGET,
150*5113495bSYour Name 	WMI_NON_TLV_TARGET,
151*5113495bSYour Name 	WMI_MAX_TARGET_TYPE
152*5113495bSYour Name };
153*5113495bSYour Name 
154*5113495bSYour Name /**
155*5113495bSYour Name  * enum wmi_rx_exec_ctx - wmi rx execution context
156*5113495bSYour Name  * @WMI_RX_WORK_CTX: work queue context execution provided by WMI layer
157*5113495bSYour Name  * @WMI_RX_UMAC_CTX: execution context provided by umac layer
158*5113495bSYour Name  * @WMI_RX_TASKLET_CTX: legacy name for UMAC context
159*5113495bSYour Name  * @WMI_RX_SERIALIZER_CTX: Execution context is serialized thread context
160*5113495bSYour Name  * @WMI_RX_DIAG_WORK_CTX: work queue execution context for FW diag events
161*5113495bSYour Name  */
162*5113495bSYour Name enum wmi_rx_exec_ctx {
163*5113495bSYour Name 	WMI_RX_WORK_CTX,
164*5113495bSYour Name 	WMI_RX_UMAC_CTX,
165*5113495bSYour Name 	WMI_RX_TASKLET_CTX = WMI_RX_UMAC_CTX,
166*5113495bSYour Name 	WMI_RX_SERIALIZER_CTX = 2,
167*5113495bSYour Name 	WMI_RX_DIAG_WORK_CTX
168*5113495bSYour Name };
169*5113495bSYour Name 
170*5113495bSYour Name /**
171*5113495bSYour Name  * enum wmi_rx_buff_type - wmi rx event buffer type
172*5113495bSYour Name  * @WMI_RX_PROCESSED_BUFF: processed event buffer provided by WMI layer
173*5113495bSYour Name  * @WMI_RX_RAW_BUFF:       raw event buffer provided by WMI layer
174*5113495bSYour Name  *
175*5113495bSYour Name  */
176*5113495bSYour Name enum wmi_rx_buff_type {
177*5113495bSYour Name 	WMI_RX_PROCESSED_BUFF,
178*5113495bSYour Name 	WMI_RX_RAW_BUFF
179*5113495bSYour Name };
180*5113495bSYour Name 
181*5113495bSYour Name /**
182*5113495bSYour Name  * enum wmi_fw_mem_prio - defines FW Memory requirement type
183*5113495bSYour Name  * @WMI_FW_MEM_HIGH_PRIORITY:   Memory requires contiguous memory allocation
184*5113495bSYour Name  * @WMI_FW_MEM_LOW_PRIORITY:    Memory can be fragmented
185*5113495bSYour Name  * @WMI_FW_PRIORITY_MAX:        Invalid type
186*5113495bSYour Name  */
187*5113495bSYour Name enum wmi_fw_mem_prio {
188*5113495bSYour Name 	WMI_FW_MEM_HIGH_PRIORITY = 0,
189*5113495bSYour Name 	WMI_FW_MEM_LOW_PRIORITY,
190*5113495bSYour Name 	WMI_FW_PRIORITY_MAX
191*5113495bSYour Name };
192*5113495bSYour Name 
193*5113495bSYour Name /**
194*5113495bSYour Name  * struct wmi_unified_attach_params - wmi init parameters
195*5113495bSYour Name  *  @osdev: NIC device
196*5113495bSYour Name  *  @target_type: type of supported wmi command
197*5113495bSYour Name  *  @use_cookie: flag to indicate cookie based allocation
198*5113495bSYour Name  *  @is_async_ep: queueing interrupt or non-interrupt endpoint
199*5113495bSYour Name  *  @rx_ops: handle to wmi ops
200*5113495bSYour Name  *  @psoc: objmgr psoc
201*5113495bSYour Name  *  @max_commands: max commands
202*5113495bSYour Name  *  @soc_id: SoC device instance id
203*5113495bSYour Name  */
204*5113495bSYour Name struct wmi_unified_attach_params {
205*5113495bSYour Name 	osdev_t osdev;
206*5113495bSYour Name 	enum wmi_target_type target_type;
207*5113495bSYour Name 	bool use_cookie;
208*5113495bSYour Name 	bool is_async_ep;
209*5113495bSYour Name 	struct wlan_objmgr_psoc *psoc;
210*5113495bSYour Name 	uint16_t max_commands;
211*5113495bSYour Name 	uint32_t soc_id;
212*5113495bSYour Name };
213*5113495bSYour Name 
214*5113495bSYour Name /**
215*5113495bSYour Name  *  struct wmi_unified_exec_ctx - wmi execution ctx and handler buff
216*5113495bSYour Name  *  @exec_ctx:  execution context of event
217*5113495bSYour Name  *  @buff_type: buffer type for event handler
218*5113495bSYour Name  */
219*5113495bSYour Name struct wmi_unified_exec_ctx {
220*5113495bSYour Name 	enum wmi_rx_exec_ctx exec_ctx;
221*5113495bSYour Name 	enum wmi_rx_buff_type buff_type;
222*5113495bSYour Name };
223*5113495bSYour Name 
224*5113495bSYour Name /**
225*5113495bSYour Name  * wmi_unified_attach() - attach for unified WMI
226*5113495bSYour Name  *  @scn_handle: handle to SCN.
227*5113495bSYour Name  *  @params: attach params for WMI
228*5113495bSYour Name  *
229*5113495bSYour Name  */
230*5113495bSYour Name void *wmi_unified_attach(void *scn_handle,
231*5113495bSYour Name 			 struct wmi_unified_attach_params *params);
232*5113495bSYour Name 
233*5113495bSYour Name 
234*5113495bSYour Name 
235*5113495bSYour Name /**
236*5113495bSYour Name  * wmi_mgmt_cmd_record() - Wrapper function for mgmt command logging macro
237*5113495bSYour Name  *
238*5113495bSYour Name  * @wmi_handle: wmi handle
239*5113495bSYour Name  * @cmd: mgmt command
240*5113495bSYour Name  * @header: pointer to 802.11 header
241*5113495bSYour Name  * @vdev_id: vdev id
242*5113495bSYour Name  * @chanfreq: channel frequency
243*5113495bSYour Name  *
244*5113495bSYour Name  * Return: none
245*5113495bSYour Name  */
246*5113495bSYour Name void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd,
247*5113495bSYour Name 			void *header, uint32_t vdev_id, uint32_t chanfreq);
248*5113495bSYour Name 
249*5113495bSYour Name /**
250*5113495bSYour Name  * wmi_unified_detach() - detach for unified WMI
251*5113495bSYour Name  * @wmi_handle: handle to WMI.
252*5113495bSYour Name  *
253*5113495bSYour Name  *  Return: void.
254*5113495bSYour Name  */
255*5113495bSYour Name void wmi_unified_detach(struct wmi_unified *wmi_handle);
256*5113495bSYour Name 
257*5113495bSYour Name /**
258*5113495bSYour Name  * wmi_send_time_stamp_sync_cmd_tlv() - API to sync time between host and
259*5113495bSYour Name  *                                      firmware
260*5113495bSYour Name  * @wmi_handle: handle to WMI.
261*5113495bSYour Name  *
262*5113495bSYour Name  * Return: none
263*5113495bSYour Name  */
264*5113495bSYour Name void wmi_send_time_stamp_sync_cmd_tlv(wmi_unified_t wmi_handle);
265*5113495bSYour Name 
266*5113495bSYour Name /**
267*5113495bSYour Name  * wmi_unified_remove_work() - detach for WMI work
268*5113495bSYour Name  * @wmi_handle: handle to WMI
269*5113495bSYour Name  *
270*5113495bSYour Name  * A function that does not fully detach WMI, but just remove work
271*5113495bSYour Name  * queue items associated with it. This is used to make sure that
272*5113495bSYour Name  * before any other processing code that may destroy related contexts
273*5113495bSYour Name  * (HTC, etc), work queue processing on WMI has already been stopped.
274*5113495bSYour Name  *
275*5113495bSYour Name  * Return: None
276*5113495bSYour Name  */
277*5113495bSYour Name void
278*5113495bSYour Name wmi_unified_remove_work(struct wmi_unified *wmi_handle);
279*5113495bSYour Name 
280*5113495bSYour Name /**
281*5113495bSYour Name  * wmi_buf_alloc() - generic function to allocate WMI buffer
282*5113495bSYour Name  * @wmi_handle: handle to WMI.
283*5113495bSYour Name  * @len: length of the buffer
284*5113495bSYour Name  *
285*5113495bSYour Name  * Return: return wmi_buf_t or null if memory alloc fails
286*5113495bSYour Name  */
287*5113495bSYour Name #ifdef NBUF_MEMORY_DEBUG
288*5113495bSYour Name #define wmi_buf_alloc(wmi_handle, len) \
289*5113495bSYour Name 	wmi_buf_alloc_debug(wmi_handle, len, __func__, __LINE__)
290*5113495bSYour Name 
291*5113495bSYour Name wmi_buf_t
292*5113495bSYour Name wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint32_t len,
293*5113495bSYour Name 		    const char *func_name, uint32_t line_num);
294*5113495bSYour Name #else
295*5113495bSYour Name #define wmi_buf_alloc(wmi_handle, len) \
296*5113495bSYour Name 	wmi_buf_alloc_fl(wmi_handle, len, __func__, __LINE__)
297*5113495bSYour Name 
298*5113495bSYour Name wmi_buf_t wmi_buf_alloc_fl(wmi_unified_t wmi_handle, uint32_t len,
299*5113495bSYour Name 			   const char *func, uint32_t line);
300*5113495bSYour Name #endif
301*5113495bSYour Name 
302*5113495bSYour Name /**
303*5113495bSYour Name  * wmi_buf_free() - generic function frees WMI net buffer
304*5113495bSYour Name  *
305*5113495bSYour Name  *  @net_buf : Pointer to net_buf to be freed
306*5113495bSYour Name  */
307*5113495bSYour Name void wmi_buf_free(wmi_buf_t net_buf);
308*5113495bSYour Name 
309*5113495bSYour Name /**
310*5113495bSYour Name  * wmi_unified_cmd_send() -  generic function to send unified WMI command
311*5113495bSYour Name  * @wmi_handle: handle to WMI.
312*5113495bSYour Name  * @buf: wmi command buffer
313*5113495bSYour Name  * @buflen: wmi command buffer length
314*5113495bSYour Name  * @cmd_id: WMI cmd id
315*5113495bSYour Name  *
316*5113495bSYour Name  * Note, it is NOT safe to access buf after calling this function!
317*5113495bSYour Name  *
318*5113495bSYour Name  * Return: QDF_STATUS
319*5113495bSYour Name  */
320*5113495bSYour Name #define wmi_unified_cmd_send(wmi_handle, buf, buflen, cmd_id) \
321*5113495bSYour Name 	wmi_unified_cmd_send_fl(wmi_handle, buf, buflen, \
322*5113495bSYour Name 				cmd_id, __func__, __LINE__)
323*5113495bSYour Name 
324*5113495bSYour Name QDF_STATUS
325*5113495bSYour Name wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf,
326*5113495bSYour Name 			uint32_t buflen, uint32_t cmd_id,
327*5113495bSYour Name 			const char *func, uint32_t line);
328*5113495bSYour Name 
329*5113495bSYour Name #ifdef WLAN_FEATURE_WMI_SEND_RECV_QMI
330*5113495bSYour Name /**
331*5113495bSYour Name  * wmi_unified_cmd_send_over_qmi() -  generic function to send unified WMI command
332*5113495bSYour Name  *                               over QMI
333*5113495bSYour Name  * @wmi_handle: handle to WMI.
334*5113495bSYour Name  * @buf: wmi command buffer
335*5113495bSYour Name  * @buflen: wmi command buffer length
336*5113495bSYour Name  * @cmd_id: WMI cmd id
337*5113495bSYour Name  *
338*5113495bSYour Name  * Return: QDF_STATUS
339*5113495bSYour Name  */
340*5113495bSYour Name QDF_STATUS wmi_unified_cmd_send_over_qmi(struct wmi_unified *wmi_handle,
341*5113495bSYour Name 				    wmi_buf_t buf, uint32_t buflen,
342*5113495bSYour Name 				    uint32_t cmd_id);
343*5113495bSYour Name 
344*5113495bSYour Name /**
345*5113495bSYour Name  * wmi_process_qmi_fw_event() - Process WMI event received over QMI
346*5113495bSYour Name  * @wmi_cb_ctx: WMI handle received as call back context
347*5113495bSYour Name  * @buf: Pointer to WMI event buffer
348*5113495bSYour Name  * @len: Len of WMI buffer received
349*5113495bSYour Name  *
350*5113495bSYour Name  * Return: None
351*5113495bSYour Name  */
352*5113495bSYour Name int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len);
353*5113495bSYour Name #else
354*5113495bSYour Name static inline
wmi_unified_cmd_send_over_qmi(struct wmi_unified * wmi_handle,wmi_buf_t buf,uint32_t buflen,uint32_t cmd_id)355*5113495bSYour Name QDF_STATUS wmi_unified_cmd_send_over_qmi(struct wmi_unified *wmi_handle,
356*5113495bSYour Name 				    wmi_buf_t buf, uint32_t buflen,
357*5113495bSYour Name 				    uint32_t cmd_id)
358*5113495bSYour Name {
359*5113495bSYour Name 	return QDF_STATUS_E_NOSUPPORT;
360*5113495bSYour Name }
361*5113495bSYour Name 
wmi_process_qmi_fw_event(void * wmi_cb_ctx,void * buf,int len)362*5113495bSYour Name static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len)
363*5113495bSYour Name {
364*5113495bSYour Name 	return -EINVAL;
365*5113495bSYour Name }
366*5113495bSYour Name #endif
367*5113495bSYour Name 
368*5113495bSYour Name #ifdef WLAN_SUPPORT_GAP_LL_PS_MODE
369*5113495bSYour Name /**
370*5113495bSYour Name  * wmi_unified_green_ap_ll_ps_send() - Send unified WMI command to
371*5113495bSYour Name  * enable/disable green ap low latency power save mode
372*5113495bSYour Name  * @wmi_handle: handle to WMI.
373*5113495bSYour Name  * @green_ap_ll_ps_params: low latency power save mode parameter
374*5113495bSYour Name  *
375*5113495bSYour Name  * Return: None
376*5113495bSYour Name  */
377*5113495bSYour Name QDF_STATUS wmi_unified_green_ap_ll_ps_send(wmi_unified_t wmi_handle,
378*5113495bSYour Name 					   struct green_ap_ll_ps_cmd_param *green_ap_ll_ps_params);
379*5113495bSYour Name #endif
380*5113495bSYour Name 
381*5113495bSYour Name /**
382*5113495bSYour Name  * wmi_unified_cmd_send_pm_chk() - send unified WMI command with PM check,
383*5113495bSYour Name  * if target is in suspended state, WMI command will be sent over QMI.
384*5113495bSYour Name  * @wmi_handle: handle to WMI.
385*5113495bSYour Name  * @buf: wmi command buffer
386*5113495bSYour Name  * @buflen: wmi command buffer length
387*5113495bSYour Name  * @cmd_id: WMI cmd id
388*5113495bSYour Name  * @is_qmi_send_support:send by qmi is supported
389*5113495bSYour Name  *
390*5113495bSYour Name  * Note, it is NOT safe to access buf after calling this function!
391*5113495bSYour Name  *
392*5113495bSYour Name  * Return: QDF_STATUS
393*5113495bSYour Name  */
394*5113495bSYour Name QDF_STATUS wmi_unified_cmd_send_pm_chk(struct wmi_unified *wmi_handle,
395*5113495bSYour Name 				       wmi_buf_t buf, uint32_t buflen,
396*5113495bSYour Name 				       uint32_t cmd_id,
397*5113495bSYour Name 				       bool is_qmi_send_support);
398*5113495bSYour Name 
399*5113495bSYour Name /**
400*5113495bSYour Name  * wmi_unified_register_event() - WMI event handler
401*5113495bSYour Name  * registration function for converged components
402*5113495bSYour Name  * @wmi_handle:   handle to WMI.
403*5113495bSYour Name  * @event_id:     WMI event ID
404*5113495bSYour Name  * @handler_func: Event handler call back function
405*5113495bSYour Name  *
406*5113495bSYour Name  * Return: QDF_STATUS
407*5113495bSYour Name  */
408*5113495bSYour Name QDF_STATUS
409*5113495bSYour Name wmi_unified_register_event(wmi_unified_t wmi_handle,
410*5113495bSYour Name 				   uint32_t event_id,
411*5113495bSYour Name 				   wmi_unified_event_handler handler_func);
412*5113495bSYour Name 
413*5113495bSYour Name /**
414*5113495bSYour Name  * wmi_unified_register_event_handler() - WMI event handler
415*5113495bSYour Name  * registration function
416*5113495bSYour Name  * @wmi_handle:   handle to WMI.
417*5113495bSYour Name  * @event_id:     WMI event ID
418*5113495bSYour Name  * @handler_func: Event handler call back function
419*5113495bSYour Name  * @rx_ctx: rx event processing context
420*5113495bSYour Name  *
421*5113495bSYour Name  * Return: QDF_STATUS
422*5113495bSYour Name  */
423*5113495bSYour Name QDF_STATUS
424*5113495bSYour Name wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
425*5113495bSYour Name 				   wmi_conv_event_id event_id,
426*5113495bSYour Name 				   wmi_unified_event_handler handler_func,
427*5113495bSYour Name 				   uint8_t rx_ctx);
428*5113495bSYour Name 
429*5113495bSYour Name /**
430*5113495bSYour Name  * wmi_unified_unregister_event() - WMI event handler unregister function
431*5113495bSYour Name  * for converged components
432*5113495bSYour Name  * @wmi_handle:    handle to WMI.
433*5113495bSYour Name  * @event_id:      WMI event ID
434*5113495bSYour Name  *
435*5113495bSYour Name  * Return: QDF_STATUS
436*5113495bSYour Name  */
437*5113495bSYour Name QDF_STATUS
438*5113495bSYour Name wmi_unified_unregister_event(wmi_unified_t wmi_handle,
439*5113495bSYour Name 			     uint32_t event_id);
440*5113495bSYour Name 
441*5113495bSYour Name /**
442*5113495bSYour Name  * wmi_unified_register_raw_event_handler() - WMI event handler
443*5113495bSYour Name  * registration function.
444*5113495bSYour Name  * @wmi_handle:   handle to WMI.
445*5113495bSYour Name  * @event_id:     WMI event ID
446*5113495bSYour Name  * @handler_func: Event handler call back function
447*5113495bSYour Name  * @rx_ctx:       rx event processing context
448*5113495bSYour Name  *
449*5113495bSYour Name  * Register event handler to get struct wmi_raw_event_buffer as arg
450*5113495bSYour Name  *
451*5113495bSYour Name  * Return: QDF_STATUS
452*5113495bSYour Name  */
453*5113495bSYour Name QDF_STATUS
454*5113495bSYour Name wmi_unified_register_raw_event_handler(wmi_unified_t wmi_handle,
455*5113495bSYour Name 				       wmi_conv_event_id event_id,
456*5113495bSYour Name 				       wmi_unified_event_handler handler_func,
457*5113495bSYour Name 				       enum wmi_rx_exec_ctx rx_ctx);
458*5113495bSYour Name 
459*5113495bSYour Name /**
460*5113495bSYour Name  * wmi_unified_unregister_event_handler() - WMI event handler unregister
461*5113495bSYour Name  * function
462*5113495bSYour Name  * @wmi_handle:  handle to WMI.
463*5113495bSYour Name  * @event_id:    WMI event ID
464*5113495bSYour Name  *
465*5113495bSYour Name  * Return: QDF_STATUS
466*5113495bSYour Name  */
467*5113495bSYour Name QDF_STATUS
468*5113495bSYour Name wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
469*5113495bSYour Name 				     wmi_conv_event_id event_id);
470*5113495bSYour Name 
471*5113495bSYour Name /**
472*5113495bSYour Name  * wmi_unified_connect_htc_service() -  WMI API to get connect to HTC service
473*5113495bSYour Name  * @wmi_handle: handle to WMI.
474*5113495bSYour Name  * @htc_handle: handle to HTC.
475*5113495bSYour Name  *
476*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAULT for failure
477*5113495bSYour Name  */
478*5113495bSYour Name QDF_STATUS
479*5113495bSYour Name wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle,
480*5113495bSYour Name 				HTC_HANDLE htc_handle);
481*5113495bSYour Name 
482*5113495bSYour Name #if defined(WLAN_FEATURE_WMI_DIAG_OVER_CE7) || \
483*5113495bSYour Name 	defined(WLAN_DIAG_AND_DBR_OVER_SEPARATE_CE)
484*5113495bSYour Name /**
485*5113495bSYour Name  * wmi_diag_connect_pdev_htc_service()
486*5113495bSYour Name  * WMI DIAG API to get connect to HTC service
487*5113495bSYour Name  * @wmi_handle: handle to WMI.
488*5113495bSYour Name  * @htc_handle: handle to HTC.
489*5113495bSYour Name  *
490*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAULT for failure
491*5113495bSYour Name  */
492*5113495bSYour Name QDF_STATUS
493*5113495bSYour Name wmi_diag_connect_pdev_htc_service(struct wmi_unified *wmi_handle,
494*5113495bSYour Name 				  HTC_HANDLE htc_handle);
495*5113495bSYour Name #else
496*5113495bSYour Name static inline QDF_STATUS
wmi_diag_connect_pdev_htc_service(struct wmi_unified * wmi_handle,HTC_HANDLE htc_handle)497*5113495bSYour Name wmi_diag_connect_pdev_htc_service(struct wmi_unified *wmi_handle,
498*5113495bSYour Name 				  HTC_HANDLE htc_handle)
499*5113495bSYour Name {
500*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
501*5113495bSYour Name }
502*5113495bSYour Name #endif
503*5113495bSYour Name 
504*5113495bSYour Name #if defined(WLAN_DIAG_AND_DBR_OVER_SEPARATE_CE)
505*5113495bSYour Name /**
506*5113495bSYour Name  * wmi_dbr_connect_pdev_htc_service() - WMI DBR API to connect to HTC service
507*5113495bSYour Name  * @wmi_handle: handle to WMI.
508*5113495bSYour Name  * @htc_handle: handle to HTC.
509*5113495bSYour Name  *
510*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAULT for failure
511*5113495bSYour Name  */
512*5113495bSYour Name QDF_STATUS
513*5113495bSYour Name wmi_dbr_connect_pdev_htc_service(struct wmi_unified *wmi_handle,
514*5113495bSYour Name 				 HTC_HANDLE htc_handle);
515*5113495bSYour Name #else
516*5113495bSYour Name static inline QDF_STATUS
wmi_dbr_connect_pdev_htc_service(struct wmi_unified * wmi_handle,HTC_HANDLE htc_handle)517*5113495bSYour Name wmi_dbr_connect_pdev_htc_service(struct wmi_unified *wmi_handle,
518*5113495bSYour Name 				 HTC_HANDLE htc_handle)
519*5113495bSYour Name {
520*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
521*5113495bSYour Name }
522*5113495bSYour Name #endif
523*5113495bSYour Name 
524*5113495bSYour Name /**
525*5113495bSYour Name  * wmi_is_suspend_ready() - WMI API to verify the host has enough credits
526*5113495bSYour Name  *                          to suspend
527*5113495bSYour Name  * @wmi_handle: handle to WMI.
528*5113495bSYour Name  */
529*5113495bSYour Name 
530*5113495bSYour Name int wmi_is_suspend_ready(wmi_unified_t wmi_handle);
531*5113495bSYour Name 
532*5113495bSYour Name /**
533*5113495bSYour Name  * wmi_get_host_credits() - WMI API to get updated host_credits
534*5113495bSYour Name  * @wmi_handle      : handle to WMI.
535*5113495bSYour Name  */
536*5113495bSYour Name 
537*5113495bSYour Name int wmi_get_host_credits(wmi_unified_t wmi_handle);
538*5113495bSYour Name 
539*5113495bSYour Name /**
540*5113495bSYour Name  * wmi_get_pending_cmds() - WMI API to get WMI Pending Commands in the HTC
541*5113495bSYour Name  *                          queue
542*5113495bSYour Name  * @wmi_handle: handle to WMI.
543*5113495bSYour Name  */
544*5113495bSYour Name 
545*5113495bSYour Name int wmi_get_pending_cmds(wmi_unified_t wmi_handle);
546*5113495bSYour Name 
547*5113495bSYour Name /**
548*5113495bSYour Name  * wmi_set_target_suspend() - WMI API to set target suspend state
549*5113495bSYour Name  * @wmi_handle: handle to WMI.
550*5113495bSYour Name  * @val: suspend state boolean
551*5113495bSYour Name  */
552*5113495bSYour Name void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val);
553*5113495bSYour Name 
554*5113495bSYour Name /**
555*5113495bSYour Name  * wmi_set_target_suspend_acked() - WMI API to set target suspend command
556*5113495bSYour Name  *                                  acked flag
557*5113495bSYour Name  * @wmi_handle: handle to WMI.
558*5113495bSYour Name  * @val: suspend command acked flag boolean
559*5113495bSYour Name  */
560*5113495bSYour Name void wmi_set_target_suspend_acked(wmi_unified_t wmi_handle, bool val);
561*5113495bSYour Name 
562*5113495bSYour Name /**
563*5113495bSYour Name  * wmi_is_target_suspended() - WMI API to check target suspend state
564*5113495bSYour Name  * @wmi_handle: handle to WMI.
565*5113495bSYour Name  *
566*5113495bSYour Name  * WMI API to check target suspend state
567*5113495bSYour Name  *
568*5113495bSYour Name  * Return: true if target is suspended, else false.
569*5113495bSYour Name  */
570*5113495bSYour Name bool wmi_is_target_suspended(struct wmi_unified *wmi_handle);
571*5113495bSYour Name 
572*5113495bSYour Name /**
573*5113495bSYour Name  * wmi_is_target_suspend_acked() - WMI API to check target suspend command is
574*5113495bSYour Name  *                                 acked or not
575*5113495bSYour Name  * @wmi_handle: handle to WMI.
576*5113495bSYour Name  *
577*5113495bSYour Name  * WMI API to check whether the target suspend command is acked or not
578*5113495bSYour Name  *
579*5113495bSYour Name  * Return: true if target suspend command is acked, else false.
580*5113495bSYour Name  */
581*5113495bSYour Name bool wmi_is_target_suspend_acked(struct wmi_unified *wmi_handle);
582*5113495bSYour Name 
583*5113495bSYour Name #ifdef WLAN_FEATURE_WMI_SEND_RECV_QMI
584*5113495bSYour Name /**
585*5113495bSYour Name  * wmi_set_qmi_stats() - WMI API to set qmi stats enabled/disabled
586*5113495bSYour Name  * @wmi_handle: handle to WMI.
587*5113495bSYour Name  * @val: suspend state boolean
588*5113495bSYour Name  */
589*5113495bSYour Name void wmi_set_qmi_stats(wmi_unified_t wmi_handle, bool val);
590*5113495bSYour Name 
591*5113495bSYour Name /**
592*5113495bSYour Name  * wmi_is_qmi_stats_enabled() - WMI API to check if periodic stats
593*5113495bSYour Name  * over qmi is enableid
594*5113495bSYour Name  * @wmi_handle: handle to WMI.
595*5113495bSYour Name  *
596*5113495bSYour Name  * WMI API to check if periodic stats over qmi is enabled
597*5113495bSYour Name  *
598*5113495bSYour Name  * Return: true if qmi stats is enabled, else false.
599*5113495bSYour Name  */
600*5113495bSYour Name bool wmi_is_qmi_stats_enabled(struct wmi_unified *wmi_handle);
601*5113495bSYour Name #else
602*5113495bSYour Name static inline
wmi_set_qmi_stats(wmi_unified_t wmi_handle,bool val)603*5113495bSYour Name void wmi_set_qmi_stats(wmi_unified_t wmi_handle, bool val)
604*5113495bSYour Name {}
605*5113495bSYour Name 
606*5113495bSYour Name static inline
wmi_is_qmi_stats_enabled(struct wmi_unified * wmi_handle)607*5113495bSYour Name bool wmi_is_qmi_stats_enabled(struct wmi_unified *wmi_handle)
608*5113495bSYour Name {
609*5113495bSYour Name 	return false;
610*5113495bSYour Name }
611*5113495bSYour Name #endif /* end if of WLAN_FEATURE_WMI_SEND_RECV_QMI */
612*5113495bSYour Name 
613*5113495bSYour Name /**
614*5113495bSYour Name  * wmi_set_is_wow_bus_suspended() - WMI API to set bus suspend state
615*5113495bSYour Name  * @wmi_handle:	handle to WMI.
616*5113495bSYour Name  * @val: suspend state boolean
617*5113495bSYour Name  */
618*5113495bSYour Name void wmi_set_is_wow_bus_suspended(wmi_unified_t wmi_handle, A_BOOL val);
619*5113495bSYour Name 
620*5113495bSYour Name /**
621*5113495bSYour Name  * wmi_tag_crash_inject() - WMI API to set crash injection state
622*5113495bSYour Name  * @wmi_handle:	handle to WMI.
623*5113495bSYour Name  * @flag: crash injection state boolean
624*5113495bSYour Name  */
625*5113495bSYour Name void wmi_tag_crash_inject(wmi_unified_t wmi_handle, A_BOOL flag);
626*5113495bSYour Name 
627*5113495bSYour Name /**
628*5113495bSYour Name  * wmi_set_tgt_assert() - WMI API to set target assert
629*5113495bSYour Name  * @wmi_handle: handle to WMI.
630*5113495bSYour Name  * @val: target assert config value.
631*5113495bSYour Name  *
632*5113495bSYour Name  * Return: none.
633*5113495bSYour Name  */
634*5113495bSYour Name void wmi_set_tgt_assert(wmi_unified_t wmi_handle, bool val);
635*5113495bSYour Name 
636*5113495bSYour Name /**
637*5113495bSYour Name  * wmi_stop() - generic function to block unified WMI command
638*5113495bSYour Name  * @wmi_handle: handle to WMI.
639*5113495bSYour Name  *
640*5113495bSYour Name  * Return: 0  on success and -ve on failure.
641*5113495bSYour Name  */
642*5113495bSYour Name int
643*5113495bSYour Name wmi_stop(wmi_unified_t wmi_handle);
644*5113495bSYour Name 
645*5113495bSYour Name /**
646*5113495bSYour Name  * wmi_start() - generic function to start unified WMI command
647*5113495bSYour Name  * @wmi_handle: handle to WMI.
648*5113495bSYour Name  *
649*5113495bSYour Name  * Return: 0  on success and -ve on failure.
650*5113495bSYour Name  */
651*5113495bSYour Name int
652*5113495bSYour Name wmi_start(wmi_unified_t wmi_handle);
653*5113495bSYour Name 
654*5113495bSYour Name /**
655*5113495bSYour Name  * wmi_is_blocked() - generic function to check if WMI is blocked
656*5113495bSYour Name  * @wmi_handle: handle to WMI.
657*5113495bSYour Name  *
658*5113495bSYour Name  * Return: true, if blocked, false if not blocked
659*5113495bSYour Name  */
660*5113495bSYour Name bool
661*5113495bSYour Name wmi_is_blocked(wmi_unified_t wmi_handle);
662*5113495bSYour Name 
663*5113495bSYour Name /**
664*5113495bSYour Name  * wmi_flush_endpoint() - API to flush all the previous packets associated
665*5113495bSYour Name  *                        with the wmi endpoint
666*5113495bSYour Name  *
667*5113495bSYour Name  * @wmi_handle: handle to WMI.
668*5113495bSYour Name  */
669*5113495bSYour Name void
670*5113495bSYour Name wmi_flush_endpoint(wmi_unified_t wmi_handle);
671*5113495bSYour Name 
672*5113495bSYour Name /**
673*5113495bSYour Name  * wmi_get_endpoint() - API to get endpoint ID
674*5113495bSYour Name  * @wmi_handle: handle to WMI.
675*5113495bSYour Name  *
676*5113495bSYour Name  * Return Handle to endpoint
677*5113495bSYour Name  */
678*5113495bSYour Name HTC_ENDPOINT_ID
679*5113495bSYour Name wmi_get_endpoint(wmi_unified_t wmi_handle);
680*5113495bSYour Name 
681*5113495bSYour Name /**
682*5113495bSYour Name  * wmi_interface_sequence_stop() - API to stop wmi sequence check
683*5113495bSYour Name  *
684*5113495bSYour Name  * @wmi_handle: handle to WMI.
685*5113495bSYour Name  */
686*5113495bSYour Name void
687*5113495bSYour Name wmi_interface_sequence_stop(wmi_unified_t wmi_handle);
688*5113495bSYour Name 
689*5113495bSYour Name /**
690*5113495bSYour Name  * wmi_pdev_id_conversion_enable() - API to enable pdev_id and phy_id
691*5113495bSYour Name  *                     conversion in WMI. By default pdev_id and
692*5113495bSYour Name  *                     phyid conversion is not done in WMI.
693*5113495bSYour Name  *                     This API can be used enable conversion in WMI.
694*5113495bSYour Name  * @wmi_handle: handle to WMI
695*5113495bSYour Name  * @pdev_id_map: pdev conversion map
696*5113495bSYour Name  * @size: size of pdev_id_map
697*5113495bSYour Name  *
698*5113495bSYour Name  * Return: none
699*5113495bSYour Name  */
700*5113495bSYour Name void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle,
701*5113495bSYour Name 				   uint32_t *pdev_id_map,
702*5113495bSYour Name 				   uint8_t size);
703*5113495bSYour Name 
704*5113495bSYour Name /**
705*5113495bSYour Name  * __wmi_control_rx() - API to handle wmi rx event after UMAC has taken care
706*5113495bSYour Name  *                      of execution context
707*5113495bSYour Name  *
708*5113495bSYour Name  * @wmi_handle: handle to WMI.
709*5113495bSYour Name  * @evt_buf: wmi event buffer
710*5113495bSYour Name  */
711*5113495bSYour Name void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
712*5113495bSYour Name #ifdef FEATURE_RUNTIME_PM
713*5113495bSYour Name /**
714*5113495bSYour Name  * wmi_set_runtime_pm_inprogress() - set runtime pm progress flag
715*5113495bSYour Name  * @wmi_handle: wmi context
716*5113495bSYour Name  * @val: runtime pm progress flag
717*5113495bSYour Name  */
718*5113495bSYour Name void
719*5113495bSYour Name wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val);
720*5113495bSYour Name 
721*5113495bSYour Name /**
722*5113495bSYour Name  * wmi_get_runtime_pm_inprogress() - get runtime pm progress flag
723*5113495bSYour Name  * @wmi_handle: wmi context
724*5113495bSYour Name  *
725*5113495bSYour Name  * Return: value of runtime pm progress flag
726*5113495bSYour Name  */
727*5113495bSYour Name bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle);
728*5113495bSYour Name #else
729*5113495bSYour Name static inline void
wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle,bool val)730*5113495bSYour Name wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val)
731*5113495bSYour Name {
732*5113495bSYour Name 	return;
733*5113495bSYour Name }
wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle)734*5113495bSYour Name static inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle)
735*5113495bSYour Name {
736*5113495bSYour Name 	return false;
737*5113495bSYour Name }
738*5113495bSYour Name #endif
739*5113495bSYour Name 
740*5113495bSYour Name /**
741*5113495bSYour Name  * wmi_set_wow_enable_ack_failed() - set wow enable ack failed status
742*5113495bSYour Name  *     if wow enable ack failed, which means host and fw have some problem
743*5113495bSYour Name  *     to exchange wmi cmd. set indication here and block wmi cmds.
744*5113495bSYour Name  *     the cmds can be sent again after wmi re-init in subsystem recovery.
745*5113495bSYour Name  * @wmi_handle: wmi context
746*5113495bSYour Name  *
747*5113495bSYour Name  * return: none
748*5113495bSYour Name  */
749*5113495bSYour Name void wmi_set_wow_enable_ack_failed(wmi_unified_t wmi_handle);
750*5113495bSYour Name 
751*5113495bSYour Name /**
752*5113495bSYour Name  * wmi_clear_wow_enable_ack_failed() - clear wow enable ack failed status
753*5113495bSYour Name  *     explicitly clear this status when wmi close of SSR
754*5113495bSYour Name  * @wmi_handle: wmi context
755*5113495bSYour Name  *
756*5113495bSYour Name  * return: none
757*5113495bSYour Name  */
758*5113495bSYour Name void wmi_clear_wow_enable_ack_failed(wmi_unified_t wmi_handle);
759*5113495bSYour Name 
760*5113495bSYour Name /**
761*5113495bSYour Name  * wmi_has_wow_enable_ack_failed() - get wow enable ack failed status
762*5113495bSYour Name  * @wmi_handle: wmi context
763*5113495bSYour Name  *
764*5113495bSYour Name  * Return: true if wow enable ack already failed. other false
765*5113495bSYour Name  */
766*5113495bSYour Name bool wmi_has_wow_enable_ack_failed(wmi_unified_t wmi_handle);
767*5113495bSYour Name 
768*5113495bSYour Name /**
769*5113495bSYour Name  * wmi_unified_get_soc_handle: Get WMI SoC handle
770*5113495bSYour Name  * @wmi_handle: WMI context got from wmi_attach
771*5113495bSYour Name  *
772*5113495bSYour Name  * Return: Pointer to Soc handle
773*5113495bSYour Name  */
774*5113495bSYour Name void *wmi_unified_get_soc_handle(struct wmi_unified *wmi_handle);
775*5113495bSYour Name 
776*5113495bSYour Name /**
777*5113495bSYour Name  * wmi_unified_get_pdev_handle: Get WMI SoC handle
778*5113495bSYour Name  * @soc: Pointer to wmi soc object
779*5113495bSYour Name  * @pdev_idx: pdev index
780*5113495bSYour Name  *
781*5113495bSYour Name  * Return: Pointer to wmi handle or NULL on failure
782*5113495bSYour Name  */
783*5113495bSYour Name void *wmi_unified_get_pdev_handle(struct wmi_soc *soc, uint32_t pdev_idx);
784*5113495bSYour Name 
785*5113495bSYour Name /**
786*5113495bSYour Name  * wmi_process_fw_event() - UMAC Callback to process fw event.
787*5113495bSYour Name  * @wmi_handle: handle to WMI.
788*5113495bSYour Name  * @evt_buf: wmi event buffer
789*5113495bSYour Name  *
790*5113495bSYour Name  * This function process fw event in caller context
791*5113495bSYour Name  *
792*5113495bSYour Name  * Return: none
793*5113495bSYour Name  */
794*5113495bSYour Name void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
795*5113495bSYour Name 
796*5113495bSYour Name /**
797*5113495bSYour Name  * wmi_get_max_msg_len() - get maximum WMI message length
798*5113495bSYour Name  * @wmi_handle: WMI handle.
799*5113495bSYour Name  *
800*5113495bSYour Name  * This function returns the maximum WMI message length
801*5113495bSYour Name  *
802*5113495bSYour Name  * Return: maximum WMI message length
803*5113495bSYour Name  */
804*5113495bSYour Name uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle);
805*5113495bSYour Name 
806*5113495bSYour Name /**
807*5113495bSYour Name  * wmi_unified_soc_set_hw_mode_cmd() - Send WMI_SOC_SET_HW_MODE_CMDID to FW
808*5113495bSYour Name  * @wmi_handle: wmi handle
809*5113495bSYour Name  * @hw_mode_index: The HW_Mode field is a enumerated type that is selected
810*5113495bSYour Name  * from the HW_Mode table, which is returned in the WMI_SERVICE_READY_EVENTID.
811*5113495bSYour Name  *
812*5113495bSYour Name  * Request HardWare (HW) Mode change to WLAN firmware
813*5113495bSYour Name  *
814*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
815*5113495bSYour Name  */
816*5113495bSYour Name QDF_STATUS wmi_unified_soc_set_hw_mode_cmd(wmi_unified_t wmi_handle,
817*5113495bSYour Name 					   uint32_t hw_mode_index);
818*5113495bSYour Name 
819*5113495bSYour Name /**
820*5113495bSYour Name  * wmi_unified_soc_set_rf_path_cmd() - WMI_PDEV_SET_RF_PATH_CMDID to FW
821*5113495bSYour Name  * @wmi_handle: wmi handle
822*5113495bSYour Name  * @rf_path_index: RF path index to switch to
823*5113495bSYour Name  * @pdev_id: pdev id
824*5113495bSYour Name  *
825*5113495bSYour Name  * Request RF path change to WLAN firmware
826*5113495bSYour Name  *
827*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
828*5113495bSYour Name  */
829*5113495bSYour Name QDF_STATUS wmi_unified_soc_set_rf_path_cmd(wmi_unified_t wmi_handle,
830*5113495bSYour Name 					   uint32_t rf_path_index,
831*5113495bSYour Name 					   uint8_t pdev_id);
832*5113495bSYour Name 
833*5113495bSYour Name /**
834*5113495bSYour Name  * wmi_unified_extract_hw_mode_resp() - Extract HW mode change response
835*5113495bSYour Name  * @wmi: WMI handle
836*5113495bSYour Name  * @evt_buf: Buffer holding event data
837*5113495bSYour Name  * @cmd_status: command status
838*5113495bSYour Name  *
839*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
840*5113495bSYour Name  */
841*5113495bSYour Name QDF_STATUS
842*5113495bSYour Name wmi_unified_extract_hw_mode_resp(wmi_unified_t wmi,
843*5113495bSYour Name 				 void *evt_buf,
844*5113495bSYour Name 				 uint32_t *cmd_status);
845*5113495bSYour Name 
846*5113495bSYour Name /**
847*5113495bSYour Name  * wmi_unified_extract_rf_path_resp() - Extract RF path change response
848*5113495bSYour Name  * @wmi: WMI handle
849*5113495bSYour Name  * @evt_buf: Buffer holding event data
850*5113495bSYour Name  * @cmd_status: command status
851*5113495bSYour Name  *
852*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
853*5113495bSYour Name  */
854*5113495bSYour Name QDF_STATUS
855*5113495bSYour Name wmi_unified_extract_rf_path_resp(wmi_unified_t wmi,
856*5113495bSYour Name 				 void *evt_buf,
857*5113495bSYour Name 				 uint32_t *cmd_status);
858*5113495bSYour Name 
859*5113495bSYour Name /**
860*5113495bSYour Name  * wmi_unified_extract_roam_trigger_stats() - Extract roam trigger related
861*5113495bSYour Name  * stats
862*5113495bSYour Name  * @wmi:        wmi handle
863*5113495bSYour Name  * @evt_buf:    Pointer to the event buffer
864*5113495bSYour Name  * @trig:       Pointer to destination structure to fill data
865*5113495bSYour Name  * @idx:        TLV id
866*5113495bSYour Name  * @btm_idx:    BTM candidates index
867*5113495bSYour Name  *
868*5113495bSYour Name  * Return: QDF_STATUS
869*5113495bSYour Name  */
870*5113495bSYour Name QDF_STATUS
871*5113495bSYour Name wmi_unified_extract_roam_trigger_stats(wmi_unified_t wmi, void *evt_buf,
872*5113495bSYour Name 				       struct wmi_roam_trigger_info *trig,
873*5113495bSYour Name 				       uint8_t idx, uint8_t btm_idx);
874*5113495bSYour Name 
875*5113495bSYour Name /**
876*5113495bSYour Name  * wmi_unified_extract_roam_scan_stats() - Extract roam scan stats from
877*5113495bSYour Name  * firmware
878*5113495bSYour Name  * @wmi:        wmi handle
879*5113495bSYour Name  * @evt_buf:    Pointer to the event buffer
880*5113495bSYour Name  * @dst:        Pointer to destination structure to fill data
881*5113495bSYour Name  * @idx:        TLV id
882*5113495bSYour Name  * @chan_idx:   Index of the channel frequency for this roam trigger
883*5113495bSYour Name  * @ap_idx:     Index of the candidate AP for this roam trigger
884*5113495bSYour Name  *
885*5113495bSYour Name  * Return: QDF_STATUS
886*5113495bSYour Name  */
887*5113495bSYour Name QDF_STATUS
888*5113495bSYour Name wmi_unified_extract_roam_scan_stats(wmi_unified_t wmi, void *evt_buf,
889*5113495bSYour Name 				    struct wmi_roam_scan_data *dst, uint8_t idx,
890*5113495bSYour Name 				    uint8_t chan_idx, uint8_t ap_idx);
891*5113495bSYour Name 
892*5113495bSYour Name /**
893*5113495bSYour Name  * wmi_unified_extract_roam_result_stats() - Extract roam result related stats
894*5113495bSYour Name  * @wmi:        wmi handle
895*5113495bSYour Name  * @evt_buf:    Pointer to the event buffer
896*5113495bSYour Name  * @dst:        Pointer to destination structure to fill data
897*5113495bSYour Name  * @idx:        TLV id
898*5113495bSYour Name  *
899*5113495bSYour Name  * Return: QDF_STATUS
900*5113495bSYour Name  */
901*5113495bSYour Name QDF_STATUS
902*5113495bSYour Name wmi_unified_extract_roam_result_stats(wmi_unified_t wmi, void *evt_buf,
903*5113495bSYour Name 				      struct wmi_roam_result *dst,
904*5113495bSYour Name 				      uint8_t idx);
905*5113495bSYour Name 
906*5113495bSYour Name /**
907*5113495bSYour Name  * wmi_unified_extract_roam_11kv_stats() - Extract BTM/Neigh report stats
908*5113495bSYour Name  * @wmi:       wmi handle
909*5113495bSYour Name  * @evt_buf:   Pointer to the event buffer
910*5113495bSYour Name  * @dst:       Pointer to destination structure to fill data
911*5113495bSYour Name  * @idx:       TLV id
912*5113495bSYour Name  * @rpt_idx:   index of the current channel
913*5113495bSYour Name  *
914*5113495bSYour Name  * Return: QDF_STATUS
915*5113495bSYour Name  */
916*5113495bSYour Name QDF_STATUS
917*5113495bSYour Name wmi_unified_extract_roam_11kv_stats(wmi_unified_t wmi, void *evt_buf,
918*5113495bSYour Name 				    struct wmi_neighbor_report_data *dst,
919*5113495bSYour Name 				    uint8_t idx, uint8_t rpt_idx);
920*5113495bSYour Name 
921*5113495bSYour Name /**
922*5113495bSYour Name  * wmi_unified_vdev_create_send() - send VDEV create command to fw
923*5113495bSYour Name  * @wmi_handle: wmi handle
924*5113495bSYour Name  * @param: pointer to hold vdev create parameter
925*5113495bSYour Name  * @macaddr: vdev mac address
926*5113495bSYour Name  *
927*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
928*5113495bSYour Name  */
929*5113495bSYour Name QDF_STATUS wmi_unified_vdev_create_send(wmi_unified_t wmi_handle,
930*5113495bSYour Name 					uint8_t macaddr[QDF_MAC_ADDR_SIZE],
931*5113495bSYour Name 					struct vdev_create_params *param);
932*5113495bSYour Name 
933*5113495bSYour Name /**
934*5113495bSYour Name  * wmi_unified_vdev_delete_send() - send VDEV delete command to fw
935*5113495bSYour Name  * @wmi_handle: wmi handle
936*5113495bSYour Name  * @if_id: vdev id
937*5113495bSYour Name  *
938*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
939*5113495bSYour Name  */
940*5113495bSYour Name QDF_STATUS wmi_unified_vdev_delete_send(wmi_unified_t wmi_handle,
941*5113495bSYour Name 					uint8_t if_id);
942*5113495bSYour Name 
943*5113495bSYour Name /**
944*5113495bSYour Name  * wmi_unified_vdev_nss_chain_params_send() - send VDEV nss chain params to fw
945*5113495bSYour Name  * @wmi_handle: wmi handle
946*5113495bSYour Name  * @vdev_id: vdev id
947*5113495bSYour Name  * @nss_chains_user_cfg: user configured params to send
948*5113495bSYour Name  *
949*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
950*5113495bSYour Name  */
951*5113495bSYour Name QDF_STATUS
952*5113495bSYour Name wmi_unified_vdev_nss_chain_params_send(
953*5113495bSYour Name 		wmi_unified_t wmi_handle,
954*5113495bSYour Name 		uint8_t vdev_id,
955*5113495bSYour Name 		struct vdev_nss_chains *nss_chains_user_cfg);
956*5113495bSYour Name 
957*5113495bSYour Name /**
958*5113495bSYour Name  * wmi_unified_vdev_stop_send() - send vdev stop command to fw
959*5113495bSYour Name  * @wmi_handle: wmi handle
960*5113495bSYour Name  * @params: VDEV stop params
961*5113495bSYour Name  *
962*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
963*5113495bSYour Name  */
964*5113495bSYour Name QDF_STATUS wmi_unified_vdev_stop_send(wmi_unified_t wmi_handle,
965*5113495bSYour Name 				      struct vdev_stop_params *params);
966*5113495bSYour Name 
967*5113495bSYour Name /**
968*5113495bSYour Name  * wmi_unified_vdev_up_send() - send vdev up command in fw
969*5113495bSYour Name  * @wmi_handle: wmi handle
970*5113495bSYour Name  * @bssid: bssid
971*5113495bSYour Name  * @params: pointer to hold vdev up parameter
972*5113495bSYour Name  *
973*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
974*5113495bSYour Name  */
975*5113495bSYour Name QDF_STATUS wmi_unified_vdev_up_send(wmi_unified_t wmi_handle,
976*5113495bSYour Name 				    uint8_t bssid[QDF_MAC_ADDR_SIZE],
977*5113495bSYour Name 				    struct vdev_up_params *params);
978*5113495bSYour Name 
979*5113495bSYour Name /**
980*5113495bSYour Name  * wmi_unified_vdev_down_send() - send vdev down command to fw
981*5113495bSYour Name  * @wmi_handle: wmi handle
982*5113495bSYour Name  * @vdev_id: vdev id
983*5113495bSYour Name  *
984*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
985*5113495bSYour Name  */
986*5113495bSYour Name QDF_STATUS wmi_unified_vdev_down_send(wmi_unified_t wmi_handle,
987*5113495bSYour Name 				      uint8_t vdev_id);
988*5113495bSYour Name 
989*5113495bSYour Name /**
990*5113495bSYour Name  * wmi_unified_vdev_start_send() - send vdev start command to fw
991*5113495bSYour Name  * @wmi_handle: wmi handle
992*5113495bSYour Name  * @req: pointer to hold vdev start parameters
993*5113495bSYour Name  *
994*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
995*5113495bSYour Name  */
996*5113495bSYour Name QDF_STATUS wmi_unified_vdev_start_send(wmi_unified_t wmi_handle,
997*5113495bSYour Name 				       struct vdev_start_params *req);
998*5113495bSYour Name 
999*5113495bSYour Name /**
1000*5113495bSYour Name  * wmi_unified_vdev_set_nac_rssi_send() - send NAC_RSSI command to fw
1001*5113495bSYour Name  * @wmi_handle: handle to WMI
1002*5113495bSYour Name  * @req: pointer to hold nac rssi request data
1003*5113495bSYour Name  *
1004*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1005*5113495bSYour Name  */
1006*5113495bSYour Name QDF_STATUS
1007*5113495bSYour Name wmi_unified_vdev_set_nac_rssi_send(wmi_unified_t wmi_handle,
1008*5113495bSYour Name 				   struct vdev_scan_nac_rssi_params *req);
1009*5113495bSYour Name 
1010*5113495bSYour Name /**
1011*5113495bSYour Name  * wmi_unified_vdev_set_param_send() - WMI vdev set parameter function
1012*5113495bSYour Name  * @wmi_handle: handle to WMI.
1013*5113495bSYour Name  * @param: pointer to hold vdev set parameter
1014*5113495bSYour Name  *
1015*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1016*5113495bSYour Name  */
1017*5113495bSYour Name QDF_STATUS
1018*5113495bSYour Name wmi_unified_vdev_set_param_send(wmi_unified_t wmi_handle,
1019*5113495bSYour Name 				struct vdev_set_params *param);
1020*5113495bSYour Name 
1021*5113495bSYour Name /**
1022*5113495bSYour Name  * wmi_unified_multiple_vdev_param_send() - sends multiple vdev set params
1023*5113495bSYour Name  * @wmi_handle: handle to WMI.
1024*5113495bSYour Name  * @params: pointer to hold set_multiple_pdev_vdev_param info.
1025*5113495bSYour Name  *
1026*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1027*5113495bSYour Name  */
1028*5113495bSYour Name QDF_STATUS
1029*5113495bSYour Name wmi_unified_multiple_vdev_param_send(wmi_unified_t wmi_handle,
1030*5113495bSYour Name 				     struct set_multiple_pdev_vdev_param *params);
1031*5113495bSYour Name 
1032*5113495bSYour Name /**
1033*5113495bSYour Name  * wmi_unified_set_mac_addr_rx_filter() - set mac addr rx filter cmd
1034*5113495bSYour Name  * @wmi_handle: wmi handle
1035*5113495bSYour Name  * @param: Pointer to set mac filter struct
1036*5113495bSYour Name  *
1037*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1038*5113495bSYour Name  */
1039*5113495bSYour Name QDF_STATUS
1040*5113495bSYour Name wmi_unified_set_mac_addr_rx_filter(wmi_unified_t wmi_handle,
1041*5113495bSYour Name 				   struct set_rx_mac_filter *param);
1042*5113495bSYour Name /**
1043*5113495bSYour Name  * wmi_unified_multiple_pdev_param_send() - sends multiple pdev set params
1044*5113495bSYour Name  * @wmi_handle: handle to WMI.
1045*5113495bSYour Name  * @params: pointer to hold set_multiple_pdev_vdev_param info
1046*5113495bSYour Name  *
1047*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1048*5113495bSYour Name  */
1049*5113495bSYour Name QDF_STATUS
1050*5113495bSYour Name wmi_unified_multiple_pdev_param_send(wmi_unified_t wmi_handle,
1051*5113495bSYour Name 				     struct set_multiple_pdev_vdev_param *params);
1052*5113495bSYour Name 
1053*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
1054*5113495bSYour Name /**
1055*5113495bSYour Name  * wmi_unified_roam_set_param_send() - WMI roam set parameter function
1056*5113495bSYour Name  * @wmi_handle: handle to WMI.
1057*5113495bSYour Name  * @roam_param: pointer to hold roam set parameter
1058*5113495bSYour Name  *
1059*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1060*5113495bSYour Name  */
1061*5113495bSYour Name QDF_STATUS
1062*5113495bSYour Name wmi_unified_roam_set_param_send(wmi_unified_t wmi_handle,
1063*5113495bSYour Name 				struct vdev_set_params *roam_param);
1064*5113495bSYour Name #else
1065*5113495bSYour Name static inline QDF_STATUS
wmi_unified_roam_set_param_send(wmi_unified_t wmi_handle,struct vdev_set_params * roam_param)1066*5113495bSYour Name wmi_unified_roam_set_param_send(wmi_unified_t wmi_handle,
1067*5113495bSYour Name 				struct vdev_set_params *roam_param)
1068*5113495bSYour Name {
1069*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
1070*5113495bSYour Name }
1071*5113495bSYour Name #endif
1072*5113495bSYour Name 
1073*5113495bSYour Name /**
1074*5113495bSYour Name  * wmi_unified_vdev_set_mu_snif_send() - Set vdev MU sniffer parameters
1075*5113495bSYour Name  * @wmi_handle: handle to WMI.
1076*5113495bSYour Name  * @param: vdev MU sniffer parameters
1077*5113495bSYour Name  *
1078*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1079*5113495bSYour Name  */
1080*5113495bSYour Name QDF_STATUS
1081*5113495bSYour Name wmi_unified_vdev_set_mu_snif_send(wmi_unified_t wmi_handle,
1082*5113495bSYour Name 				  struct vdev_set_mu_snif_param *param);
1083*5113495bSYour Name 
1084*5113495bSYour Name /**
1085*5113495bSYour Name  * wmi_unified_sifs_trigger_send() - WMI vdev sifs trigger parameter function
1086*5113495bSYour Name  * @wmi_handle: handle to WMI.
1087*5113495bSYour Name  * @param: pointer to hold sifs trigger parameter
1088*5113495bSYour Name  *
1089*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1090*5113495bSYour Name  */
1091*5113495bSYour Name QDF_STATUS wmi_unified_sifs_trigger_send(wmi_unified_t wmi_handle,
1092*5113495bSYour Name 					 struct sifs_trigger_param *param);
1093*5113495bSYour Name 
1094*5113495bSYour Name /**
1095*5113495bSYour Name  * wmi_unified_peer_delete_send() - send PEER delete command to fw
1096*5113495bSYour Name  * @wmi_handle: wmi handle
1097*5113495bSYour Name  * @peer_addr: peer mac addr
1098*5113495bSYour Name  * @param: pointer to hold peer delete parameters
1099*5113495bSYour Name  *
1100*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1101*5113495bSYour Name  */
1102*5113495bSYour Name QDF_STATUS
1103*5113495bSYour Name wmi_unified_peer_delete_send(wmi_unified_t wmi_handle,
1104*5113495bSYour Name 			     uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
1105*5113495bSYour Name 			     struct peer_delete_cmd_params *param);
1106*5113495bSYour Name 
1107*5113495bSYour Name /**
1108*5113495bSYour Name  * wmi_unified_peer_flush_tids_send() - flush peer tids packets in fw
1109*5113495bSYour Name  * @wmi_handle: wmi handle
1110*5113495bSYour Name  * @peer_addr: peer mac address
1111*5113495bSYour Name  * @param: pointer to hold peer flush tid parameter
1112*5113495bSYour Name  *
1113*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1114*5113495bSYour Name  */
1115*5113495bSYour Name QDF_STATUS
1116*5113495bSYour Name wmi_unified_peer_flush_tids_send(wmi_unified_t wmi_handle,
1117*5113495bSYour Name 				 uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
1118*5113495bSYour Name 				 struct peer_flush_params *param);
1119*5113495bSYour Name #ifdef WLAN_FEATURE_PEER_TXQ_FLUSH_CONF
1120*5113495bSYour Name /**
1121*5113495bSYour Name  * wmi_unified_peer_txq_flush_config_send() - peer txq flush policy config in fw
1122*5113495bSYour Name  * @wmi_handle: wmi handle
1123*5113495bSYour Name  * @pr: peer txq flush config parameters
1124*5113495bSYour Name  *
1125*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1126*5113495bSYour Name  */
1127*5113495bSYour Name QDF_STATUS
1128*5113495bSYour Name wmi_unified_peer_txq_flush_config_send(wmi_unified_t wmi_handle,
1129*5113495bSYour Name 				       struct peer_txq_flush_config_params *pr);
1130*5113495bSYour Name #endif
1131*5113495bSYour Name 
1132*5113495bSYour Name /**
1133*5113495bSYour Name  * wmi_unified_peer_delete_all_send() - send PEER delete all command to fw
1134*5113495bSYour Name  * @wmi_hdl: wmi handle
1135*5113495bSYour Name  * @param: pointer to hold peer delete all parameters
1136*5113495bSYour Name  *
1137*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1138*5113495bSYour Name  */
1139*5113495bSYour Name QDF_STATUS wmi_unified_peer_delete_all_send(
1140*5113495bSYour Name 					wmi_unified_t wmi_hdl,
1141*5113495bSYour Name 					struct peer_delete_all_params *param);
1142*5113495bSYour Name 
1143*5113495bSYour Name /**
1144*5113495bSYour Name  * wmi_set_peer_param_send() - set peer parameter in fw
1145*5113495bSYour Name  * @wmi_handle: wmi handle
1146*5113495bSYour Name  * @peer_addr: peer mac address
1147*5113495bSYour Name  * @param: pointer to hold peer set parameter
1148*5113495bSYour Name  *
1149*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1150*5113495bSYour Name  */
1151*5113495bSYour Name QDF_STATUS
1152*5113495bSYour Name wmi_set_peer_param_send(wmi_unified_t wmi_handle,
1153*5113495bSYour Name 			uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
1154*5113495bSYour Name 			struct peer_set_params *param);
1155*5113495bSYour Name 
1156*5113495bSYour Name /**
1157*5113495bSYour Name  * wmi_unified_peer_create_send() - send peer create command to fw
1158*5113495bSYour Name  * @wmi_handle: wmi handle
1159*5113495bSYour Name  * @param: peer create parameters
1160*5113495bSYour Name  *
1161*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1162*5113495bSYour Name  */
1163*5113495bSYour Name QDF_STATUS wmi_unified_peer_create_send(wmi_unified_t wmi_handle,
1164*5113495bSYour Name 					struct peer_create_params *param);
1165*5113495bSYour Name 
1166*5113495bSYour Name /**
1167*5113495bSYour Name  * wmi_unified_green_ap_ps_send() - enable green ap powersave command
1168*5113495bSYour Name  * @wmi_handle: wmi handle
1169*5113495bSYour Name  * @value: value
1170*5113495bSYour Name  * @pdev_id: pdev id to have radio context
1171*5113495bSYour Name  *
1172*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1173*5113495bSYour Name  */
1174*5113495bSYour Name QDF_STATUS wmi_unified_green_ap_ps_send(wmi_unified_t wmi_handle,
1175*5113495bSYour Name 					uint32_t value, uint8_t pdev_id);
1176*5113495bSYour Name 
1177*5113495bSYour Name /**
1178*5113495bSYour Name  * wmi_unified_wow_enable_send() - WMI wow enable function
1179*5113495bSYour Name  * @wmi_handle: handle to WMI.
1180*5113495bSYour Name  * @param: pointer to hold wow enable parameter
1181*5113495bSYour Name  * @mac_id: radio context
1182*5113495bSYour Name  *
1183*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1184*5113495bSYour Name  */
1185*5113495bSYour Name QDF_STATUS wmi_unified_wow_enable_send(wmi_unified_t wmi_handle,
1186*5113495bSYour Name 				       struct wow_cmd_params *param,
1187*5113495bSYour Name 				       uint8_t mac_id);
1188*5113495bSYour Name 
1189*5113495bSYour Name /**
1190*5113495bSYour Name  * wmi_unified_wow_wakeup_send() - WMI wow wakeup function
1191*5113495bSYour Name  * @wmi_handle: handle to WMI.
1192*5113495bSYour Name  *
1193*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1194*5113495bSYour Name  */
1195*5113495bSYour Name QDF_STATUS wmi_unified_wow_wakeup_send(wmi_unified_t wmi_handle);
1196*5113495bSYour Name 
1197*5113495bSYour Name /**
1198*5113495bSYour Name  * wmi_unified_wow_add_wakeup_event_send() - WMI wow wakeup function
1199*5113495bSYour Name  * @wmi_handle: handle to WMI.
1200*5113495bSYour Name  * @param: pointer to wow wakeup event parameter structure
1201*5113495bSYour Name  *
1202*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1203*5113495bSYour Name  */
1204*5113495bSYour Name QDF_STATUS
1205*5113495bSYour Name wmi_unified_wow_add_wakeup_event_send(wmi_unified_t wmi_handle,
1206*5113495bSYour Name 				      struct wow_add_wakeup_params *param);
1207*5113495bSYour Name 
1208*5113495bSYour Name /**
1209*5113495bSYour Name  * wmi_unified_wow_add_wakeup_pattern_send() - WMI wow wakeup pattern function
1210*5113495bSYour Name  * @wmi_handle: handle to WMI.
1211*5113495bSYour Name  * @param: pointer to wow wakeup pattern parameter structure
1212*5113495bSYour Name  *
1213*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1214*5113495bSYour Name  */
1215*5113495bSYour Name QDF_STATUS
1216*5113495bSYour Name wmi_unified_wow_add_wakeup_pattern_send(
1217*5113495bSYour Name 		wmi_unified_t wmi_handle,
1218*5113495bSYour Name 		struct wow_add_wakeup_pattern_params *param);
1219*5113495bSYour Name 
1220*5113495bSYour Name /**
1221*5113495bSYour Name  * wmi_unified_wow_remove_wakeup_pattern_send() - wow wakeup pattern function
1222*5113495bSYour Name  * @wmi_handle: handle to WMI.
1223*5113495bSYour Name  * @param: pointer to wow wakeup pattern parameter structure
1224*5113495bSYour Name  *
1225*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1226*5113495bSYour Name  */
1227*5113495bSYour Name QDF_STATUS
1228*5113495bSYour Name wmi_unified_wow_remove_wakeup_pattern_send(
1229*5113495bSYour Name 		wmi_unified_t wmi_handle,
1230*5113495bSYour Name 		struct wow_remove_wakeup_pattern_params *param);
1231*5113495bSYour Name 
1232*5113495bSYour Name /**
1233*5113495bSYour Name  * wmi_unified_packet_log_enable_send() - WMI request stats function
1234*5113495bSYour Name  * @wmi_handle : handle to WMI.
1235*5113495bSYour Name  * @PKTLOG_EVENT : PKTLOG Event
1236*5113495bSYour Name  * @mac_id : MAC id corresponds to pdev id
1237*5113495bSYour Name  *
1238*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1239*5113495bSYour Name  */
1240*5113495bSYour Name QDF_STATUS
1241*5113495bSYour Name wmi_unified_packet_log_enable_send(wmi_unified_t wmi_handle,
1242*5113495bSYour Name 				   WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT,
1243*5113495bSYour Name 				   uint8_t mac_id);
1244*5113495bSYour Name 
1245*5113495bSYour Name /**
1246*5113495bSYour Name  * wmi_unified_peer_based_pktlog_send() - WMI request enable peer
1247*5113495bSYour Name  * based filtering
1248*5113495bSYour Name  * @wmi_handle: handle to WMI.
1249*5113495bSYour Name  * @macaddr: PEER mac address to be filtered
1250*5113495bSYour Name  * @mac_id: Mac id
1251*5113495bSYour Name  * @enb_dsb: Enable or Disable peer based pktlog
1252*5113495bSYour Name  *           filtering
1253*5113495bSYour Name  *
1254*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1255*5113495bSYour Name  */
1256*5113495bSYour Name QDF_STATUS wmi_unified_peer_based_pktlog_send(wmi_unified_t wmi_handle,
1257*5113495bSYour Name 					      uint8_t *macaddr,
1258*5113495bSYour Name 					      uint8_t mac_id,
1259*5113495bSYour Name 					      uint8_t enb_dsb);
1260*5113495bSYour Name 
1261*5113495bSYour Name /**
1262*5113495bSYour Name  * wmi_unified_packet_log_disable_send() - WMI pktlog disable function
1263*5113495bSYour Name  * @wmi_handle: handle to WMI.
1264*5113495bSYour Name  * @mac_id: Mac id
1265*5113495bSYour Name  *
1266*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1267*5113495bSYour Name  */
1268*5113495bSYour Name QDF_STATUS wmi_unified_packet_log_disable_send(wmi_unified_t wmi_handle,
1269*5113495bSYour Name 					       uint8_t mac_id);
1270*5113495bSYour Name 
1271*5113495bSYour Name /**
1272*5113495bSYour Name  * wmi_unified_suspend_send() - WMI suspend function
1273*5113495bSYour Name  * @wmi_handle: handle to WMI.
1274*5113495bSYour Name  * @param: pointer to hold suspend parameter
1275*5113495bSYour Name  * @mac_id: radio context
1276*5113495bSYour Name  *
1277*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1278*5113495bSYour Name  */
1279*5113495bSYour Name QDF_STATUS wmi_unified_suspend_send(wmi_unified_t wmi_handle,
1280*5113495bSYour Name 				    struct suspend_params *param,
1281*5113495bSYour Name 				    uint8_t mac_id);
1282*5113495bSYour Name 
1283*5113495bSYour Name /**
1284*5113495bSYour Name  * wmi_unified_resume_send - WMI resume function
1285*5113495bSYour Name  * @wmi_handle      : handle to WMI.
1286*5113495bSYour Name  * @mac_id: radio context
1287*5113495bSYour Name  *
1288*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1289*5113495bSYour Name  */
1290*5113495bSYour Name QDF_STATUS wmi_unified_resume_send(wmi_unified_t wmi_handle,
1291*5113495bSYour Name 				   uint8_t mac_id);
1292*5113495bSYour Name 
1293*5113495bSYour Name /**
1294*5113495bSYour Name  * wmi_unified_pdev_param_send() - set pdev parameters
1295*5113495bSYour Name  * @wmi_handle: wmi handle
1296*5113495bSYour Name  * @param: pointer to pdev parameter
1297*5113495bSYour Name  * @mac_id: radio context
1298*5113495bSYour Name  *
1299*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures,
1300*5113495bSYour Name  *         errno on failure
1301*5113495bSYour Name  */
1302*5113495bSYour Name QDF_STATUS
1303*5113495bSYour Name wmi_unified_pdev_param_send(wmi_unified_t wmi_handle,
1304*5113495bSYour Name 			    struct pdev_params *param,
1305*5113495bSYour Name 			    uint8_t mac_id);
1306*5113495bSYour Name 
1307*5113495bSYour Name /**
1308*5113495bSYour Name  * wmi_unified_fd_tmpl_send_cmd() - WMI FILS Discovery send function
1309*5113495bSYour Name  * @wmi_handle: handle to WMI.
1310*5113495bSYour Name  * @param: pointer to hold FILS Discovery send cmd parameter
1311*5113495bSYour Name  *
1312*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1313*5113495bSYour Name  */
1314*5113495bSYour Name QDF_STATUS
1315*5113495bSYour Name wmi_unified_fd_tmpl_send_cmd(wmi_unified_t wmi_handle,
1316*5113495bSYour Name 			     struct fils_discovery_tmpl_params *param);
1317*5113495bSYour Name 
1318*5113495bSYour Name /**
1319*5113495bSYour Name  * wmi_unified_beacon_tmpl_send_cmd() - WMI beacon send function
1320*5113495bSYour Name  * @wmi_handle: handle to WMI.
1321*5113495bSYour Name  * @param: pointer to hold beacon send cmd parameter
1322*5113495bSYour Name  *
1323*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1324*5113495bSYour Name  */
1325*5113495bSYour Name QDF_STATUS
1326*5113495bSYour Name wmi_unified_beacon_tmpl_send_cmd(wmi_unified_t wmi_handle,
1327*5113495bSYour Name 				 struct beacon_tmpl_params *param);
1328*5113495bSYour Name 
1329*5113495bSYour Name /**
1330*5113495bSYour Name  * wmi_unified_peer_assoc_send() - WMI peer assoc function
1331*5113495bSYour Name  * @wmi_handle: handle to WMI.
1332*5113495bSYour Name  * @param: pointer to peer assoc parameter
1333*5113495bSYour Name  *
1334*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1335*5113495bSYour Name  */
1336*5113495bSYour Name QDF_STATUS wmi_unified_peer_assoc_send(wmi_unified_t wmi_handle,
1337*5113495bSYour Name 				       struct peer_assoc_params *param);
1338*5113495bSYour Name 
1339*5113495bSYour Name /**
1340*5113495bSYour Name  * wmi_unified_sta_ps_cmd_send() - set sta powersave parameters
1341*5113495bSYour Name  * @wmi_handle: wmi handle
1342*5113495bSYour Name  * @param: pointer to sta_ps parameter structure
1343*5113495bSYour Name  *
1344*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1345*5113495bSYour Name  */
1346*5113495bSYour Name QDF_STATUS wmi_unified_sta_ps_cmd_send(wmi_unified_t wmi_handle,
1347*5113495bSYour Name 				       struct sta_ps_params *param);
1348*5113495bSYour Name 
1349*5113495bSYour Name /**
1350*5113495bSYour Name  * wmi_unified_ap_ps_cmd_send() - set ap powersave parameters
1351*5113495bSYour Name  * @wmi_handle: wmi handle
1352*5113495bSYour Name  * @macaddr: peer mac address
1353*5113495bSYour Name  * @param: pointer to ap_ps parameter structure
1354*5113495bSYour Name  *
1355*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1356*5113495bSYour Name  */
1357*5113495bSYour Name QDF_STATUS wmi_unified_ap_ps_cmd_send(wmi_unified_t wmi_handle,
1358*5113495bSYour Name 				      uint8_t *macaddr,
1359*5113495bSYour Name 				      struct ap_ps_params *param);
1360*5113495bSYour Name 
1361*5113495bSYour Name /**
1362*5113495bSYour Name  * wmi_unified_scan_start_cmd_send() - WMI scan start function
1363*5113495bSYour Name  * @wmi_handle: handle to WMI.
1364*5113495bSYour Name  * @param: pointer to hold scan start cmd parameter
1365*5113495bSYour Name  *
1366*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1367*5113495bSYour Name  */
1368*5113495bSYour Name QDF_STATUS
1369*5113495bSYour Name wmi_unified_scan_start_cmd_send(wmi_unified_t wmi_handle,
1370*5113495bSYour Name 				struct scan_req_params *param);
1371*5113495bSYour Name 
1372*5113495bSYour Name /**
1373*5113495bSYour Name  * wmi_unified_scan_stop_cmd_send() - WMI scan start function
1374*5113495bSYour Name  * @wmi_handle: handle to WMI.
1375*5113495bSYour Name  * @param: pointer to hold scan start cmd parameter
1376*5113495bSYour Name  *
1377*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1378*5113495bSYour Name  */
1379*5113495bSYour Name QDF_STATUS
1380*5113495bSYour Name wmi_unified_scan_stop_cmd_send(wmi_unified_t wmi_handle,
1381*5113495bSYour Name 			       struct scan_cancel_param *param);
1382*5113495bSYour Name 
1383*5113495bSYour Name /**
1384*5113495bSYour Name  * wmi_unified_scan_chan_list_cmd_send() - WMI scan channel list function
1385*5113495bSYour Name  * @wmi_handle: handle to WMI.
1386*5113495bSYour Name  * @param: pointer to hold scan channel list parameter
1387*5113495bSYour Name  *
1388*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1389*5113495bSYour Name  */
1390*5113495bSYour Name QDF_STATUS
1391*5113495bSYour Name wmi_unified_scan_chan_list_cmd_send(wmi_unified_t wmi_handle,
1392*5113495bSYour Name 				    struct scan_chan_list_params *param);
1393*5113495bSYour Name 
1394*5113495bSYour Name 
1395*5113495bSYour Name /**
1396*5113495bSYour Name  * wmi_crash_inject() - inject fw crash
1397*5113495bSYour Name  * @wmi_handle: wmi handle
1398*5113495bSYour Name  * @param: pointer to crash inject parameter structure
1399*5113495bSYour Name  *
1400*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1401*5113495bSYour Name  */
1402*5113495bSYour Name QDF_STATUS wmi_crash_inject(wmi_unified_t wmi_handle,
1403*5113495bSYour Name 			    struct crash_inject *param);
1404*5113495bSYour Name 
1405*5113495bSYour Name /**
1406*5113495bSYour Name  * wmi_unified_pdev_utf_cmd_send() - send utf command to fw
1407*5113495bSYour Name  * @wmi_handle: wmi handle
1408*5113495bSYour Name  * @param: pointer to pdev_utf_params
1409*5113495bSYour Name  * @mac_id: mac id to have radio context
1410*5113495bSYour Name  *
1411*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1412*5113495bSYour Name  */
1413*5113495bSYour Name QDF_STATUS wmi_unified_pdev_utf_cmd_send(wmi_unified_t wmi_handle,
1414*5113495bSYour Name 					 struct pdev_utf_params *param,
1415*5113495bSYour Name 					 uint8_t mac_id);
1416*5113495bSYour Name 
1417*5113495bSYour Name /**
1418*5113495bSYour Name  * wmi_unified_dbglog_cmd_send() - set debug log level
1419*5113495bSYour Name  * @wmi_handle: handle to WMI.
1420*5113495bSYour Name  * @param: pointer to hold dbglog level parameter
1421*5113495bSYour Name  *
1422*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1423*5113495bSYour Name  */
1424*5113495bSYour Name QDF_STATUS wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle,
1425*5113495bSYour Name 				       struct dbglog_params *param);
1426*5113495bSYour Name 
1427*5113495bSYour Name /**
1428*5113495bSYour Name  *  wmi_mgmt_unified_cmd_send() - management cmd over wmi layer
1429*5113495bSYour Name  *  @wmi_handle: handle to WMI.
1430*5113495bSYour Name  *  @param: pointer to hold mgmt cmd parameter
1431*5113495bSYour Name  *
1432*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1433*5113495bSYour Name  */
1434*5113495bSYour Name QDF_STATUS wmi_mgmt_unified_cmd_send(wmi_unified_t wmi_handle,
1435*5113495bSYour Name 				     struct wmi_mgmt_params *param);
1436*5113495bSYour Name 
1437*5113495bSYour Name /**
1438*5113495bSYour Name  *  wmi_offchan_data_tx_cmd_send() - Send offchan data tx cmd over wmi layer
1439*5113495bSYour Name  *  @wmi_handle: handle to WMI.
1440*5113495bSYour Name  *  @param: pointer to hold offchan data cmd parameter
1441*5113495bSYour Name  *
1442*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1443*5113495bSYour Name  */
1444*5113495bSYour Name QDF_STATUS wmi_offchan_data_tx_cmd_send(
1445*5113495bSYour Name 		wmi_unified_t wmi_handle,
1446*5113495bSYour Name 		struct wmi_offchan_data_tx_params *param);
1447*5113495bSYour Name 
1448*5113495bSYour Name /**
1449*5113495bSYour Name  * wmi_unified_modem_power_state() - set modem power state to fw
1450*5113495bSYour Name  * @wmi_handle: wmi handle
1451*5113495bSYour Name  * @param_value: parameter value
1452*5113495bSYour Name  *
1453*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1454*5113495bSYour Name  */
1455*5113495bSYour Name QDF_STATUS wmi_unified_modem_power_state(wmi_unified_t wmi_handle,
1456*5113495bSYour Name 					 uint32_t param_value);
1457*5113495bSYour Name 
1458*5113495bSYour Name /**
1459*5113495bSYour Name  * wmi_unified_set_sta_ps_mode() - set sta powersave params in fw
1460*5113495bSYour Name  * @wmi_handle: wmi handle
1461*5113495bSYour Name  * @vdev_id: vdev id
1462*5113495bSYour Name  * @val: value
1463*5113495bSYour Name  *
1464*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
1465*5113495bSYour Name  */
1466*5113495bSYour Name QDF_STATUS wmi_unified_set_sta_ps_mode(wmi_unified_t wmi_handle,
1467*5113495bSYour Name 				       uint32_t vdev_id,
1468*5113495bSYour Name 				       uint8_t val);
1469*5113495bSYour Name 
1470*5113495bSYour Name /**
1471*5113495bSYour Name  * wmi_unified_set_sta_uapsd_auto_trig_cmd() - set uapsd auto trigger command
1472*5113495bSYour Name  * @wmi_handle: wmi handle
1473*5113495bSYour Name  * @param: uapsd cmd parameter structure
1474*5113495bSYour Name  *
1475*5113495bSYour Name  * This function sets the trigger
1476*5113495bSYour Name  * uapsd params such as service interval, delay interval
1477*5113495bSYour Name  * and suspend interval which will be used by the firmware
1478*5113495bSYour Name  * to send trigger frames periodically when there is no
1479*5113495bSYour Name  * traffic on the transmit side.
1480*5113495bSYour Name  *
1481*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
1482*5113495bSYour Name  */
1483*5113495bSYour Name QDF_STATUS
1484*5113495bSYour Name wmi_unified_set_sta_uapsd_auto_trig_cmd(wmi_unified_t wmi_handle,
1485*5113495bSYour Name 					struct sta_uapsd_trig_params *param);
1486*5113495bSYour Name 
1487*5113495bSYour Name /**
1488*5113495bSYour Name  * wmi_unified_get_temperature() - get pdev temperature req
1489*5113495bSYour Name  * @wmi_handle: wmi handle
1490*5113495bSYour Name  *
1491*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
1492*5113495bSYour Name  */
1493*5113495bSYour Name QDF_STATUS wmi_unified_get_temperature(wmi_unified_t wmi_handle);
1494*5113495bSYour Name 
1495*5113495bSYour Name /**
1496*5113495bSYour Name  * wmi_unified_set_smps_params() - set smps params
1497*5113495bSYour Name  * @wmi_handle: wmi handle
1498*5113495bSYour Name  * @vdev_id: vdev id
1499*5113495bSYour Name  * @value: value
1500*5113495bSYour Name  *
1501*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
1502*5113495bSYour Name  */
1503*5113495bSYour Name QDF_STATUS wmi_unified_set_smps_params(wmi_unified_t wmi_handle,
1504*5113495bSYour Name 				       uint8_t vdev_id,
1505*5113495bSYour Name 				       int value);
1506*5113495bSYour Name 
1507*5113495bSYour Name /**
1508*5113495bSYour Name  * wmi_unified_set_mimops() - set MIMO powersave
1509*5113495bSYour Name  * @wmi_handle: wmi handle
1510*5113495bSYour Name  * @vdev_id: vdev id
1511*5113495bSYour Name  * @value: value
1512*5113495bSYour Name  *
1513*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
1514*5113495bSYour Name  */
1515*5113495bSYour Name QDF_STATUS wmi_unified_set_mimops(wmi_unified_t wmi_handle,
1516*5113495bSYour Name 				  uint8_t vdev_id, int value);
1517*5113495bSYour Name 
1518*5113495bSYour Name /**
1519*5113495bSYour Name  * wmi_unified_lro_config_cmd() - process the LRO config command
1520*5113495bSYour Name  * @wmi_handle: Pointer to wmi handle
1521*5113495bSYour Name  * @wmi_lro_cmd: Pointer to LRO configuration parameters
1522*5113495bSYour Name  *
1523*5113495bSYour Name  * This function sends down the LRO configuration parameters to
1524*5113495bSYour Name  * the firmware to enable LRO, sets the TCP flags and sets the
1525*5113495bSYour Name  * seed values for the toeplitz hash generation
1526*5113495bSYour Name  *
1527*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1528*5113495bSYour Name  */
1529*5113495bSYour Name QDF_STATUS
1530*5113495bSYour Name wmi_unified_lro_config_cmd(wmi_unified_t wmi_handle,
1531*5113495bSYour Name 			   struct wmi_lro_config_cmd_t *wmi_lro_cmd);
1532*5113495bSYour Name 
1533*5113495bSYour Name /**
1534*5113495bSYour Name  * wmi_unified_set_thermal_mgmt_cmd() - set thermal mgmt command to fw
1535*5113495bSYour Name  * @wmi_handle: Pointer to wmi handle
1536*5113495bSYour Name  * @thermal_info: Thermal command information
1537*5113495bSYour Name  *
1538*5113495bSYour Name  * This function sends the thermal management command
1539*5113495bSYour Name  * to the firmware
1540*5113495bSYour Name  *
1541*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1542*5113495bSYour Name  */
1543*5113495bSYour Name QDF_STATUS
1544*5113495bSYour Name wmi_unified_set_thermal_mgmt_cmd(wmi_unified_t wmi_handle,
1545*5113495bSYour Name 				 struct thermal_cmd_params *thermal_info);
1546*5113495bSYour Name 
1547*5113495bSYour Name /**
1548*5113495bSYour Name  * wmi_unified_peer_rate_report_cmd() - process the peer rate report command
1549*5113495bSYour Name  * @wmi_handle: Pointer to wmi handle
1550*5113495bSYour Name  * @rate_report_params: Pointer to peer rate report parameters
1551*5113495bSYour Name  *
1552*5113495bSYour Name  *
1553*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success otherwise failure
1554*5113495bSYour Name  */
1555*5113495bSYour Name QDF_STATUS
1556*5113495bSYour Name wmi_unified_peer_rate_report_cmd(
1557*5113495bSYour Name 		wmi_unified_t wmi_handle,
1558*5113495bSYour Name 		struct wmi_peer_rate_report_params *rate_report_params);
1559*5113495bSYour Name 
1560*5113495bSYour Name /**
1561*5113495bSYour Name  * wmi_unified_process_update_edca_param() - update EDCA params
1562*5113495bSYour Name  * @wmi_handle: wmi handle
1563*5113495bSYour Name  * @vdev_id: vdev id.
1564*5113495bSYour Name  * @mu_edca_param: mu_edca_param.
1565*5113495bSYour Name  * @wmm_vparams: edca parameters
1566*5113495bSYour Name  *
1567*5113495bSYour Name  * This function updates EDCA parameters to the target
1568*5113495bSYour Name  *
1569*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1570*5113495bSYour Name  */
1571*5113495bSYour Name QDF_STATUS
1572*5113495bSYour Name wmi_unified_process_update_edca_param(
1573*5113495bSYour Name 		wmi_unified_t wmi_handle,
1574*5113495bSYour Name 		uint8_t vdev_id,
1575*5113495bSYour Name 		bool mu_edca_param,
1576*5113495bSYour Name 		struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
1577*5113495bSYour Name 
1578*5113495bSYour Name /**
1579*5113495bSYour Name  * wmi_unified_probe_rsp_tmpl_send_cmd() - send probe response template to fw
1580*5113495bSYour Name  * @wmi_handle: wmi handle
1581*5113495bSYour Name  * @vdev_id: vdev id
1582*5113495bSYour Name  * @probe_rsp_info: probe response info
1583*5113495bSYour Name  *
1584*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1585*5113495bSYour Name  */
1586*5113495bSYour Name QDF_STATUS
1587*5113495bSYour Name wmi_unified_probe_rsp_tmpl_send_cmd(
1588*5113495bSYour Name 		wmi_unified_t wmi_handle,
1589*5113495bSYour Name 		uint8_t vdev_id,
1590*5113495bSYour Name 		struct wmi_probe_resp_params *probe_rsp_info);
1591*5113495bSYour Name 
1592*5113495bSYour Name /**
1593*5113495bSYour Name  * wmi_unified_setup_install_key_cmd - send key to install to fw
1594*5113495bSYour Name  * @wmi_handle: wmi handle
1595*5113495bSYour Name  * @key_params: key parameters
1596*5113495bSYour Name  *
1597*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1598*5113495bSYour Name  */
1599*5113495bSYour Name QDF_STATUS
1600*5113495bSYour Name wmi_unified_setup_install_key_cmd(wmi_unified_t wmi_handle,
1601*5113495bSYour Name 				  struct set_key_params *key_params);
1602*5113495bSYour Name 
1603*5113495bSYour Name /**
1604*5113495bSYour Name  * wmi_unified_get_pn_send_cmd() - send command to fw get PN for peer
1605*5113495bSYour Name  * @wmi_hdl: wmi handle
1606*5113495bSYour Name  * @pn_params: PN parameters
1607*5113495bSYour Name  *
1608*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1609*5113495bSYour Name  */
1610*5113495bSYour Name QDF_STATUS
1611*5113495bSYour Name wmi_unified_get_pn_send_cmd(wmi_unified_t wmi_hdl,
1612*5113495bSYour Name 			    struct peer_request_pn_param *pn_params);
1613*5113495bSYour Name 
1614*5113495bSYour Name /**
1615*5113495bSYour Name  * wmi_unified_get_rxpn_send_cmd() - send command to fw get Rx PN for peer
1616*5113495bSYour Name  * @wmi_hdl: wmi handle
1617*5113495bSYour Name  * @pn_params: PN parameters
1618*5113495bSYour Name  *
1619*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1620*5113495bSYour Name  */
1621*5113495bSYour Name QDF_STATUS
1622*5113495bSYour Name wmi_unified_get_rxpn_send_cmd(wmi_unified_t wmi_hdl,
1623*5113495bSYour Name 			      struct peer_request_rxpn_param *pn_params);
1624*5113495bSYour Name 
1625*5113495bSYour Name /**
1626*5113495bSYour Name  * wmi_unified_p2p_go_set_beacon_ie_cmd() - set beacon IE for p2p go
1627*5113495bSYour Name  * @wmi_hdl: wmi handle
1628*5113495bSYour Name  * @vdev_id: vdev id
1629*5113495bSYour Name  * @p2p_ie: p2p IE
1630*5113495bSYour Name  *
1631*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1632*5113495bSYour Name  */
1633*5113495bSYour Name QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(wmi_unified_t wmi_hdl,
1634*5113495bSYour Name 						uint32_t vdev_id,
1635*5113495bSYour Name 						uint8_t *p2p_ie);
1636*5113495bSYour Name 
1637*5113495bSYour Name /**
1638*5113495bSYour Name  * wmi_unified_scan_probe_setoui_cmd() - set scan probe OUI
1639*5113495bSYour Name  * @wmi_handle: wmi handle
1640*5113495bSYour Name  * @psetoui: OUI parameters
1641*5113495bSYour Name  *
1642*5113495bSYour Name  * set scan probe OUI parameters in firmware
1643*5113495bSYour Name  *
1644*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1645*5113495bSYour Name  */
1646*5113495bSYour Name QDF_STATUS wmi_unified_scan_probe_setoui_cmd(wmi_unified_t wmi_handle,
1647*5113495bSYour Name 					     struct scan_mac_oui *psetoui);
1648*5113495bSYour Name 
1649*5113495bSYour Name #ifdef IPA_OFFLOAD
1650*5113495bSYour Name /**
1651*5113495bSYour Name  * wmi_unified_ipa_offload_control_cmd() - ipa offload control parameter
1652*5113495bSYour Name  * @wmi_handle: wmi handle
1653*5113495bSYour Name  * @ipa_offload: ipa offload control parameter
1654*5113495bSYour Name  *
1655*5113495bSYour Name  * Returns: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures,
1656*5113495bSYour Name  *          error number otherwise
1657*5113495bSYour Name  */
1658*5113495bSYour Name QDF_STATUS
1659*5113495bSYour Name wmi_unified_ipa_offload_control_cmd(
1660*5113495bSYour Name 		wmi_unified_t wmi_handle,
1661*5113495bSYour Name 		struct ipa_uc_offload_control_params *ipa_offload);
1662*5113495bSYour Name #endif
1663*5113495bSYour Name 
1664*5113495bSYour Name /**
1665*5113495bSYour Name  * wmi_unified_pno_stop_cmd() - PNO stop request
1666*5113495bSYour Name  * @wmi_handle: wmi handle
1667*5113495bSYour Name  * @vdev_id: vdev id
1668*5113495bSYour Name  *
1669*5113495bSYour Name  * This function request FW to stop ongoing PNO operation.
1670*5113495bSYour Name  *
1671*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1672*5113495bSYour Name  */
1673*5113495bSYour Name QDF_STATUS wmi_unified_pno_stop_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id);
1674*5113495bSYour Name 
1675*5113495bSYour Name /**
1676*5113495bSYour Name  * wmi_unified_obss_disable_cmd() - disable obss scan request
1677*5113495bSYour Name  * @wmi_handle: wmi handle
1678*5113495bSYour Name  * @vdev_id: vdev id
1679*5113495bSYour Name  *
1680*5113495bSYour Name  * This function request FW to disable obss scan.
1681*5113495bSYour Name  *
1682*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and others for failure
1683*5113495bSYour Name  */
1684*5113495bSYour Name QDF_STATUS wmi_unified_obss_disable_cmd(wmi_unified_t wmi_handle,
1685*5113495bSYour Name 					uint8_t vdev_id);
1686*5113495bSYour Name 
1687*5113495bSYour Name #ifdef FEATURE_WLAN_SCAN_PNO
1688*5113495bSYour Name /**
1689*5113495bSYour Name  * wmi_unified_pno_start_cmd() - PNO start request
1690*5113495bSYour Name  * @wmi_handle: wmi handle
1691*5113495bSYour Name  * @pno: PNO request
1692*5113495bSYour Name  *
1693*5113495bSYour Name  * This function request FW to start PNO request.
1694*5113495bSYour Name  * Request: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1695*5113495bSYour Name  */
1696*5113495bSYour Name QDF_STATUS wmi_unified_pno_start_cmd(wmi_unified_t wmi_handle,
1697*5113495bSYour Name 				     struct pno_scan_req_params *pno);
1698*5113495bSYour Name #endif
1699*5113495bSYour Name 
1700*5113495bSYour Name /**
1701*5113495bSYour Name  * wmi_unified_nlo_mawc_cmd() - NLO MAWC cmd configuration
1702*5113495bSYour Name  * @wmi_handle: wmi handle
1703*5113495bSYour Name  * @params: Configuration parameters
1704*5113495bSYour Name  *
1705*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1706*5113495bSYour Name  */
1707*5113495bSYour Name QDF_STATUS wmi_unified_nlo_mawc_cmd(wmi_unified_t wmi_handle,
1708*5113495bSYour Name 				    struct nlo_mawc_params *params);
1709*5113495bSYour Name 
1710*5113495bSYour Name #ifdef WLAN_FEATURE_LINK_LAYER_STATS
1711*5113495bSYour Name /**
1712*5113495bSYour Name  * wmi_unified_process_ll_stats_clear_cmd() - clear link layer stats
1713*5113495bSYour Name  * @wmi_handle: wmi handle
1714*5113495bSYour Name  * @clear_req: ll stats clear request command params
1715*5113495bSYour Name  *
1716*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1717*5113495bSYour Name  */
1718*5113495bSYour Name QDF_STATUS wmi_unified_process_ll_stats_clear_cmd(wmi_unified_t wmi_handle,
1719*5113495bSYour Name 				 const struct ll_stats_clear_params *clear_req);
1720*5113495bSYour Name 
1721*5113495bSYour Name /**
1722*5113495bSYour Name  * wmi_unified_process_ll_stats_set_cmd() - link layer stats set request
1723*5113495bSYour Name  * @wmi_handle: wmi handle
1724*5113495bSYour Name  * @set_req: ll stats set request command params
1725*5113495bSYour Name  *
1726*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1727*5113495bSYour Name  */
1728*5113495bSYour Name QDF_STATUS wmi_unified_process_ll_stats_set_cmd(wmi_unified_t wmi_handle,
1729*5113495bSYour Name 				 const struct ll_stats_set_params *set_req);
1730*5113495bSYour Name 
1731*5113495bSYour Name /**
1732*5113495bSYour Name  * wmi_unified_process_ll_stats_get_cmd() - link layer stats get request
1733*5113495bSYour Name  * @wmi_handle: wmi handle
1734*5113495bSYour Name  * @get_req: ll stats get request command params
1735*5113495bSYour Name  *
1736*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1737*5113495bSYour Name  */
1738*5113495bSYour Name QDF_STATUS wmi_unified_process_ll_stats_get_cmd(wmi_unified_t wmi_handle,
1739*5113495bSYour Name 				 const struct ll_stats_get_params *get_req);
1740*5113495bSYour Name 
1741*5113495bSYour Name #ifdef FEATURE_CLUB_LL_STATS_AND_GET_STATION
1742*5113495bSYour Name /**
1743*5113495bSYour Name  * wmi_process_unified_ll_stats_get_sta_cmd() - unified link layer stats and
1744*5113495bSYour Name  *                                              get station request
1745*5113495bSYour Name  * @wmi_handle: wmi handle
1746*5113495bSYour Name  * @get_req: unified ll stats and get station request command params
1747*5113495bSYour Name  *
1748*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1749*5113495bSYour Name  */
1750*5113495bSYour Name QDF_STATUS wmi_process_unified_ll_stats_get_sta_cmd(
1751*5113495bSYour Name 				wmi_unified_t wmi_handle,
1752*5113495bSYour Name 				const struct ll_stats_get_params *get_req);
1753*5113495bSYour Name #endif /* FEATURE_CLUB_LL_STATS_AND_GET_STATION */
1754*5113495bSYour Name #endif /* WLAN_FEATURE_LINK_LAYER_STATS */
1755*5113495bSYour Name 
1756*5113495bSYour Name /**
1757*5113495bSYour Name  * wmi_unified_congestion_request_cmd() - send request to fw to get CCA
1758*5113495bSYour Name  * @wmi_handle: wma handle
1759*5113495bSYour Name  * @vdev_id: vdev id
1760*5113495bSYour Name  *
1761*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1762*5113495bSYour Name  */
1763*5113495bSYour Name QDF_STATUS wmi_unified_congestion_request_cmd(wmi_unified_t wmi_handle,
1764*5113495bSYour Name 					      uint8_t vdev_id);
1765*5113495bSYour Name 
1766*5113495bSYour Name /**
1767*5113495bSYour Name  * wmi_unified_snr_request_cmd() - send request to fw to get RSSI stats
1768*5113495bSYour Name  * @wmi_handle: wmi handle
1769*5113495bSYour Name  *
1770*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1771*5113495bSYour Name  */
1772*5113495bSYour Name QDF_STATUS wmi_unified_snr_request_cmd(wmi_unified_t wmi_handle);
1773*5113495bSYour Name 
1774*5113495bSYour Name /**
1775*5113495bSYour Name  * wmi_unified_snr_cmd() - get RSSI from fw
1776*5113495bSYour Name  * @wmi_handle: wmi handle
1777*5113495bSYour Name  * @vdev_id: vdev id
1778*5113495bSYour Name  *
1779*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1780*5113495bSYour Name  */
1781*5113495bSYour Name QDF_STATUS wmi_unified_snr_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id);
1782*5113495bSYour Name 
1783*5113495bSYour Name /**
1784*5113495bSYour Name  * wmi_unified_link_status_req_cmd() - process link status request from UMAC
1785*5113495bSYour Name  * @wmi_handle: wmi handle
1786*5113495bSYour Name  * @params: get link status params
1787*5113495bSYour Name  *
1788*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1789*5113495bSYour Name  */
1790*5113495bSYour Name QDF_STATUS wmi_unified_link_status_req_cmd(wmi_unified_t wmi_handle,
1791*5113495bSYour Name 					   struct link_status_params *params);
1792*5113495bSYour Name 
1793*5113495bSYour Name #ifdef WLAN_SUPPORT_GREEN_AP
1794*5113495bSYour Name /**
1795*5113495bSYour Name  * wmi_unified_egap_conf_params_cmd() - send wmi cmd of egap config params
1796*5113495bSYour Name  * @wmi_handle: wmi handler
1797*5113495bSYour Name  * @egap_params: pointer to egap_params
1798*5113495bSYour Name  *
1799*5113495bSYour Name  * Return:	 0 for success, otherwise appropriate error code
1800*5113495bSYour Name  */
1801*5113495bSYour Name QDF_STATUS
1802*5113495bSYour Name wmi_unified_egap_conf_params_cmd(
1803*5113495bSYour Name 		wmi_unified_t wmi_handle,
1804*5113495bSYour Name 		struct wlan_green_ap_egap_params *egap_params);
1805*5113495bSYour Name #endif
1806*5113495bSYour Name 
1807*5113495bSYour Name /**
1808*5113495bSYour Name  * wmi_unified_csa_offload_enable() - send CSA offload enable command
1809*5113495bSYour Name  * @wmi_handle: wmi handle
1810*5113495bSYour Name  * @vdev_id: vdev id
1811*5113495bSYour Name  *
1812*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1813*5113495bSYour Name  */
1814*5113495bSYour Name QDF_STATUS wmi_unified_csa_offload_enable(wmi_unified_t wmi_handle,
1815*5113495bSYour Name 					  uint8_t vdev_id);
1816*5113495bSYour Name 
1817*5113495bSYour Name #ifdef WLAN_FEATURE_CIF_CFR
1818*5113495bSYour Name /**
1819*5113495bSYour Name  * wmi_unified_oem_dma_ring_cfg() - configure OEM DMA rings
1820*5113495bSYour Name  * @wmi_handle: wmi handle
1821*5113495bSYour Name  * @cfg: dma cfg req
1822*5113495bSYour Name  *
1823*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1824*5113495bSYour Name  */
1825*5113495bSYour Name QDF_STATUS
1826*5113495bSYour Name wmi_unified_oem_dma_ring_cfg(wmi_unified_t wmi_handle,
1827*5113495bSYour Name 			     wmi_oem_dma_ring_cfg_req_fixed_param *cfg);
1828*5113495bSYour Name #endif
1829*5113495bSYour Name 
1830*5113495bSYour Name /**
1831*5113495bSYour Name  * wmi_unified_start_oem_data_cmd() - start oem data request to target
1832*5113495bSYour Name  * @wmi_handle: wmi handle
1833*5113495bSYour Name  * @data_len: the length of @data
1834*5113495bSYour Name  * @data: the pointer to data buf
1835*5113495bSYour Name  *
1836*5113495bSYour Name  * This is legacy api for oem data request, using wmi command
1837*5113495bSYour Name  * WMI_OEM_REQ_CMDID.
1838*5113495bSYour Name  *
1839*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1840*5113495bSYour Name  */
1841*5113495bSYour Name QDF_STATUS wmi_unified_start_oem_data_cmd(wmi_unified_t wmi_handle,
1842*5113495bSYour Name 					  uint32_t data_len,
1843*5113495bSYour Name 					  uint8_t *data);
1844*5113495bSYour Name 
1845*5113495bSYour Name #ifdef FEATURE_OEM_DATA
1846*5113495bSYour Name /**
1847*5113495bSYour Name  * wmi_unified_start_oemv2_data_cmd() - start oem data cmd to target
1848*5113495bSYour Name  * @wmi_handle: wmi handle
1849*5113495bSYour Name  * @params: oem data params
1850*5113495bSYour Name  *
1851*5113495bSYour Name  * This is common api for oem data, using wmi command WMI_OEM_DATA_CMDID.
1852*5113495bSYour Name  *
1853*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1854*5113495bSYour Name  */
1855*5113495bSYour Name QDF_STATUS wmi_unified_start_oemv2_data_cmd(wmi_unified_t wmi_handle,
1856*5113495bSYour Name 					    struct oem_data *params);
1857*5113495bSYour Name #endif
1858*5113495bSYour Name 
1859*5113495bSYour Name /**
1860*5113495bSYour Name  * wmi_unified_dfs_phyerr_filter_offload_en_cmd() - enable dfs phyerr filter
1861*5113495bSYour Name  * @wmi_handle: wmi handle
1862*5113495bSYour Name  * @dfs_phyerr_filter_offload: is dfs phyerr filter offload
1863*5113495bSYour Name  *
1864*5113495bSYour Name  * Send WMI_DFS_PHYERR_FILTER_ENA_CMDID or
1865*5113495bSYour Name  * WMI_DFS_PHYERR_FILTER_DIS_CMDID command
1866*5113495bSYour Name  * to firmware based on phyerr filtering
1867*5113495bSYour Name  * offload status.
1868*5113495bSYour Name  *
1869*5113495bSYour Name  * Return: 1 success, 0 failure
1870*5113495bSYour Name  */
1871*5113495bSYour Name QDF_STATUS
1872*5113495bSYour Name wmi_unified_dfs_phyerr_filter_offload_en_cmd(wmi_unified_t wmi_handle,
1873*5113495bSYour Name 					     bool dfs_phyerr_filter_offload);
1874*5113495bSYour Name 
1875*5113495bSYour Name #if !defined(REMOVE_PKT_LOG) && defined(FEATURE_PKTLOG)
1876*5113495bSYour Name /**
1877*5113495bSYour Name  * wmi_unified_pktlog_wmi_send_cmd() - send pktlog event command to target
1878*5113495bSYour Name  * @wmi_handle: wmi handle
1879*5113495bSYour Name  * @pktlog_event: pktlog event
1880*5113495bSYour Name  * @cmd_id: pktlog cmd id
1881*5113495bSYour Name  * @user_triggered: user triggered input for PKTLOG enable mode
1882*5113495bSYour Name  *
1883*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1884*5113495bSYour Name  */
1885*5113495bSYour Name QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(wmi_unified_t wmi_handle,
1886*5113495bSYour Name 					   WMI_PKTLOG_EVENT pktlog_event,
1887*5113495bSYour Name 					   uint32_t cmd_id,
1888*5113495bSYour Name 					   uint8_t user_triggered);
1889*5113495bSYour Name #endif
1890*5113495bSYour Name 
1891*5113495bSYour Name /**
1892*5113495bSYour Name  * wmi_unified_stats_ext_req_cmd() - request ext stats from fw
1893*5113495bSYour Name  * @wmi_handle: wmi handle
1894*5113495bSYour Name  * @preq: stats ext params
1895*5113495bSYour Name  *
1896*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1897*5113495bSYour Name  */
1898*5113495bSYour Name QDF_STATUS wmi_unified_stats_ext_req_cmd(wmi_unified_t wmi_handle,
1899*5113495bSYour Name 					 struct stats_ext_params *preq);
1900*5113495bSYour Name 
1901*5113495bSYour Name /**
1902*5113495bSYour Name  * wmi_unified_process_dhcpserver_offload_cmd() - enable DHCP server offload
1903*5113495bSYour Name  * @wmi_handle: wmi handle
1904*5113495bSYour Name  * @params: DHCP server offload info
1905*5113495bSYour Name  *
1906*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1907*5113495bSYour Name  */
1908*5113495bSYour Name QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(
1909*5113495bSYour Name 		wmi_unified_t wmi_handle,
1910*5113495bSYour Name 		struct dhcp_offload_info_params *params);
1911*5113495bSYour Name 
1912*5113495bSYour Name /**
1913*5113495bSYour Name  * wmi_unified_send_regdomain_info_to_fw_cmd() - send regdomain info to fw
1914*5113495bSYour Name  * @wmi_handle: wmi handle
1915*5113495bSYour Name  * @reg_dmn: reg domain
1916*5113495bSYour Name  * @regdmn2G: 2G reg domain
1917*5113495bSYour Name  * @regdmn5G: 5G reg domain
1918*5113495bSYour Name  * @ctl2G: 2G test limit
1919*5113495bSYour Name  * @ctl5G: 5G test limit
1920*5113495bSYour Name  *
1921*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1922*5113495bSYour Name  */
1923*5113495bSYour Name QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(wmi_unified_t wmi_handle,
1924*5113495bSYour Name 						     uint32_t reg_dmn,
1925*5113495bSYour Name 						     uint16_t regdmn2G,
1926*5113495bSYour Name 						     uint16_t regdmn5G,
1927*5113495bSYour Name 						     uint8_t ctl2G,
1928*5113495bSYour Name 						     uint8_t ctl5G);
1929*5113495bSYour Name 
1930*5113495bSYour Name QDF_STATUS
1931*5113495bSYour Name wmi_unified_process_fw_mem_dump_cmd(wmi_unified_t wmi_hdl,
1932*5113495bSYour Name 				    struct fw_dump_req_param *mem_dump_req);
1933*5113495bSYour Name 
1934*5113495bSYour Name /**
1935*5113495bSYour Name  * wmi_unified_cfg_action_frm_tb_ppdu_cmd()-send action frame TB PPDU cfg to FW
1936*5113495bSYour Name  * @wmi_handle: Pointer to WMi handle
1937*5113495bSYour Name  * @cfg_info: Pointer to cfg msg
1938*5113495bSYour Name  *
1939*5113495bSYour Name  * This function sends action frame TB PPDU cfg to firmware
1940*5113495bSYour Name  *
1941*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1942*5113495bSYour Name  *
1943*5113495bSYour Name  */
1944*5113495bSYour Name QDF_STATUS
1945*5113495bSYour Name wmi_unified_cfg_action_frm_tb_ppdu_cmd(
1946*5113495bSYour Name 		wmi_unified_t wmi_handle,
1947*5113495bSYour Name 		struct cfg_action_frm_tb_ppdu_param *cfg_info);
1948*5113495bSYour Name 
1949*5113495bSYour Name /**
1950*5113495bSYour Name  * wmi_unified_save_fw_version_cmd() - save fw version
1951*5113495bSYour Name  * @wmi_handle: pointer to wmi handle
1952*5113495bSYour Name  * @evt_buf: Event buffer
1953*5113495bSYour Name  *
1954*5113495bSYour Name  *
1955*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1956*5113495bSYour Name  *
1957*5113495bSYour Name  */
1958*5113495bSYour Name QDF_STATUS wmi_unified_save_fw_version_cmd(wmi_unified_t wmi_handle,
1959*5113495bSYour Name 					   void *evt_buf);
1960*5113495bSYour Name 
1961*5113495bSYour Name /**
1962*5113495bSYour Name  * wmi_unified_log_supported_evt_cmd() - Enable/Disable FW diag/log events
1963*5113495bSYour Name  * @wmi_handle: wmi handle
1964*5113495bSYour Name  * @event: Event received from FW
1965*5113495bSYour Name  * @len: Length of the event
1966*5113495bSYour Name  *
1967*5113495bSYour Name  * Enables the low frequency events and disables the high frequency
1968*5113495bSYour Name  * events. Bit 17 indicates if the event if low/high frequency.
1969*5113495bSYour Name  * 1 - high frequency, 0 - low frequency
1970*5113495bSYour Name  *
1971*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures
1972*5113495bSYour Name  */
1973*5113495bSYour Name QDF_STATUS wmi_unified_log_supported_evt_cmd(wmi_unified_t wmi_handle,
1974*5113495bSYour Name 					     uint8_t *event,
1975*5113495bSYour Name 					     uint32_t len);
1976*5113495bSYour Name 
1977*5113495bSYour Name /**
1978*5113495bSYour Name  * wmi_unified_enable_specific_fw_logs_cmd() - Start/Stop logging of diag log id
1979*5113495bSYour Name  * @wmi_handle: wmi handle
1980*5113495bSYour Name  * @start_log: Start logging related parameters
1981*5113495bSYour Name  *
1982*5113495bSYour Name  * Send the command to the FW based on which specific logging of diag
1983*5113495bSYour Name  * event/log id can be started/stopped
1984*5113495bSYour Name  *
1985*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1986*5113495bSYour Name  */
1987*5113495bSYour Name QDF_STATUS
1988*5113495bSYour Name wmi_unified_enable_specific_fw_logs_cmd(wmi_unified_t wmi_handle,
1989*5113495bSYour Name 					struct wmi_wifi_start_log *start_log);
1990*5113495bSYour Name 
1991*5113495bSYour Name /**
1992*5113495bSYour Name  * wmi_unified_flush_logs_to_fw_cmd() - Send log flush command to FW
1993*5113495bSYour Name  * @wmi_handle: WMI handle
1994*5113495bSYour Name  *
1995*5113495bSYour Name  * This function is used to send the flush command to the FW,
1996*5113495bSYour Name  * that will flush the fw logs that are residue in the FW
1997*5113495bSYour Name  *
1998*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1999*5113495bSYour Name  */
2000*5113495bSYour Name QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(wmi_unified_t wmi_handle);
2001*5113495bSYour Name 
2002*5113495bSYour Name /**
2003*5113495bSYour Name  * wmi_unified_unit_test_cmd() - send unit test command to fw.
2004*5113495bSYour Name  * @wmi_handle: wmi handle
2005*5113495bSYour Name  * @wmi_utest: unit test command
2006*5113495bSYour Name  *
2007*5113495bSYour Name  * This function send unit test command to fw.
2008*5113495bSYour Name  *
2009*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2010*5113495bSYour Name  */
2011*5113495bSYour Name QDF_STATUS wmi_unified_unit_test_cmd(wmi_unified_t wmi_handle,
2012*5113495bSYour Name 				     struct wmi_unit_test_cmd *wmi_utest);
2013*5113495bSYour Name 
2014*5113495bSYour Name #ifdef FEATURE_WLAN_APF
2015*5113495bSYour Name /**
2016*5113495bSYour Name  * wmi_unified_set_active_apf_mode_cmd() - config active APF mode in FW
2017*5113495bSYour Name  * @wmi: the WMI handle
2018*5113495bSYour Name  * @vdev_id: the Id of the vdev to apply the configuration to
2019*5113495bSYour Name  * @ucast_mode: the active APF mode to configure for unicast packets
2020*5113495bSYour Name  * @mcast_bcast_mode: the active APF mode to configure for multicast/broadcast
2021*5113495bSYour Name  *	packets
2022*5113495bSYour Name  */
2023*5113495bSYour Name QDF_STATUS
2024*5113495bSYour Name wmi_unified_set_active_apf_mode_cmd(wmi_unified_t wmi, uint8_t vdev_id,
2025*5113495bSYour Name 				    enum wmi_host_active_apf_mode ucast_mode,
2026*5113495bSYour Name 				    enum wmi_host_active_apf_mode
2027*5113495bSYour Name 							      mcast_bcast_mode);
2028*5113495bSYour Name 
2029*5113495bSYour Name /**
2030*5113495bSYour Name  * wmi_unified_send_apf_enable_cmd() - send apf enable/disable cmd
2031*5113495bSYour Name  * @wmi: wmi handle
2032*5113495bSYour Name  * @vdev_id: VDEV id
2033*5113495bSYour Name  * @enable: true: enable, false: disable
2034*5113495bSYour Name  *
2035*5113495bSYour Name  * This function passes the apf enable command to fw
2036*5113495bSYour Name  *
2037*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2038*5113495bSYour Name  */
2039*5113495bSYour Name QDF_STATUS wmi_unified_send_apf_enable_cmd(wmi_unified_t wmi,
2040*5113495bSYour Name 					   uint32_t vdev_id, bool enable);
2041*5113495bSYour Name 
2042*5113495bSYour Name /**
2043*5113495bSYour Name  * wmi_unified_send_apf_write_work_memory_cmd() - send cmd to write into the APF
2044*5113495bSYour Name  *	work memory.
2045*5113495bSYour Name  * @wmi: wmi handle
2046*5113495bSYour Name  * @write_params: parameters and buffer pointer for the write
2047*5113495bSYour Name  *
2048*5113495bSYour Name  * This function passes the write apf work mem command to fw
2049*5113495bSYour Name  *
2050*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2051*5113495bSYour Name  */
2052*5113495bSYour Name QDF_STATUS wmi_unified_send_apf_write_work_memory_cmd(wmi_unified_t wmi,
2053*5113495bSYour Name 			struct wmi_apf_write_memory_params *write_params);
2054*5113495bSYour Name 
2055*5113495bSYour Name /**
2056*5113495bSYour Name  * wmi_unified_send_apf_read_work_memory_cmd() - send cmd to read part of APF
2057*5113495bSYour Name  *	work memory
2058*5113495bSYour Name  * @wmi: wmi handle
2059*5113495bSYour Name  * @read_params: contains relative address and length to read from
2060*5113495bSYour Name  *
2061*5113495bSYour Name  * This function passes the read apf work mem command to fw
2062*5113495bSYour Name  *
2063*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2064*5113495bSYour Name  */
2065*5113495bSYour Name QDF_STATUS wmi_unified_send_apf_read_work_memory_cmd(wmi_unified_t wmi,
2066*5113495bSYour Name 				struct wmi_apf_read_memory_params *read_params);
2067*5113495bSYour Name 
2068*5113495bSYour Name /**
2069*5113495bSYour Name  * wmi_extract_apf_read_memory_resp_event() - extract read mem resp event
2070*5113495bSYour Name  * @wmi: wmi handle
2071*5113495bSYour Name  * @evt_buf: Pointer to the event buffer
2072*5113495bSYour Name  * @read_mem_evt: pointer to memory to extract event parameters into
2073*5113495bSYour Name  *
2074*5113495bSYour Name  * This function extracts read mem response event into the given structure ptr
2075*5113495bSYour Name  *
2076*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2077*5113495bSYour Name  */
2078*5113495bSYour Name QDF_STATUS
2079*5113495bSYour Name wmi_extract_apf_read_memory_resp_event(wmi_unified_t wmi, void *evt_buf,
2080*5113495bSYour Name 				struct wmi_apf_read_memory_resp_event_params
2081*5113495bSYour Name 								*read_mem_evt);
2082*5113495bSYour Name #endif /* FEATURE_WLAN_APF */
2083*5113495bSYour Name 
2084*5113495bSYour Name /**
2085*5113495bSYour Name  * wmi_send_get_user_position_cmd() - send get user position command to fw
2086*5113495bSYour Name  * @wmi_handle: wmi handle
2087*5113495bSYour Name  * @value: user pos value
2088*5113495bSYour Name  *
2089*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2090*5113495bSYour Name  */
2091*5113495bSYour Name QDF_STATUS
2092*5113495bSYour Name wmi_send_get_user_position_cmd(wmi_unified_t wmi_handle, uint32_t value);
2093*5113495bSYour Name 
2094*5113495bSYour Name /**
2095*5113495bSYour Name  * wmi_send_get_peer_mumimo_tx_count_cmd() - send get mumio tx count
2096*5113495bSYour Name  *                                           command to fw
2097*5113495bSYour Name  * @wmi_handle: wmi handle
2098*5113495bSYour Name  * @value: user pos value
2099*5113495bSYour Name  *
2100*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2101*5113495bSYour Name  */
2102*5113495bSYour Name QDF_STATUS
2103*5113495bSYour Name wmi_send_get_peer_mumimo_tx_count_cmd(wmi_unified_t wmi_handle,
2104*5113495bSYour Name 				      uint32_t value);
2105*5113495bSYour Name 
2106*5113495bSYour Name /**
2107*5113495bSYour Name  * wmi_send_reset_peer_mumimo_tx_count_cmd() - send reset peer mumimo
2108*5113495bSYour Name  *                                             tx count to fw
2109*5113495bSYour Name  * @wmi_handle: wmi handle
2110*5113495bSYour Name  * @value: reset tx count value
2111*5113495bSYour Name  *
2112*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2113*5113495bSYour Name  */
2114*5113495bSYour Name QDF_STATUS
2115*5113495bSYour Name wmi_send_reset_peer_mumimo_tx_count_cmd(wmi_unified_t wmi_handle,
2116*5113495bSYour Name 					uint32_t value);
2117*5113495bSYour Name 
2118*5113495bSYour Name /**
2119*5113495bSYour Name  * wmi_unified_send_btcoex_wlan_priority_cmd() - send btcoex priority commands
2120*5113495bSYour Name  * @wmi_handle: wmi handle
2121*5113495bSYour Name  * @param: wmi btcoex cfg params
2122*5113495bSYour Name  *
2123*5113495bSYour Name  * Send WMI_BTCOEX_CFG_CMDID parameters to fw.
2124*5113495bSYour Name  *
2125*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2126*5113495bSYour Name  */
2127*5113495bSYour Name QDF_STATUS
2128*5113495bSYour Name wmi_unified_send_btcoex_wlan_priority_cmd(wmi_unified_t wmi_handle,
2129*5113495bSYour Name 					  struct btcoex_cfg_params *param);
2130*5113495bSYour Name 
2131*5113495bSYour Name /**
2132*5113495bSYour Name  *  wmi_unified_send_btcoex_duty_cycle_cmd() - send btcoex duty cycle commands
2133*5113495bSYour Name  * @wmi_handle: wmi handle
2134*5113495bSYour Name  * @param: wmi btcoex cfg params
2135*5113495bSYour Name  *
2136*5113495bSYour Name  * Send WMI_BTCOEX_CFG_CMDID parameters to fw.
2137*5113495bSYour Name  *
2138*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2139*5113495bSYour Name  */
2140*5113495bSYour Name QDF_STATUS
2141*5113495bSYour Name wmi_unified_send_btcoex_duty_cycle_cmd(wmi_unified_t wmi_handle,
2142*5113495bSYour Name 				       struct btcoex_cfg_params *param);
2143*5113495bSYour Name /**
2144*5113495bSYour Name  *  wmi_unified_send_egid_info_cmd() - send ESL egid_info commands
2145*5113495bSYour Name  * @wmi_handle: wmi handle
2146*5113495bSYour Name  * @param: esl_egid params
2147*5113495bSYour Name  *
2148*5113495bSYour Name  * Send WMI_ESL_EGID_CMDID parameters to fw.
2149*5113495bSYour Name  *
2150*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2151*5113495bSYour Name  */
2152*5113495bSYour Name QDF_STATUS
2153*5113495bSYour Name wmi_unified_send_egid_info_cmd(wmi_unified_t wmi_handle,
2154*5113495bSYour Name 			       struct esl_egid_params *param);
2155*5113495bSYour Name 
2156*5113495bSYour Name /**
2157*5113495bSYour Name  * wmi_unified_send_coex_ver_cfg_cmd() - send coex ver cfg command
2158*5113495bSYour Name  * @wmi_handle: wmi handle
2159*5113495bSYour Name  * @param: wmi coex ver cfg params
2160*5113495bSYour Name  *
2161*5113495bSYour Name  * Send WMI_COEX_VERSION_CFG_CMID parameters to fw.
2162*5113495bSYour Name  *
2163*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2164*5113495bSYour Name  */
2165*5113495bSYour Name QDF_STATUS
2166*5113495bSYour Name wmi_unified_send_coex_ver_cfg_cmd(wmi_unified_t wmi_handle,
2167*5113495bSYour Name 				  coex_ver_cfg_t *param);
2168*5113495bSYour Name 
2169*5113495bSYour Name /**
2170*5113495bSYour Name  * wmi_unified_send_coex_config_cmd() - send coex ver cfg command
2171*5113495bSYour Name  * @wmi_handle: wmi handle
2172*5113495bSYour Name  * @param: wmi coex cfg cmd params
2173*5113495bSYour Name  *
2174*5113495bSYour Name  * Send WMI_COEX_CFG_CMD parameters to fw.
2175*5113495bSYour Name  *
2176*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2177*5113495bSYour Name  */
2178*5113495bSYour Name QDF_STATUS
2179*5113495bSYour Name wmi_unified_send_coex_config_cmd(wmi_unified_t wmi_handle,
2180*5113495bSYour Name 				 struct coex_config_params *param);
2181*5113495bSYour Name 
2182*5113495bSYour Name /**
2183*5113495bSYour Name  * wmi_unified_send_coex_multi_config_cmd() - send multiple coex config
2184*5113495bSYour Name  * @wmi_handle: wmi handle
2185*5113495bSYour Name  * @param: wmi coex multiple cfg cmd params
2186*5113495bSYour Name  *
2187*5113495bSYour Name  * Send WMI_COEX_MULTIPLE_CONFIG_CMDID parameters to fw.
2188*5113495bSYour Name  *
2189*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2190*5113495bSYour Name  */
2191*5113495bSYour Name QDF_STATUS
2192*5113495bSYour Name wmi_unified_send_coex_multi_config_cmd(wmi_unified_t wmi_handle,
2193*5113495bSYour Name 				       struct coex_multi_config *param);
2194*5113495bSYour Name 
2195*5113495bSYour Name #ifdef WLAN_FEATURE_DBAM_CONFIG
2196*5113495bSYour Name /**
2197*5113495bSYour Name  * wmi_unified_send_dbam_config_cmd() - send dbam config command
2198*5113495bSYour Name  * @wmi_handle: wmi handle
2199*5113495bSYour Name  * @param: dbam config mode param
2200*5113495bSYour Name  *
2201*5113495bSYour Name  * Send WMI_COEX_DBAM_CMD param to fw.
2202*5113495bSYour Name  *
2203*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2204*5113495bSYour Name  */
2205*5113495bSYour Name QDF_STATUS
2206*5113495bSYour Name wmi_unified_send_dbam_config_cmd(wmi_unified_t wmi_handle,
2207*5113495bSYour Name 				 struct coex_dbam_config_params *param);
2208*5113495bSYour Name 
2209*5113495bSYour Name /**
2210*5113495bSYour Name  * wmi_extract_dbam_config_response() - extract dbam config resp sent by FW
2211*5113495bSYour Name  * @wmi_handle: wmi handle
2212*5113495bSYour Name  * @evt_buf: pointer to event buffer
2213*5113495bSYour Name  * @resp: struct containing dbam config response sent by FW
2214*5113495bSYour Name  *
2215*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2216*5113495bSYour Name  */
2217*5113495bSYour Name QDF_STATUS
2218*5113495bSYour Name wmi_extract_dbam_config_response(wmi_unified_t wmi_handle, void *evt_buf,
2219*5113495bSYour Name 				 struct coex_dbam_config_resp *resp);
2220*5113495bSYour Name #endif
2221*5113495bSYour Name 
2222*5113495bSYour Name /**
2223*5113495bSYour Name  *  wmi_unified_pdev_fips_cmd_send() - WMI pdev fips cmd function
2224*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2225*5113495bSYour Name  *  @param: pointer to hold pdev fips param
2226*5113495bSYour Name  *
2227*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2228*5113495bSYour Name  */
2229*5113495bSYour Name QDF_STATUS
2230*5113495bSYour Name wmi_unified_pdev_fips_cmd_send(wmi_unified_t wmi_handle,
2231*5113495bSYour Name 			       struct fips_params *param);
2232*5113495bSYour Name 
2233*5113495bSYour Name #ifdef WLAN_FEATURE_FIPS_BER_CCMGCM
2234*5113495bSYour Name /**
2235*5113495bSYour Name  *  wmi_unified_pdev_fips_extend_cmd_send() - WMI pdev fips extend cmd function
2236*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2237*5113495bSYour Name  *  @param: pointer to hold pdev fips extend param
2238*5113495bSYour Name  *
2239*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2240*5113495bSYour Name  */
2241*5113495bSYour Name QDF_STATUS
2242*5113495bSYour Name wmi_unified_pdev_fips_extend_cmd_send(wmi_unified_t wmi_handle,
2243*5113495bSYour Name 				      struct fips_extend_params *param);
2244*5113495bSYour Name 
2245*5113495bSYour Name /**
2246*5113495bSYour Name  *  wmi_unified_pdev_fips_mode_set_cmd() - WMI pdev fips mode enable cmd
2247*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2248*5113495bSYour Name  *  @param: pointer to hold pdev fips mode param
2249*5113495bSYour Name  *
2250*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2251*5113495bSYour Name  */
2252*5113495bSYour Name QDF_STATUS
2253*5113495bSYour Name wmi_unified_pdev_fips_mode_set_cmd(wmi_unified_t wmi_handle,
2254*5113495bSYour Name 				   struct fips_mode_set_params *param);
2255*5113495bSYour Name 
2256*5113495bSYour Name /**
2257*5113495bSYour Name  * wmi_extract_fips_extend_event_data() - extract fips extend event data
2258*5113495bSYour Name  * @wmi_handle: wmi handle
2259*5113495bSYour Name  * @evt_buf: pointer to event buffer
2260*5113495bSYour Name  * @param: pointer to FIPS extend event param
2261*5113495bSYour Name  *
2262*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2263*5113495bSYour Name  */
2264*5113495bSYour Name QDF_STATUS
2265*5113495bSYour Name wmi_extract_fips_extend_event_data(wmi_unified_t wmi_handle, void *evt_buf,
2266*5113495bSYour Name 				   struct wmi_host_fips_extend_event_param
2267*5113495bSYour Name 				   *param);
2268*5113495bSYour Name #endif
2269*5113495bSYour Name 
2270*5113495bSYour Name #ifdef WLAN_FEATURE_DISA
2271*5113495bSYour Name /**
2272*5113495bSYour Name  * wmi_unified_encrypt_decrypt_send_cmd() - send encryptdecrypt cmd to fw
2273*5113495bSYour Name  * @wmi_hdl: wmi handle
2274*5113495bSYour Name  * @params: encrypt/decrypt params
2275*5113495bSYour Name  *
2276*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2277*5113495bSYour Name  */
2278*5113495bSYour Name QDF_STATUS
2279*5113495bSYour Name wmi_unified_encrypt_decrypt_send_cmd(void *wmi_hdl,
2280*5113495bSYour Name 				     struct disa_encrypt_decrypt_req_params
2281*5113495bSYour Name 				     *params);
2282*5113495bSYour Name #endif /* WLAN_FEATURE_DISA */
2283*5113495bSYour Name 
2284*5113495bSYour Name /**
2285*5113495bSYour Name  *  wmi_unified_wlan_profile_enable_cmd_send() - WMI wlan profile enable
2286*5113495bSYour Name  *						 cmd function
2287*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2288*5113495bSYour Name  *  @param: pointer to hold wlan profile param
2289*5113495bSYour Name  *
2290*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2291*5113495bSYour Name  */
2292*5113495bSYour Name QDF_STATUS
2293*5113495bSYour Name wmi_unified_wlan_profile_enable_cmd_send(wmi_unified_t wmi_handle,
2294*5113495bSYour Name 					 struct wlan_profile_params *param);
2295*5113495bSYour Name 
2296*5113495bSYour Name /**
2297*5113495bSYour Name  *  wmi_unified_wlan_profile_trigger_cmd_send() - WMI wlan profile trigger
2298*5113495bSYour Name  *						  cmd function
2299*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2300*5113495bSYour Name  *  @param: pointer to hold wlan profile param
2301*5113495bSYour Name  *
2302*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2303*5113495bSYour Name  */
2304*5113495bSYour Name QDF_STATUS
2305*5113495bSYour Name wmi_unified_wlan_profile_trigger_cmd_send(wmi_unified_t wmi_handle,
2306*5113495bSYour Name 					  struct wlan_profile_params *param);
2307*5113495bSYour Name 
2308*5113495bSYour Name /**
2309*5113495bSYour Name  *  wmi_unified_wlan_profile_hist_intvl_cmd_send() - WMI wlan profile history
2310*5113495bSYour Name  *						  cmd function
2311*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2312*5113495bSYour Name  *  @param: pointer to hold wlan profile param
2313*5113495bSYour Name  *
2314*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2315*5113495bSYour Name  */
2316*5113495bSYour Name QDF_STATUS
2317*5113495bSYour Name wmi_unified_wlan_profile_hist_intvl_cmd_send(wmi_unified_t wmi_handle,
2318*5113495bSYour Name 					     struct wlan_profile_params *param);
2319*5113495bSYour Name 
2320*5113495bSYour Name /**
2321*5113495bSYour Name  *  wmi_unified_set_chan_cmd_send() - WMI set channel cmd function
2322*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2323*5113495bSYour Name  *  @param: pointer to hold channel param
2324*5113495bSYour Name  *
2325*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2326*5113495bSYour Name  */
2327*5113495bSYour Name QDF_STATUS
2328*5113495bSYour Name wmi_unified_set_chan_cmd_send(wmi_unified_t wmi_handle,
2329*5113495bSYour Name 			      struct channel_param *param);
2330*5113495bSYour Name 
2331*5113495bSYour Name /**
2332*5113495bSYour Name  *  wmi_unified_set_ratepwr_table_cmd_send() - WMI ratepwr table cmd function
2333*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2334*5113495bSYour Name  *  @param: pointer to hold ratepwr table param
2335*5113495bSYour Name  *
2336*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2337*5113495bSYour Name  */
2338*5113495bSYour Name QDF_STATUS
2339*5113495bSYour Name wmi_unified_set_ratepwr_table_cmd_send(wmi_unified_t wmi_handle,
2340*5113495bSYour Name 				       struct ratepwr_table_params *param);
2341*5113495bSYour Name 
2342*5113495bSYour Name /**
2343*5113495bSYour Name  *  wmi_unified_get_ratepwr_table_cmd_send() - WMI ratepwr table cmd function
2344*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2345*5113495bSYour Name  *
2346*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2347*5113495bSYour Name  */
2348*5113495bSYour Name QDF_STATUS wmi_unified_get_ratepwr_table_cmd_send(wmi_unified_t wmi_handle);
2349*5113495bSYour Name 
2350*5113495bSYour Name /**
2351*5113495bSYour Name  *  wmi_unified_set_ratepwr_chainmsk_cmd_send() - WMI ratepwr
2352*5113495bSYour Name  *  chainmsk cmd function
2353*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2354*5113495bSYour Name  *  @param: pointer to hold ratepwr chainmsk param
2355*5113495bSYour Name  *
2356*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2357*5113495bSYour Name  */
2358*5113495bSYour Name QDF_STATUS
2359*5113495bSYour Name wmi_unified_set_ratepwr_chainmsk_cmd_send(wmi_unified_t wmi_handle,
2360*5113495bSYour Name 					  struct ratepwr_chainmsk_params
2361*5113495bSYour Name 					  *param);
2362*5113495bSYour Name 
2363*5113495bSYour Name /**
2364*5113495bSYour Name  *  wmi_unified_set_macaddr_cmd_send() - WMI set macaddr cmd function
2365*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2366*5113495bSYour Name  *  @param: pointer to hold macaddr param
2367*5113495bSYour Name  *
2368*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2369*5113495bSYour Name  */
2370*5113495bSYour Name QDF_STATUS wmi_unified_set_macaddr_cmd_send(wmi_unified_t wmi_handle,
2371*5113495bSYour Name 					    struct macaddr_params *param);
2372*5113495bSYour Name 
2373*5113495bSYour Name /**
2374*5113495bSYour Name  *  wmi_unified_pdev_scan_start_cmd_send() - WMI pdev scan start cmd function
2375*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2376*5113495bSYour Name  *
2377*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2378*5113495bSYour Name  */
2379*5113495bSYour Name QDF_STATUS wmi_unified_pdev_scan_start_cmd_send(wmi_unified_t wmi_handle);
2380*5113495bSYour Name 
2381*5113495bSYour Name /**
2382*5113495bSYour Name  *  wmi_unified_pdev_scan_end_cmd_send() - WMI pdev scan end cmd function
2383*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2384*5113495bSYour Name  *
2385*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2386*5113495bSYour Name  */
2387*5113495bSYour Name QDF_STATUS wmi_unified_pdev_scan_end_cmd_send(wmi_unified_t wmi_handle);
2388*5113495bSYour Name 
2389*5113495bSYour Name /**
2390*5113495bSYour Name  *  wmi_unified_set_acparams_cmd_send() - WMI set acparams cmd function
2391*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2392*5113495bSYour Name  *  @param: pointer to hold acparams param
2393*5113495bSYour Name  *
2394*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2395*5113495bSYour Name  */
2396*5113495bSYour Name QDF_STATUS
2397*5113495bSYour Name wmi_unified_set_acparams_cmd_send(wmi_unified_t wmi_handle,
2398*5113495bSYour Name 				  struct acparams_params *param);
2399*5113495bSYour Name 
2400*5113495bSYour Name /**
2401*5113495bSYour Name  *  wmi_unified_set_vap_dscp_tid_map_cmd_send() - WMI set vap dscp
2402*5113495bSYour Name  *  tid map cmd function
2403*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2404*5113495bSYour Name  *  @param: pointer to hold dscp param
2405*5113495bSYour Name  *
2406*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2407*5113495bSYour Name  */
2408*5113495bSYour Name QDF_STATUS
2409*5113495bSYour Name wmi_unified_set_vap_dscp_tid_map_cmd_send(
2410*5113495bSYour Name 			wmi_unified_t wmi_handle,
2411*5113495bSYour Name 			struct vap_dscp_tid_map_params *param);
2412*5113495bSYour Name 
2413*5113495bSYour Name /**
2414*5113495bSYour Name  *  wmi_unified_proxy_ast_reserve_cmd_send() - WMI proxy ast
2415*5113495bSYour Name  *  reserve cmd function
2416*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2417*5113495bSYour Name  *  @param: pointer to hold ast param
2418*5113495bSYour Name  *
2419*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2420*5113495bSYour Name  */
2421*5113495bSYour Name QDF_STATUS
2422*5113495bSYour Name wmi_unified_proxy_ast_reserve_cmd_send(wmi_unified_t wmi_handle,
2423*5113495bSYour Name 				       struct proxy_ast_reserve_params *param);
2424*5113495bSYour Name 
2425*5113495bSYour Name /**
2426*5113495bSYour Name  *  wmi_unified_set_bridge_mac_addr_cmd_send() - WMI set bridge mac
2427*5113495bSYour Name  *  addr cmd function
2428*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2429*5113495bSYour Name  *  @param: pointer to hold bridge mac addr param
2430*5113495bSYour Name  *
2431*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2432*5113495bSYour Name  */
2433*5113495bSYour Name QDF_STATUS wmi_unified_set_bridge_mac_addr_cmd_send(
2434*5113495bSYour Name 			wmi_unified_t wmi_handle,
2435*5113495bSYour Name 			struct set_bridge_mac_addr_params *param);
2436*5113495bSYour Name 
2437*5113495bSYour Name /**
2438*5113495bSYour Name  *  wmi_unified_phyerr_enable_cmd_send() - WMI phyerr enable cmd function
2439*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2440*5113495bSYour Name  *
2441*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2442*5113495bSYour Name  */
2443*5113495bSYour Name QDF_STATUS wmi_unified_phyerr_enable_cmd_send(wmi_unified_t wmi_handle);
2444*5113495bSYour Name 
2445*5113495bSYour Name /**
2446*5113495bSYour Name  *  wmi_unified_phyerr_disable_cmd_send() - WMI phyerr disable cmd function
2447*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2448*5113495bSYour Name  *
2449*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2450*5113495bSYour Name  */
2451*5113495bSYour Name QDF_STATUS wmi_unified_phyerr_disable_cmd_send(wmi_unified_t wmi_handle);
2452*5113495bSYour Name 
2453*5113495bSYour Name /**
2454*5113495bSYour Name  *  wmi_unified_smart_ant_enable_tx_feedback_cmd_send() -
2455*5113495bSYour Name  *					WMI set tx antenna function
2456*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2457*5113495bSYour Name  *  @param: pointer to hold antenna param
2458*5113495bSYour Name  *
2459*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2460*5113495bSYour Name  */
2461*5113495bSYour Name QDF_STATUS wmi_unified_smart_ant_enable_tx_feedback_cmd_send(
2462*5113495bSYour Name 			wmi_unified_t wmi_handle,
2463*5113495bSYour Name 			struct smart_ant_enable_tx_feedback_params *param);
2464*5113495bSYour Name 
2465*5113495bSYour Name #ifdef WLAN_IOT_SIM_SUPPORT
2466*5113495bSYour Name /**
2467*5113495bSYour Name  *  wmi_unified_simulation_test_cmd_send() -
2468*5113495bSYour Name  *  WMI simulation test command
2469*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2470*5113495bSYour Name  *  @param: pointer to hold simulation test param
2471*5113495bSYour Name  *
2472*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2473*5113495bSYour Name  */
2474*5113495bSYour Name QDF_STATUS wmi_unified_simulation_test_cmd_send(wmi_unified_t wmi_handle,
2475*5113495bSYour Name 						struct simulation_test_params
2476*5113495bSYour Name 						*param);
2477*5113495bSYour Name #endif
2478*5113495bSYour Name 
2479*5113495bSYour Name /**
2480*5113495bSYour Name  *  wmi_unified_vdev_spectral_configure_cmd_send() -
2481*5113495bSYour Name  *					WMI set spectral config function
2482*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2483*5113495bSYour Name  *  @param: pointer to hold spectral config param
2484*5113495bSYour Name  *
2485*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2486*5113495bSYour Name  */
2487*5113495bSYour Name QDF_STATUS wmi_unified_vdev_spectral_configure_cmd_send(
2488*5113495bSYour Name 			wmi_unified_t wmi_handle,
2489*5113495bSYour Name 			struct vdev_spectral_configure_params *param);
2490*5113495bSYour Name 
2491*5113495bSYour Name /**
2492*5113495bSYour Name  *  wmi_unified_vdev_spectral_enable_cmd_send() - WMI enable spectral function
2493*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2494*5113495bSYour Name  *  @param: pointer to hold enable spectral param
2495*5113495bSYour Name  *
2496*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2497*5113495bSYour Name  */
2498*5113495bSYour Name QDF_STATUS wmi_unified_vdev_spectral_enable_cmd_send(
2499*5113495bSYour Name 			wmi_unified_t wmi_handle,
2500*5113495bSYour Name 			struct vdev_spectral_enable_params *param);
2501*5113495bSYour Name 
2502*5113495bSYour Name #ifdef WLAN_CONV_SPECTRAL_ENABLE
2503*5113495bSYour Name /**
2504*5113495bSYour Name  *  wmi_extract_pdev_sscan_fw_cmd_fixed_param() - Extract fixed params
2505*5113495bSYour Name  *  from start scan response event
2506*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2507*5113495bSYour Name  *  @evt_buf: Event buffer
2508*5113495bSYour Name  *  @param: pointer to hold fixed params from fw params event
2509*5113495bSYour Name  *
2510*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2511*5113495bSYour Name  */
2512*5113495bSYour Name QDF_STATUS wmi_extract_pdev_sscan_fw_cmd_fixed_param(
2513*5113495bSYour Name 			wmi_unified_t wmi_handle,
2514*5113495bSYour Name 			uint8_t *evt_buf,
2515*5113495bSYour Name 			struct spectral_startscan_resp_params *param);
2516*5113495bSYour Name 
2517*5113495bSYour Name /**
2518*5113495bSYour Name  *  wmi_extract_pdev_sscan_fft_bin_index() - Extract FFT bin indexes
2519*5113495bSYour Name  *  from start scan response event
2520*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2521*5113495bSYour Name  *  @evt_buf: Event buffer
2522*5113495bSYour Name  *  @param: pointer to hold FFT bin indexes from fw params event
2523*5113495bSYour Name  *
2524*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2525*5113495bSYour Name  */
2526*5113495bSYour Name QDF_STATUS wmi_extract_pdev_sscan_fft_bin_index(
2527*5113495bSYour Name 			wmi_unified_t wmi_handle,
2528*5113495bSYour Name 			uint8_t *evt_buf,
2529*5113495bSYour Name 			struct spectral_fft_bin_markers_160_165mhz *param);
2530*5113495bSYour Name 
2531*5113495bSYour Name /**
2532*5113495bSYour Name  * wmi_extract_pdev_spectral_session_chan_info() - Extract channel information
2533*5113495bSYour Name  * for a spectral scan session
2534*5113495bSYour Name  * @wmi_handle: handle to WMI.
2535*5113495bSYour Name  * @event: Event buffer
2536*5113495bSYour Name  * @chan_info: Spectral session channel information data structure to be filled
2537*5113495bSYour Name  * by this API
2538*5113495bSYour Name  *
2539*5113495bSYour Name  * Return: QDF_STATUS of operation
2540*5113495bSYour Name  */
2541*5113495bSYour Name QDF_STATUS wmi_extract_pdev_spectral_session_chan_info(
2542*5113495bSYour Name 			wmi_unified_t wmi_handle, void *event,
2543*5113495bSYour Name 			struct spectral_session_chan_info *chan_info);
2544*5113495bSYour Name 
2545*5113495bSYour Name /**
2546*5113495bSYour Name  * wmi_extract_pdev_spectral_session_detector_info() - Extract detector
2547*5113495bSYour Name  * information for a spectral scan session
2548*5113495bSYour Name  * @wmi_handle: handle to WMI.
2549*5113495bSYour Name  * @event: Event buffer
2550*5113495bSYour Name  * @det_info: Spectral session detector information data structure to be filled
2551*5113495bSYour Name  * by this API
2552*5113495bSYour Name  * @det_info_idx: index in the array of spectral scan detector info TLVs
2553*5113495bSYour Name  *
2554*5113495bSYour Name  * Return: QDF_STATUS of operation
2555*5113495bSYour Name  */
2556*5113495bSYour Name QDF_STATUS wmi_extract_pdev_spectral_session_detector_info(
2557*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
2558*5113495bSYour Name 		struct spectral_session_det_info *det_info,
2559*5113495bSYour Name 		uint8_t det_info_idx);
2560*5113495bSYour Name 
2561*5113495bSYour Name /**
2562*5113495bSYour Name  * wmi_extract_spectral_caps_fixed_param() - Extract fixed params from Spectral
2563*5113495bSYour Name  * capabilities WMI event
2564*5113495bSYour Name  * @wmi_handle: handle to WMI.
2565*5113495bSYour Name  * @event: Event buffer
2566*5113495bSYour Name  * @param: Spectral capabilities event parameters data structure to be filled
2567*5113495bSYour Name  * by this API
2568*5113495bSYour Name  *
2569*5113495bSYour Name  * Return: QDF_STATUS of operation
2570*5113495bSYour Name  */
2571*5113495bSYour Name QDF_STATUS wmi_extract_spectral_caps_fixed_param(
2572*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
2573*5113495bSYour Name 		struct spectral_capabilities_event_params *param);
2574*5113495bSYour Name 
2575*5113495bSYour Name /**
2576*5113495bSYour Name  * wmi_extract_spectral_scan_bw_caps() - Extract bandwidth caps from
2577*5113495bSYour Name  * Spectral capabilities WMI event
2578*5113495bSYour Name  * @wmi_handle: handle to WMI.
2579*5113495bSYour Name  * @event: Event buffer
2580*5113495bSYour Name  * @bw_caps: Data structure to be populated by this API after extraction
2581*5113495bSYour Name  *
2582*5113495bSYour Name  * Return: QDF_STATUS of operation
2583*5113495bSYour Name  */
2584*5113495bSYour Name QDF_STATUS wmi_extract_spectral_scan_bw_caps(
2585*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
2586*5113495bSYour Name 		struct spectral_scan_bw_capabilities *bw_caps);
2587*5113495bSYour Name 
2588*5113495bSYour Name /**
2589*5113495bSYour Name  * wmi_extract_spectral_fft_size_caps() - Extract FFT size caps from
2590*5113495bSYour Name  * Spectral capabilities WMI event
2591*5113495bSYour Name  * @wmi_handle: handle to WMI.
2592*5113495bSYour Name  * @event: Event buffer
2593*5113495bSYour Name  * @fft_size_caps: Data structure to be populated by this API after extraction
2594*5113495bSYour Name  *
2595*5113495bSYour Name  * Return: QDF_STATUS of operation
2596*5113495bSYour Name  */
2597*5113495bSYour Name QDF_STATUS wmi_extract_spectral_fft_size_caps(
2598*5113495bSYour Name 		wmi_unified_t wmi_handle, void *event,
2599*5113495bSYour Name 		struct spectral_fft_size_capabilities *fft_size_caps);
2600*5113495bSYour Name #endif /* WLAN_CONV_SPECTRAL_ENABLE */
2601*5113495bSYour Name 
2602*5113495bSYour Name #if defined(WLAN_SUPPORT_FILS) || defined(CONFIG_BAND_6GHZ)
2603*5113495bSYour Name /**
2604*5113495bSYour Name  *  wmi_unified_vdev_fils_enable_cmd_send() - WMI send fils enable command
2605*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2606*5113495bSYour Name  *  @param: fils enable parameters
2607*5113495bSYour Name  *
2608*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2609*5113495bSYour Name  */
2610*5113495bSYour Name QDF_STATUS
2611*5113495bSYour Name wmi_unified_vdev_fils_enable_cmd_send(struct wmi_unified *wmi_handle,
2612*5113495bSYour Name 				      struct config_fils_params *param);
2613*5113495bSYour Name #endif
2614*5113495bSYour Name 
2615*5113495bSYour Name /**
2616*5113495bSYour Name  *  wmi_unified_bss_chan_info_request_cmd_send() - WMI bss chan info
2617*5113495bSYour Name  *  request function
2618*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2619*5113495bSYour Name  *  @param: pointer to hold chan info param
2620*5113495bSYour Name  *
2621*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2622*5113495bSYour Name  */
2623*5113495bSYour Name QDF_STATUS wmi_unified_bss_chan_info_request_cmd_send(
2624*5113495bSYour Name 			wmi_unified_t wmi_handle,
2625*5113495bSYour Name 			struct bss_chan_info_request_params *param);
2626*5113495bSYour Name 
2627*5113495bSYour Name /**
2628*5113495bSYour Name  *  wmi_unified_thermal_mitigation_param_cmd_send() -
2629*5113495bSYour Name  *					WMI thermal mitigation function
2630*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2631*5113495bSYour Name  *  @param: pointer to hold thermal mitigation param
2632*5113495bSYour Name  *
2633*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2634*5113495bSYour Name  */
2635*5113495bSYour Name QDF_STATUS wmi_unified_thermal_mitigation_param_cmd_send(
2636*5113495bSYour Name 			wmi_unified_t wmi_handle,
2637*5113495bSYour Name 			struct thermal_mitigation_params *param);
2638*5113495bSYour Name 
2639*5113495bSYour Name /**
2640*5113495bSYour Name  *  wmi_unified_vdev_set_fwtest_param_cmd_send() - WMI set fwtest function
2641*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2642*5113495bSYour Name  *  @param: pointer to hold fwtest param
2643*5113495bSYour Name  *
2644*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2645*5113495bSYour Name  */
2646*5113495bSYour Name QDF_STATUS wmi_unified_vdev_set_fwtest_param_cmd_send(
2647*5113495bSYour Name 			wmi_unified_t wmi_handle,
2648*5113495bSYour Name 			struct set_fwtest_params *param);
2649*5113495bSYour Name 
2650*5113495bSYour Name /**
2651*5113495bSYour Name  *  wmi_unified_vdev_set_custom_aggr_size_cmd_send() - WMI set custom aggr
2652*5113495bSYour Name  *						       size command
2653*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2654*5113495bSYour Name  *  @param: pointer to hold custom aggr size param
2655*5113495bSYour Name  *
2656*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2657*5113495bSYour Name  */
2658*5113495bSYour Name QDF_STATUS wmi_unified_vdev_set_custom_aggr_size_cmd_send(
2659*5113495bSYour Name 		wmi_unified_t wmi_handle,
2660*5113495bSYour Name 		struct set_custom_aggr_size_params *param);
2661*5113495bSYour Name 
2662*5113495bSYour Name /**
2663*5113495bSYour Name  *  wmi_unified_vdev_set_qdepth_thresh_cmd_send() - WMI set qdepth threshold
2664*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2665*5113495bSYour Name  *  @param: pointer to hold set qdepth thresh param
2666*5113495bSYour Name  *
2667*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2668*5113495bSYour Name  */
2669*5113495bSYour Name QDF_STATUS wmi_unified_vdev_set_qdepth_thresh_cmd_send(
2670*5113495bSYour Name 		wmi_unified_t wmi_handle,
2671*5113495bSYour Name 		struct set_qdepth_thresh_params *param);
2672*5113495bSYour Name 
2673*5113495bSYour Name #ifdef WLAN_REG_PARTIAL_OFFLOAD
2674*5113495bSYour Name /**
2675*5113495bSYour Name  *  wmi_unified_pdev_set_regdomain_cmd_send() - WMI set regdomain function
2676*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2677*5113495bSYour Name  *  @param: pointer to hold regdomain param
2678*5113495bSYour Name  *
2679*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2680*5113495bSYour Name  */
2681*5113495bSYour Name QDF_STATUS wmi_unified_pdev_set_regdomain_cmd_send(
2682*5113495bSYour Name 			wmi_unified_t wmi_handle,
2683*5113495bSYour Name 			struct pdev_set_regdomain_params *param);
2684*5113495bSYour Name #endif
2685*5113495bSYour Name 
2686*5113495bSYour Name /**
2687*5113495bSYour Name  *  wmi_unified_set_beacon_filter_cmd_send() - WMI set beacon filter function
2688*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2689*5113495bSYour Name  *  @param: pointer to hold beacon filter param
2690*5113495bSYour Name  *
2691*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2692*5113495bSYour Name  */
2693*5113495bSYour Name QDF_STATUS wmi_unified_set_beacon_filter_cmd_send(
2694*5113495bSYour Name 			wmi_unified_t wmi_handle,
2695*5113495bSYour Name 			struct set_beacon_filter_params *param);
2696*5113495bSYour Name 
2697*5113495bSYour Name /**
2698*5113495bSYour Name  *  wmi_unified_remove_beacon_filter_cmd_send() - WMI set beacon filter function
2699*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2700*5113495bSYour Name  *  @param: pointer to hold beacon filter param
2701*5113495bSYour Name  *
2702*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2703*5113495bSYour Name  */
2704*5113495bSYour Name QDF_STATUS wmi_unified_remove_beacon_filter_cmd_send(
2705*5113495bSYour Name 			wmi_unified_t wmi_handle,
2706*5113495bSYour Name 			struct remove_beacon_filter_params *param);
2707*5113495bSYour Name 
2708*5113495bSYour Name /**
2709*5113495bSYour Name  *  wmi_unified_addba_clearresponse_cmd_send() - WMI addba resp cmd function
2710*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2711*5113495bSYour Name  *  @macaddr: MAC address
2712*5113495bSYour Name  *  @param: pointer to hold addba resp parameter
2713*5113495bSYour Name  *
2714*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2715*5113495bSYour Name  */
2716*5113495bSYour Name QDF_STATUS wmi_unified_addba_clearresponse_cmd_send(
2717*5113495bSYour Name 			wmi_unified_t wmi_handle,
2718*5113495bSYour Name 			uint8_t macaddr[QDF_MAC_ADDR_SIZE],
2719*5113495bSYour Name 			struct addba_clearresponse_params *param);
2720*5113495bSYour Name 
2721*5113495bSYour Name /**
2722*5113495bSYour Name  *  wmi_unified_addba_send_cmd_send() - WMI addba send function
2723*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2724*5113495bSYour Name  *  @macaddr: MAC address
2725*5113495bSYour Name  *  @param: pointer to hold addba parameter
2726*5113495bSYour Name  *
2727*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2728*5113495bSYour Name  */
2729*5113495bSYour Name QDF_STATUS
2730*5113495bSYour Name wmi_unified_addba_send_cmd_send(wmi_unified_t wmi_handle,
2731*5113495bSYour Name 				uint8_t macaddr[QDF_MAC_ADDR_SIZE],
2732*5113495bSYour Name 				struct addba_send_params *param);
2733*5113495bSYour Name 
2734*5113495bSYour Name /**
2735*5113495bSYour Name  *  wmi_unified_delba_send_cmd_send() - WMI delba cmd function
2736*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2737*5113495bSYour Name  *  @macaddr: MAC address
2738*5113495bSYour Name  *  @param: pointer to hold delba parameter
2739*5113495bSYour Name  *
2740*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2741*5113495bSYour Name  */
2742*5113495bSYour Name QDF_STATUS
2743*5113495bSYour Name wmi_unified_delba_send_cmd_send(wmi_unified_t wmi_handle,
2744*5113495bSYour Name 				uint8_t macaddr[QDF_MAC_ADDR_SIZE],
2745*5113495bSYour Name 				struct delba_send_params *param);
2746*5113495bSYour Name 
2747*5113495bSYour Name /**
2748*5113495bSYour Name  *  wmi_unified_addba_setresponse_cmd_send() - WMI addba set resp cmd function
2749*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2750*5113495bSYour Name  *  @macaddr: MAC address
2751*5113495bSYour Name  *  @param: pointer to hold addba set resp parameter
2752*5113495bSYour Name  *
2753*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2754*5113495bSYour Name  */
2755*5113495bSYour Name QDF_STATUS
2756*5113495bSYour Name wmi_unified_addba_setresponse_cmd_send(wmi_unified_t wmi_handle,
2757*5113495bSYour Name 				       uint8_t macaddr[QDF_MAC_ADDR_SIZE],
2758*5113495bSYour Name 				       struct addba_setresponse_params *param);
2759*5113495bSYour Name 
2760*5113495bSYour Name /**
2761*5113495bSYour Name  *  wmi_unified_singleamsdu_cmd_send() - WMI singleamsdu function
2762*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2763*5113495bSYour Name  *  @macaddr: MAC address
2764*5113495bSYour Name  *  @param: pointer to hold singleamsdu parameter
2765*5113495bSYour Name  *
2766*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2767*5113495bSYour Name  */
2768*5113495bSYour Name QDF_STATUS
2769*5113495bSYour Name wmi_unified_singleamsdu_cmd_send(wmi_unified_t wmi_handle,
2770*5113495bSYour Name 				 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
2771*5113495bSYour Name 				 struct singleamsdu_params *param);
2772*5113495bSYour Name 
2773*5113495bSYour Name /**
2774*5113495bSYour Name  *  wmi_unified_mu_scan_cmd_send() - WMI set mu scan function
2775*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2776*5113495bSYour Name  *  @param: pointer to hold mu scan param
2777*5113495bSYour Name  *
2778*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2779*5113495bSYour Name  */
2780*5113495bSYour Name QDF_STATUS
2781*5113495bSYour Name wmi_unified_mu_scan_cmd_send(wmi_unified_t wmi_handle,
2782*5113495bSYour Name 			     struct mu_scan_params *param);
2783*5113495bSYour Name 
2784*5113495bSYour Name /**
2785*5113495bSYour Name  *  wmi_unified_lteu_config_cmd_send() - WMI set mu scan function
2786*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2787*5113495bSYour Name  *  @param: pointer to hold mu scan param
2788*5113495bSYour Name  *
2789*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2790*5113495bSYour Name  */
2791*5113495bSYour Name QDF_STATUS
2792*5113495bSYour Name wmi_unified_lteu_config_cmd_send(wmi_unified_t wmi_handle,
2793*5113495bSYour Name 				 struct lteu_config_params *param);
2794*5113495bSYour Name 
2795*5113495bSYour Name /**
2796*5113495bSYour Name  *  wmi_unified_set_psmode_cmd_send() - WMI set mu scan function
2797*5113495bSYour Name  *  @wmi_handle: handle to WMI.
2798*5113495bSYour Name  *  @param: pointer to hold mu scan param
2799*5113495bSYour Name  *
2800*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2801*5113495bSYour Name  */
2802*5113495bSYour Name QDF_STATUS
2803*5113495bSYour Name wmi_unified_set_psmode_cmd_send(wmi_unified_t wmi_handle,
2804*5113495bSYour Name 				struct set_ps_mode_params *param);
2805*5113495bSYour Name 
2806*5113495bSYour Name /**
2807*5113495bSYour Name  * wmi_unified_init_cmd_send() - send initialization cmd to fw
2808*5113495bSYour Name  * @wmi_handle: wmi handle
2809*5113495bSYour Name  * @param: pointer to wmi init param
2810*5113495bSYour Name  *
2811*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2812*5113495bSYour Name  */
2813*5113495bSYour Name QDF_STATUS
2814*5113495bSYour Name wmi_unified_init_cmd_send(wmi_unified_t wmi_handle,
2815*5113495bSYour Name 			  struct wmi_init_cmd_param *param);
2816*5113495bSYour Name 
2817*5113495bSYour Name /**
2818*5113495bSYour Name  * wmi_service_enabled() - Check if service enabled
2819*5113495bSYour Name  * @wmi_handle: wmi handle
2820*5113495bSYour Name  * @service_id: service identifier
2821*5113495bSYour Name  *
2822*5113495bSYour Name  * Return: 1 enabled, 0 disabled
2823*5113495bSYour Name  */
2824*5113495bSYour Name bool wmi_service_enabled(wmi_unified_t wmi_handle, uint32_t service_id);
2825*5113495bSYour Name 
2826*5113495bSYour Name /**
2827*5113495bSYour Name  * wmi_save_service_bitmap() - save service bitmap
2828*5113495bSYour Name  * @wmi_handle: wmi handle
2829*5113495bSYour Name  * @evt_buf: pointer to event buffer
2830*5113495bSYour Name  * @bitmap_buf: bitmap buffer
2831*5113495bSYour Name  *
2832*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
2833*5113495bSYour Name  */
2834*5113495bSYour Name QDF_STATUS wmi_save_service_bitmap(wmi_unified_t wmi_handle, void *evt_buf,
2835*5113495bSYour Name 				   void *bitmap_buf);
2836*5113495bSYour Name 
2837*5113495bSYour Name /**
2838*5113495bSYour Name  * wmi_save_ext_service_bitmap() - save extended service bitmap
2839*5113495bSYour Name  * @wmi_handle: wmi handle
2840*5113495bSYour Name  * @bitmap_buf: pointer to event buffer
2841*5113495bSYour Name  * @evt_buf: pointer to event buffer
2842*5113495bSYour Name  *
2843*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
2844*5113495bSYour Name  */
2845*5113495bSYour Name QDF_STATUS wmi_save_ext_service_bitmap(wmi_unified_t wmi_handle, void *evt_buf,
2846*5113495bSYour Name 				       void *bitmap_buf);
2847*5113495bSYour Name 
2848*5113495bSYour Name /**
2849*5113495bSYour Name  * wmi_save_fw_version() - Save fw version
2850*5113495bSYour Name  * @wmi_handle: wmi handle
2851*5113495bSYour Name  * @evt_buf: pointer to event buffer
2852*5113495bSYour Name  *
2853*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2854*5113495bSYour Name  */
2855*5113495bSYour Name QDF_STATUS wmi_save_fw_version(wmi_unified_t wmi_handle, void *evt_buf);
2856*5113495bSYour Name 
2857*5113495bSYour Name /**
2858*5113495bSYour Name  * wmi_get_target_cap_from_service_ready() - extract service ready event
2859*5113495bSYour Name  * @wmi_handle: wmi handle
2860*5113495bSYour Name  * @evt_buf: pointer to received event buffer
2861*5113495bSYour Name  * @ev: pointer to hold target capability information extracted from even
2862*5113495bSYour Name  *
2863*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2864*5113495bSYour Name  */
2865*5113495bSYour Name QDF_STATUS wmi_get_target_cap_from_service_ready(
2866*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
2867*5113495bSYour Name 		struct wlan_psoc_target_capability_info *ev);
2868*5113495bSYour Name 
2869*5113495bSYour Name /**
2870*5113495bSYour Name  * wmi_extract_hal_reg_cap() - extract HAL registered capabilities
2871*5113495bSYour Name  * @wmi_handle: wmi handle
2872*5113495bSYour Name  * @evt_buf: Pointer to event buffer
2873*5113495bSYour Name  * @hal_reg_cap: pointer to hold HAL reg capabilities
2874*5113495bSYour Name  *
2875*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2876*5113495bSYour Name  */
2877*5113495bSYour Name QDF_STATUS
2878*5113495bSYour Name wmi_extract_hal_reg_cap(wmi_unified_t wmi_handle, void *evt_buf,
2879*5113495bSYour Name 			struct wlan_psoc_hal_reg_capability *hal_reg_cap);
2880*5113495bSYour Name 
2881*5113495bSYour Name /**
2882*5113495bSYour Name  * wmi_extract_hal_reg_cap_ext2() - Extract HAL reg capabilities from service
2883*5113495bSYour Name  * ready ext2 event
2884*5113495bSYour Name  * @wmi_handle: wmi handle
2885*5113495bSYour Name  * @evt_buf: Pointer to event buffer
2886*5113495bSYour Name  * @phy_idx: Phy id
2887*5113495bSYour Name  * @hal_reg_cap: pointer to hold HAL reg capabilities ext2 structure
2888*5113495bSYour Name  *
2889*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2890*5113495bSYour Name  */
2891*5113495bSYour Name QDF_STATUS
2892*5113495bSYour Name wmi_extract_hal_reg_cap_ext2(
2893*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf, uint8_t phy_idx,
2894*5113495bSYour Name 		struct wlan_psoc_host_hal_reg_capabilities_ext2 *hal_reg_cap);
2895*5113495bSYour Name 
2896*5113495bSYour Name /**
2897*5113495bSYour Name  * wmi_extract_num_mem_reqs_from_service_ready() - Extract number of memory
2898*5113495bSYour Name  *                                                 entries requested
2899*5113495bSYour Name  * @wmi_handle: wmi handle
2900*5113495bSYour Name  * @evt_buf: pointer to event buffer
2901*5113495bSYour Name  *
2902*5113495bSYour Name  * Return: Number of entries requested
2903*5113495bSYour Name  */
2904*5113495bSYour Name uint32_t wmi_extract_num_mem_reqs_from_service_ready(
2905*5113495bSYour Name 		wmi_unified_t wmi_handle,
2906*5113495bSYour Name 		void *evt_buf);
2907*5113495bSYour Name 
2908*5113495bSYour Name /**
2909*5113495bSYour Name  * wmi_extract_host_mem_req_from_service_ready() - Extract host memory
2910*5113495bSYour Name  *                                                 request event
2911*5113495bSYour Name  * @wmi_handle: wmi handle
2912*5113495bSYour Name  * @evt_buf: pointer to event buffer
2913*5113495bSYour Name  * @mem_reqs: pointer to host memory request structure
2914*5113495bSYour Name  * @num_active_peers: number of active peers for peer cache
2915*5113495bSYour Name  * @num_peers: number of peers
2916*5113495bSYour Name  * @fw_prio: FW priority
2917*5113495bSYour Name  * @idx: Index for memory request
2918*5113495bSYour Name  *
2919*5113495bSYour Name  * Return: Host memory request parameters requested by target
2920*5113495bSYour Name  */
2921*5113495bSYour Name QDF_STATUS wmi_extract_host_mem_req_from_service_ready(
2922*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf, host_mem_req *mem_reqs,
2923*5113495bSYour Name 		uint32_t num_active_peers, uint32_t num_peers,
2924*5113495bSYour Name 		enum wmi_fw_mem_prio fw_prio, uint16_t idx);
2925*5113495bSYour Name 
2926*5113495bSYour Name /**
2927*5113495bSYour Name  * wmi_ready_extract_init_status() - Extract init status from ready event
2928*5113495bSYour Name  * @wmi_handle: wmi handle
2929*5113495bSYour Name  * @ev: Pointer to event buffer
2930*5113495bSYour Name  *
2931*5113495bSYour Name  * Return: ready status
2932*5113495bSYour Name  */
2933*5113495bSYour Name uint32_t wmi_ready_extract_init_status(wmi_unified_t wmi_handle, void *ev);
2934*5113495bSYour Name 
2935*5113495bSYour Name /**
2936*5113495bSYour Name  * wmi_ready_extract_mac_addr() - extract mac address from ready event
2937*5113495bSYour Name  * @wmi_handle: wmi handle
2938*5113495bSYour Name  * @ev: pointer to event buffer
2939*5113495bSYour Name  * @macaddr: Pointer to hold MAC address
2940*5113495bSYour Name  *
2941*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2942*5113495bSYour Name  */
2943*5113495bSYour Name QDF_STATUS wmi_ready_extract_mac_addr(wmi_unified_t wmi_handle,
2944*5113495bSYour Name 				      void *ev, uint8_t *macaddr);
2945*5113495bSYour Name 
2946*5113495bSYour Name /**
2947*5113495bSYour Name  * wmi_ready_extract_mac_addr_list() - extract MAC address list from ready event
2948*5113495bSYour Name  * @wmi_handle: wmi handle
2949*5113495bSYour Name  * @ev: pointer to event buffer
2950*5113495bSYour Name  * @num_mac_addr: Pointer to number of entries
2951*5113495bSYour Name  *
2952*5113495bSYour Name  * Return: address to start of mac addr list
2953*5113495bSYour Name  */
2954*5113495bSYour Name wmi_host_mac_addr
2955*5113495bSYour Name *wmi_ready_extract_mac_addr_list(wmi_unified_t wmi_handle, void *ev,
2956*5113495bSYour Name 				 uint8_t *num_mac_addr);
2957*5113495bSYour Name 
2958*5113495bSYour Name /**
2959*5113495bSYour Name  * wmi_extract_ready_event_params() - Extract data from ready event apart from
2960*5113495bSYour Name  *                                    status, macaddr and version.
2961*5113495bSYour Name  * @wmi_handle: Pointer to WMI handle.
2962*5113495bSYour Name  * @evt_buf: Pointer to Ready event buffer.
2963*5113495bSYour Name  * @ev_param: Pointer to host defined struct to copy the data from event.
2964*5113495bSYour Name  *
2965*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success.
2966*5113495bSYour Name  */
2967*5113495bSYour Name QDF_STATUS wmi_extract_ready_event_params(
2968*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
2969*5113495bSYour Name 		struct wmi_host_ready_ev_param *ev_param);
2970*5113495bSYour Name 
2971*5113495bSYour Name /**
2972*5113495bSYour Name  * wmi_extract_fw_version() - extract fw version
2973*5113495bSYour Name  * @wmi_handle: wmi handle
2974*5113495bSYour Name  * @ev: pointer to event buffer
2975*5113495bSYour Name  * @fw_ver: Pointer to hold fw version
2976*5113495bSYour Name  *
2977*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2978*5113495bSYour Name  */
2979*5113495bSYour Name QDF_STATUS wmi_extract_fw_version(wmi_unified_t wmi_handle, void *ev,
2980*5113495bSYour Name 				  struct wmi_host_fw_ver *fw_ver);
2981*5113495bSYour Name 
2982*5113495bSYour Name /**
2983*5113495bSYour Name  * wmi_extract_fw_abi_version() - extract fw abi version
2984*5113495bSYour Name  * @wmi_handle: wmi handle
2985*5113495bSYour Name  * @ev: Pointer to event buffer
2986*5113495bSYour Name  * @fw_ver: Pointer to hold fw abi version
2987*5113495bSYour Name  *
2988*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2989*5113495bSYour Name  */
2990*5113495bSYour Name QDF_STATUS wmi_extract_fw_abi_version(wmi_unified_t wmi_handle, void *ev,
2991*5113495bSYour Name 				      struct wmi_host_fw_abi_ver *fw_ver);
2992*5113495bSYour Name 
2993*5113495bSYour Name /**
2994*5113495bSYour Name  * wmi_check_and_update_fw_version() - Ready and fw version check
2995*5113495bSYour Name  * @wmi_handle: wmi handle
2996*5113495bSYour Name  * @ev: pointer to event buffer
2997*5113495bSYour Name  *
2998*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2999*5113495bSYour Name  */
3000*5113495bSYour Name QDF_STATUS wmi_check_and_update_fw_version(wmi_unified_t wmi_handle, void *ev);
3001*5113495bSYour Name 
3002*5113495bSYour Name /**
3003*5113495bSYour Name  * wmi_extract_dbglog_data_len() - extract debuglog data length
3004*5113495bSYour Name  * @wmi_handle: wmi handle
3005*5113495bSYour Name  * @evt_b: pointer to event buffer
3006*5113495bSYour Name  * @len:  length of buffer
3007*5113495bSYour Name  *
3008*5113495bSYour Name  * Return: length
3009*5113495bSYour Name  */
3010*5113495bSYour Name uint8_t *wmi_extract_dbglog_data_len(wmi_unified_t wmi_handle,
3011*5113495bSYour Name 				     void *evt_b, uint32_t *len);
3012*5113495bSYour Name 
3013*5113495bSYour Name /**
3014*5113495bSYour Name  * wmi_send_ext_resource_config() - send extended resource configuration
3015*5113495bSYour Name  * @wmi_handle: wmi handle
3016*5113495bSYour Name  * @ext_cfg: pointer to extended resource configuration
3017*5113495bSYour Name  *
3018*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3019*5113495bSYour Name  */
3020*5113495bSYour Name QDF_STATUS wmi_send_ext_resource_config(wmi_unified_t wmi_handle,
3021*5113495bSYour Name 					wmi_host_ext_resource_config *ext_cfg);
3022*5113495bSYour Name 
3023*5113495bSYour Name /**
3024*5113495bSYour Name  *  wmi_unified_rtt_meas_req_test_cmd_send() - WMI rtt meas req test function
3025*5113495bSYour Name  *  @wmi_handle: handle to WMI.
3026*5113495bSYour Name  *  @param: pointer to hold rtt meas req test param
3027*5113495bSYour Name  *
3028*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3029*5113495bSYour Name  */
3030*5113495bSYour Name QDF_STATUS
3031*5113495bSYour Name wmi_unified_rtt_meas_req_test_cmd_send(wmi_unified_t wmi_handle,
3032*5113495bSYour Name 				       struct rtt_meas_req_test_params *param);
3033*5113495bSYour Name 
3034*5113495bSYour Name /**
3035*5113495bSYour Name  *  wmi_unified_rtt_meas_req_cmd_send() - WMI rtt meas req function
3036*5113495bSYour Name  *  @wmi_handle: handle to WMI.
3037*5113495bSYour Name  *  @param: pointer to hold rtt meas req param
3038*5113495bSYour Name  *
3039*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3040*5113495bSYour Name  */
3041*5113495bSYour Name QDF_STATUS
3042*5113495bSYour Name wmi_unified_rtt_meas_req_cmd_send(wmi_unified_t wmi_handle,
3043*5113495bSYour Name 				  struct rtt_meas_req_params *param);
3044*5113495bSYour Name 
3045*5113495bSYour Name /**
3046*5113495bSYour Name  *  wmi_unified_rtt_keepalive_req_cmd_send() - WMI rtt meas req test function
3047*5113495bSYour Name  *  @wmi_handle: handle to WMI.
3048*5113495bSYour Name  *  @param: pointer to hold rtt meas req test param
3049*5113495bSYour Name  *
3050*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3051*5113495bSYour Name  */
3052*5113495bSYour Name QDF_STATUS
3053*5113495bSYour Name wmi_unified_rtt_keepalive_req_cmd_send(wmi_unified_t wmi_handle,
3054*5113495bSYour Name 				       struct rtt_keepalive_req_params *param);
3055*5113495bSYour Name 
3056*5113495bSYour Name /**
3057*5113495bSYour Name  *  wmi_unified_lci_set_cmd_send() - WMI lci set function
3058*5113495bSYour Name  *  @wmi_handle: handle to WMI.
3059*5113495bSYour Name  *  @param: pointer to hold lci param
3060*5113495bSYour Name  *
3061*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3062*5113495bSYour Name  */
3063*5113495bSYour Name QDF_STATUS wmi_unified_lci_set_cmd_send(wmi_unified_t wmi_handle,
3064*5113495bSYour Name 					struct lci_set_params *param);
3065*5113495bSYour Name 
3066*5113495bSYour Name /**
3067*5113495bSYour Name  *  wmi_unified_lcr_set_cmd_send() - WMI lcr set function
3068*5113495bSYour Name  *  @wmi_handle: handle to WMI.
3069*5113495bSYour Name  *  @param: pointer to hold lcr param
3070*5113495bSYour Name  *
3071*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3072*5113495bSYour Name  */
3073*5113495bSYour Name QDF_STATUS wmi_unified_lcr_set_cmd_send(wmi_unified_t wmi_handle,
3074*5113495bSYour Name 					struct lcr_set_params *param);
3075*5113495bSYour Name 
3076*5113495bSYour Name /**
3077*5113495bSYour Name  * wmi_unified_extract_pn() - extract pn event data
3078*5113495bSYour Name  * @wmi_hdl: wmi handle
3079*5113495bSYour Name  * @evt_buf: pointer to event buffer
3080*5113495bSYour Name  * @param: pointer to get pn event param
3081*5113495bSYour Name  *
3082*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3083*5113495bSYour Name  */
3084*5113495bSYour Name QDF_STATUS wmi_unified_extract_pn(wmi_unified_t wmi_hdl, void *evt_buf,
3085*5113495bSYour Name 			  struct wmi_host_get_pn_event *param);
3086*5113495bSYour Name 
3087*5113495bSYour Name /**
3088*5113495bSYour Name  * wmi_unified_extract_rxpn() - extract Rx PN event data
3089*5113495bSYour Name  * @wmi_hdl: wmi handle
3090*5113495bSYour Name  * @evt_buf: pointer to event buffer
3091*5113495bSYour Name  * @param: pointer to get Rx PN event param
3092*5113495bSYour Name  *
3093*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3094*5113495bSYour Name  */
3095*5113495bSYour Name QDF_STATUS wmi_unified_extract_rxpn(wmi_unified_t wmi_hdl, void *evt_buf,
3096*5113495bSYour Name 				    struct wmi_host_get_rxpn_event *param);
3097*5113495bSYour Name 
3098*5113495bSYour Name /**
3099*5113495bSYour Name  * wmi_unified_send_periodic_chan_stats_config_cmd() - send periodic chan
3100*5113495bSYour Name  * stats cmd to fw
3101*5113495bSYour Name  * @wmi_handle: wmi handle
3102*5113495bSYour Name  * @param: pointer to hold periodic chan stats param
3103*5113495bSYour Name  *
3104*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3105*5113495bSYour Name  */
3106*5113495bSYour Name QDF_STATUS wmi_unified_send_periodic_chan_stats_config_cmd(
3107*5113495bSYour Name 		wmi_unified_t wmi_handle,
3108*5113495bSYour Name 		struct periodic_chan_stats_params *param);
3109*5113495bSYour Name 
3110*5113495bSYour Name /* Extract APIs */
3111*5113495bSYour Name 
3112*5113495bSYour Name /**
3113*5113495bSYour Name  * wmi_extract_fips_event_data() - extract fips event data
3114*5113495bSYour Name  * @wmi_handle: wmi handle
3115*5113495bSYour Name  * @evt_buf: pointer to event buffer
3116*5113495bSYour Name  * @param: pointer to FIPS event param
3117*5113495bSYour Name  *
3118*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3119*5113495bSYour Name  */
3120*5113495bSYour Name QDF_STATUS
3121*5113495bSYour Name wmi_extract_fips_event_data(wmi_unified_t wmi_handle, void *evt_buf,
3122*5113495bSYour Name 			    struct wmi_host_fips_event_param *param);
3123*5113495bSYour Name 
3124*5113495bSYour Name #ifdef WLAN_FEATURE_DISA
3125*5113495bSYour Name /**
3126*5113495bSYour Name  * wmi_extract_encrypt_decrypt_resp_params() -
3127*5113495bSYour Name  *       extract encrypt decrypt resp params from event buffer
3128*5113495bSYour Name  * @wmi_hdl: wmi handle
3129*5113495bSYour Name  * @evt_buf: pointer to event buffer
3130*5113495bSYour Name  * @param: encrypt decrypt resp params
3131*5113495bSYour Name  *
3132*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3133*5113495bSYour Name  */
3134*5113495bSYour Name QDF_STATUS
3135*5113495bSYour Name wmi_extract_encrypt_decrypt_resp_params(void *wmi_hdl, void *evt_buf,
3136*5113495bSYour Name 					struct disa_encrypt_decrypt_resp_params
3137*5113495bSYour Name 					*param);
3138*5113495bSYour Name #endif /* WLAN_FEATURE_DISA */
3139*5113495bSYour Name 
3140*5113495bSYour Name /**
3141*5113495bSYour Name  * wmi_extract_mgmt_rx_params() - extract management rx params from event
3142*5113495bSYour Name  * @wmi_handle: wmi handle
3143*5113495bSYour Name  * @evt_buf: pointer to event buffer
3144*5113495bSYour Name  * @hdr: Pointer to hold header
3145*5113495bSYour Name  * @bufp: Pointer to hold pointer to rx param buffer
3146*5113495bSYour Name  *
3147*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3148*5113495bSYour Name  */
3149*5113495bSYour Name QDF_STATUS
3150*5113495bSYour Name wmi_extract_mgmt_rx_params(wmi_unified_t wmi_handle, void *evt_buf,
3151*5113495bSYour Name 			   struct mgmt_rx_event_params *hdr, uint8_t **bufp);
3152*5113495bSYour Name 
3153*5113495bSYour Name /**
3154*5113495bSYour Name  * wmi_extract_mgmt_rx_ext_params() - extract extended rx params from event
3155*5113495bSYour Name  * @wmi_handle: wmi handle
3156*5113495bSYour Name  * @evt_buf: pointer to event buffer
3157*5113495bSYour Name  * @params: Pointer to hold ext params
3158*5113495bSYour Name  *
3159*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3160*5113495bSYour Name  */
3161*5113495bSYour Name QDF_STATUS
3162*5113495bSYour Name wmi_extract_mgmt_rx_ext_params(wmi_unified_t wmi_handle, void *evt_buf,
3163*5113495bSYour Name 			       struct mgmt_rx_event_ext_params *params);
3164*5113495bSYour Name 
3165*5113495bSYour Name #ifdef WLAN_MGMT_RX_REO_SUPPORT
3166*5113495bSYour Name /**
3167*5113495bSYour Name  * wmi_extract_mgmt_rx_fw_consumed() - extract MGMT Rx FW consumed event
3168*5113495bSYour Name  * @wmi_handle: wmi handle
3169*5113495bSYour Name  * @evt_buf: pointer to event buffer
3170*5113495bSYour Name  * @params: Pointer to MGMT Rx REO parameters
3171*5113495bSYour Name  *
3172*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3173*5113495bSYour Name  */
3174*5113495bSYour Name QDF_STATUS
3175*5113495bSYour Name wmi_extract_mgmt_rx_fw_consumed(wmi_unified_t wmi_handle, void *evt_buf,
3176*5113495bSYour Name 				struct mgmt_rx_reo_params *params);
3177*5113495bSYour Name 
3178*5113495bSYour Name /**
3179*5113495bSYour Name  * wmi_extract_mgmt_rx_reo_params() - extract MGMT Rx REO params from
3180*5113495bSYour Name  * MGMT_RX_EVENT_ID
3181*5113495bSYour Name  * @wmi_handle: wmi handle
3182*5113495bSYour Name  * @evt_buf: pointer to event buffer
3183*5113495bSYour Name  * @params: Pointer to MGMT Rx REO parameters
3184*5113495bSYour Name  *
3185*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3186*5113495bSYour Name  */
3187*5113495bSYour Name QDF_STATUS
3188*5113495bSYour Name wmi_extract_mgmt_rx_reo_params(wmi_unified_t wmi_handle, void *evt_buf,
3189*5113495bSYour Name 			       struct mgmt_rx_reo_params *params);
3190*5113495bSYour Name 
3191*5113495bSYour Name /**
3192*5113495bSYour Name  * wmi_unified_mgmt_rx_reo_filter_config_cmd() - Send MGMT Rx REO filter
3193*5113495bSYour Name  * configuration command
3194*5113495bSYour Name  * @wmi_handle: wmi handle
3195*5113495bSYour Name  * @pdev_id: pdev ID of the radio
3196*5113495bSYour Name  * @filter: Pointer to MGMT Rx REO filter
3197*5113495bSYour Name  *
3198*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3199*5113495bSYour Name  */
3200*5113495bSYour Name QDF_STATUS wmi_unified_mgmt_rx_reo_filter_config_cmd(
3201*5113495bSYour Name 					wmi_unified_t wmi_handle,
3202*5113495bSYour Name 					uint8_t pdev_id,
3203*5113495bSYour Name 					struct mgmt_rx_reo_filter *filter);
3204*5113495bSYour Name #endif
3205*5113495bSYour Name 
3206*5113495bSYour Name /**
3207*5113495bSYour Name  * wmi_extract_frame_pn_params() - extract PN params from event
3208*5113495bSYour Name  * @wmi_handle: wmi handle
3209*5113495bSYour Name  * @evt_buf: pointer to event buffer
3210*5113495bSYour Name  * @pn_params: Pointer to Frame PN params
3211*5113495bSYour Name  *
3212*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3213*5113495bSYour Name  */
3214*5113495bSYour Name QDF_STATUS
3215*5113495bSYour Name wmi_extract_frame_pn_params(wmi_unified_t wmi_handle, void *evt_buf,
3216*5113495bSYour Name 			    struct frame_pn_params *pn_params);
3217*5113495bSYour Name 
3218*5113495bSYour Name /**
3219*5113495bSYour Name  * wmi_extract_is_conn_ap_frame() - extract is_conn_ap_frame param from event
3220*5113495bSYour Name  * @wmi_handle: wmi handle
3221*5113495bSYour Name  * @evt_buf: pointer to event buffer
3222*5113495bSYour Name  * @is_conn_ap: is_conn_ap param
3223*5113495bSYour Name  *
3224*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3225*5113495bSYour Name  */
3226*5113495bSYour Name QDF_STATUS
3227*5113495bSYour Name wmi_extract_is_conn_ap_frame(wmi_unified_t wmi_handle, void *evt_buf,
3228*5113495bSYour Name 			     struct frm_conn_ap *is_conn_ap);
3229*5113495bSYour Name 
3230*5113495bSYour Name /**
3231*5113495bSYour Name  * wmi_extract_vdev_roam_param() - extract vdev roam param from event
3232*5113495bSYour Name  * @wmi_handle: wmi handle
3233*5113495bSYour Name  * @evt_buf: pointer to event buffer
3234*5113495bSYour Name  * @ev: Pointer to hold roam param
3235*5113495bSYour Name  *
3236*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3237*5113495bSYour Name  */
3238*5113495bSYour Name QDF_STATUS
3239*5113495bSYour Name wmi_extract_vdev_roam_param(wmi_unified_t wmi_handle, void *evt_buf,
3240*5113495bSYour Name 			    wmi_host_roam_event *ev);
3241*5113495bSYour Name 
3242*5113495bSYour Name /**
3243*5113495bSYour Name  * wmi_extract_vdev_scan_ev_param() - extract vdev scan param from event
3244*5113495bSYour Name  * @wmi_handle: wmi handle
3245*5113495bSYour Name  * @evt_buf: pointer to event buffer
3246*5113495bSYour Name  * @param: Pointer to hold vdev scan param
3247*5113495bSYour Name  *
3248*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3249*5113495bSYour Name  */
3250*5113495bSYour Name QDF_STATUS
3251*5113495bSYour Name wmi_extract_vdev_scan_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
3252*5113495bSYour Name 			       struct scan_event *param);
3253*5113495bSYour Name 
3254*5113495bSYour Name #ifdef FEATURE_WLAN_SCAN_PNO
3255*5113495bSYour Name /**
3256*5113495bSYour Name  * wmi_extract_nlo_match_ev_param() - extract NLO match param from event
3257*5113495bSYour Name  * @wmi_handle: pointer to WMI handle
3258*5113495bSYour Name  * @evt_buf: pointer to WMI event buffer
3259*5113495bSYour Name  * @param: pointer to scan event param for NLO match
3260*5113495bSYour Name  *
3261*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3262*5113495bSYour Name  */
3263*5113495bSYour Name QDF_STATUS
3264*5113495bSYour Name wmi_extract_nlo_match_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
3265*5113495bSYour Name 			       struct scan_event *param);
3266*5113495bSYour Name 
3267*5113495bSYour Name /**
3268*5113495bSYour Name  * wmi_extract_nlo_complete_ev_param() - extract NLO complete param from event
3269*5113495bSYour Name  * @wmi_handle: pointer to WMI handle
3270*5113495bSYour Name  * @evt_buf: pointer to WMI event buffer
3271*5113495bSYour Name  * @param: pointer to scan event param for NLO complete
3272*5113495bSYour Name  *
3273*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3274*5113495bSYour Name  */
3275*5113495bSYour Name QDF_STATUS
3276*5113495bSYour Name wmi_extract_nlo_complete_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
3277*5113495bSYour Name 				  struct scan_event *param);
3278*5113495bSYour Name #endif
3279*5113495bSYour Name 
3280*5113495bSYour Name /**
3281*5113495bSYour Name  * wmi_extract_mu_ev_param() - extract mu param from event
3282*5113495bSYour Name  * @wmi_handle: wmi handle
3283*5113495bSYour Name  * @evt_buf: pointer to event buffer
3284*5113495bSYour Name  * @param: Pointer to hold mu report
3285*5113495bSYour Name  *
3286*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3287*5113495bSYour Name  */
3288*5113495bSYour Name QDF_STATUS
3289*5113495bSYour Name wmi_extract_mu_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
3290*5113495bSYour Name 			wmi_host_mu_report_event *param);
3291*5113495bSYour Name 
3292*5113495bSYour Name /**
3293*5113495bSYour Name  * wmi_extract_mu_db_entry() - extract mu db entry from event
3294*5113495bSYour Name  * @wmi_handle: wmi handle
3295*5113495bSYour Name  * @evt_buf: pointer to event buffer
3296*5113495bSYour Name  * @idx: index
3297*5113495bSYour Name  * @param: Pointer to hold mu db entry
3298*5113495bSYour Name  *
3299*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3300*5113495bSYour Name  */
3301*5113495bSYour Name QDF_STATUS
3302*5113495bSYour Name wmi_extract_mu_db_entry(wmi_unified_t wmi_handle, void *evt_buf,
3303*5113495bSYour Name 			uint8_t idx, wmi_host_mu_db_entry *param);
3304*5113495bSYour Name 
3305*5113495bSYour Name /**
3306*5113495bSYour Name  * wmi_extract_mumimo_tx_count_ev_param() - extract mumimo tx count from event
3307*5113495bSYour Name  * @wmi_handle: wmi handle
3308*5113495bSYour Name  * @evt_buf: pointer to event buffer
3309*5113495bSYour Name  * @param: Pointer to hold mumimo tx count
3310*5113495bSYour Name  *
3311*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3312*5113495bSYour Name  */
3313*5113495bSYour Name QDF_STATUS
3314*5113495bSYour Name wmi_extract_mumimo_tx_count_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
3315*5113495bSYour Name 				     wmi_host_peer_txmu_cnt_event *param);
3316*5113495bSYour Name 
3317*5113495bSYour Name /**
3318*5113495bSYour Name  * wmi_extract_peer_gid_userpos_list_ev_param() - extract peer userpos list
3319*5113495bSYour Name  *                                                from event
3320*5113495bSYour Name  * @wmi_handle: wmi handle
3321*5113495bSYour Name  * @evt_buf: pointer to event buffer
3322*5113495bSYour Name  * @param: Pointer to hold peer gid userposition list
3323*5113495bSYour Name  *
3324*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3325*5113495bSYour Name  */
3326*5113495bSYour Name QDF_STATUS
3327*5113495bSYour Name wmi_extract_peer_gid_userpos_list_ev_param(
3328*5113495bSYour Name 		wmi_unified_t wmi_handle,
3329*5113495bSYour Name 		void *evt_buf,
3330*5113495bSYour Name 		wmi_host_peer_gid_userpos_list_event *param);
3331*5113495bSYour Name 
3332*5113495bSYour Name /**
3333*5113495bSYour Name  * wmi_extract_esp_estimate_ev_param() - extract air time from event
3334*5113495bSYour Name  * @wmi_handle: wmi handle
3335*5113495bSYour Name  * @evt_buf: pointer to event buffer
3336*5113495bSYour Name  * @param: Pointer to hold esp event
3337*5113495bSYour Name  *
3338*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3339*5113495bSYour Name  */
3340*5113495bSYour Name QDF_STATUS
3341*5113495bSYour Name wmi_extract_esp_estimate_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
3342*5113495bSYour Name 				  struct esp_estimation_event *param);
3343*5113495bSYour Name 
3344*5113495bSYour Name /**
3345*5113495bSYour Name  * wmi_extract_gpio_input_ev_param() - extract gpio input param from event
3346*5113495bSYour Name  * @wmi_handle: wmi handle
3347*5113495bSYour Name  * @evt_buf: pointer to event buffer
3348*5113495bSYour Name  * @gpio_num: Pointer to hold gpio number
3349*5113495bSYour Name  *
3350*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3351*5113495bSYour Name  */
3352*5113495bSYour Name QDF_STATUS wmi_extract_gpio_input_ev_param(wmi_unified_t wmi_handle,
3353*5113495bSYour Name 					   void *evt_buf, uint32_t *gpio_num);
3354*5113495bSYour Name 
3355*5113495bSYour Name /**
3356*5113495bSYour Name  * wmi_extract_pdev_reserve_ast_ev_param() - extract reserve ast entry
3357*5113495bSYour Name  * param from event
3358*5113495bSYour Name  * @wmi_handle: wmi handle
3359*5113495bSYour Name  * @evt_buf: pointer to event buffer
3360*5113495bSYour Name  * @param: Pointer to hold reserve ast entry param
3361*5113495bSYour Name  *
3362*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3363*5113495bSYour Name  */
3364*5113495bSYour Name QDF_STATUS wmi_extract_pdev_reserve_ast_ev_param(
3365*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3366*5113495bSYour Name 		struct wmi_host_proxy_ast_reserve_param *param);
3367*5113495bSYour Name /**
3368*5113495bSYour Name  * wmi_extract_pdev_generic_buffer_ev_param() - extract pdev generic buffer
3369*5113495bSYour Name  * from event
3370*5113495bSYour Name  * @wmi_handle: wmi handle
3371*5113495bSYour Name  * @evt_buf: pointer to event buffer
3372*5113495bSYour Name  * @param: Pointer to generic buffer param
3373*5113495bSYour Name  *
3374*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3375*5113495bSYour Name  */
3376*5113495bSYour Name QDF_STATUS wmi_extract_pdev_generic_buffer_ev_param(
3377*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3378*5113495bSYour Name 		wmi_host_pdev_generic_buffer_event *param);
3379*5113495bSYour Name 
3380*5113495bSYour Name /**
3381*5113495bSYour Name  * wmi_extract_peer_ratecode_list_ev() - extract peer ratecode from event
3382*5113495bSYour Name  * @wmi_handle: wmi handle
3383*5113495bSYour Name  * @evt_buf: pointer to event buffer
3384*5113495bSYour Name  * @peer_mac: Pointer to hold peer mac address
3385*5113495bSYour Name  * @pdev_id: Pointer to hold pdev_id
3386*5113495bSYour Name  * @rate_cap: Pointer to hold ratecode
3387*5113495bSYour Name  *
3388*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3389*5113495bSYour Name  */
3390*5113495bSYour Name QDF_STATUS wmi_extract_peer_ratecode_list_ev(
3391*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3392*5113495bSYour Name 		uint8_t *peer_mac, uint32_t *pdev_id,
3393*5113495bSYour Name 		wmi_sa_rate_cap *rate_cap);
3394*5113495bSYour Name 
3395*5113495bSYour Name /**
3396*5113495bSYour Name  * wmi_extract_bcnflt_stats() - extract bcn fault stats from event
3397*5113495bSYour Name  * @wmi_handle: wmi handle
3398*5113495bSYour Name  * @evt_buf: pointer to event buffer
3399*5113495bSYour Name  * @index: Index into bcn fault stats
3400*5113495bSYour Name  * @bcnflt_stats: Pointer to hold bcn fault stats
3401*5113495bSYour Name  *
3402*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3403*5113495bSYour Name  */
3404*5113495bSYour Name QDF_STATUS wmi_extract_bcnflt_stats(
3405*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3406*5113495bSYour Name 		uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats);
3407*5113495bSYour Name 
3408*5113495bSYour Name /**
3409*5113495bSYour Name  * wmi_extract_rtt_hdr() - extract rtt header from event
3410*5113495bSYour Name  * @wmi_handle: wmi handle
3411*5113495bSYour Name  * @evt_buf: pointer to event buffer
3412*5113495bSYour Name  * @ev: Pointer to hold rtt header
3413*5113495bSYour Name  *
3414*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3415*5113495bSYour Name  */
3416*5113495bSYour Name QDF_STATUS wmi_extract_rtt_hdr(wmi_unified_t wmi_handle, void *evt_buf,
3417*5113495bSYour Name 			       wmi_host_rtt_event_hdr *ev);
3418*5113495bSYour Name 
3419*5113495bSYour Name /**
3420*5113495bSYour Name  * wmi_extract_rtt_ev() - extract rtt event
3421*5113495bSYour Name  * @wmi_handle: wmi handle
3422*5113495bSYour Name  * @evt_buf: Pointer to event buffer
3423*5113495bSYour Name  * @ev: Pointer to hold rtt event
3424*5113495bSYour Name  * @hdump: Pointer to hold hex dump
3425*5113495bSYour Name  * @hdump_len: hex dump length
3426*5113495bSYour Name  *
3427*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3428*5113495bSYour Name  */
3429*5113495bSYour Name QDF_STATUS wmi_extract_rtt_ev(wmi_unified_t wmi_handle, void *evt_buf,
3430*5113495bSYour Name 			      wmi_host_rtt_meas_event *ev,
3431*5113495bSYour Name 			      uint8_t *hdump, uint16_t hdump_len);
3432*5113495bSYour Name 
3433*5113495bSYour Name /**
3434*5113495bSYour Name  * wmi_extract_rtt_error_report_ev() - extract rtt error report from event
3435*5113495bSYour Name  * @wmi_handle: wmi handle
3436*5113495bSYour Name  * @evt_buf: pointer to event buffer
3437*5113495bSYour Name  * @ev: Pointer to hold rtt error report
3438*5113495bSYour Name  *
3439*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3440*5113495bSYour Name  */
3441*5113495bSYour Name QDF_STATUS
3442*5113495bSYour Name wmi_extract_rtt_error_report_ev(wmi_unified_t wmi_handle, void *evt_buf,
3443*5113495bSYour Name 				wmi_host_rtt_error_report_event *ev);
3444*5113495bSYour Name 
3445*5113495bSYour Name /**
3446*5113495bSYour Name  * wmi_extract_chan_stats() - extract chan stats from event
3447*5113495bSYour Name  * @wmi_handle: wmi handle
3448*5113495bSYour Name  * @evt_buf: pointer to event buffer
3449*5113495bSYour Name  * @index: Index into chan stats
3450*5113495bSYour Name  * @chan_stats: Pointer to hold chan stats
3451*5113495bSYour Name  *
3452*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3453*5113495bSYour Name  */
3454*5113495bSYour Name QDF_STATUS
3455*5113495bSYour Name wmi_extract_chan_stats(wmi_unified_t wmi_handle, void *evt_buf,
3456*5113495bSYour Name 		       uint32_t index, wmi_host_chan_stats *chan_stats);
3457*5113495bSYour Name 
3458*5113495bSYour Name /**
3459*5113495bSYour Name  * wmi_extract_thermal_stats() - extract thermal stats from event
3460*5113495bSYour Name  * @wmi_handle: wmi handle
3461*5113495bSYour Name  * @evt_buf: Pointer to event buffer
3462*5113495bSYour Name  * @temp: Pointer to hold extracted temperature
3463*5113495bSYour Name  * @level: Pointer to hold extracted level in host enum
3464*5113495bSYour Name  * @therm_throt_levels: Pointer to hold extracted number of level in thermal
3465*5113495bSYour Name  *                      stats
3466*5113495bSYour Name  * @tt_stats: Pointer to hold extracted thermal stats for each level
3467*5113495bSYour Name  * @pdev_id: Pointer to hold extracted pdev_id
3468*5113495bSYour Name  *
3469*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3470*5113495bSYour Name  */
3471*5113495bSYour Name QDF_STATUS wmi_extract_thermal_stats(wmi_unified_t wmi_handle, void *evt_buf,
3472*5113495bSYour Name 				     uint32_t *temp,
3473*5113495bSYour Name 				     enum thermal_throttle_level *level,
3474*5113495bSYour Name 				     uint32_t *therm_throt_levels,
3475*5113495bSYour Name 				     struct thermal_throt_level_stats *tt_stats,
3476*5113495bSYour Name 				     uint32_t *pdev_id);
3477*5113495bSYour Name 
3478*5113495bSYour Name /**
3479*5113495bSYour Name  * wmi_extract_thermal_level_stats() - extract thermal level stats from
3480*5113495bSYour Name  * event
3481*5113495bSYour Name  * @wmi_handle: wmi handle
3482*5113495bSYour Name  * @evt_buf: pointer to event buffer
3483*5113495bSYour Name  * @idx: Index to level stats
3484*5113495bSYour Name  * @levelcount: Pointer to hold levelcount
3485*5113495bSYour Name  * @dccount: Pointer to hold dccount
3486*5113495bSYour Name  *
3487*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3488*5113495bSYour Name  */
3489*5113495bSYour Name QDF_STATUS
3490*5113495bSYour Name wmi_extract_thermal_level_stats(wmi_unified_t wmi_handle, void *evt_buf,
3491*5113495bSYour Name 				uint8_t idx, uint32_t *levelcount,
3492*5113495bSYour Name 				uint32_t *dccount);
3493*5113495bSYour Name 
3494*5113495bSYour Name /**
3495*5113495bSYour Name  * wmi_extract_comb_phyerr() - extract comb phy error from event
3496*5113495bSYour Name  * @wmi_handle: wmi handle
3497*5113495bSYour Name  * @evt_buf: pointer to event buffer
3498*5113495bSYour Name  * @datalen: data length of event buffer
3499*5113495bSYour Name  * @buf_offset: Pointer to hold value of current event buffer offset
3500*5113495bSYour Name  * post extraction
3501*5113495bSYour Name  * @phyerr: Pointer to hold phyerr
3502*5113495bSYour Name  *
3503*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3504*5113495bSYour Name  */
3505*5113495bSYour Name QDF_STATUS
3506*5113495bSYour Name wmi_extract_comb_phyerr(wmi_unified_t wmi_handle, void *evt_buf,
3507*5113495bSYour Name 			uint16_t datalen, uint16_t *buf_offset,
3508*5113495bSYour Name 			wmi_host_phyerr_t *phyerr);
3509*5113495bSYour Name 
3510*5113495bSYour Name /**
3511*5113495bSYour Name  * wmi_extract_single_phyerr() - extract single phy error from event
3512*5113495bSYour Name  * @wmi_handle: wmi handle
3513*5113495bSYour Name  * @evt_buf: pointer to event buffer
3514*5113495bSYour Name  * @datalen: data length of event buffer
3515*5113495bSYour Name  * @buf_offset: Pointer to hold value of current event buffer offset
3516*5113495bSYour Name  * post extraction
3517*5113495bSYour Name  * @phyerr: Pointer to hold phyerr
3518*5113495bSYour Name  *
3519*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3520*5113495bSYour Name  */
3521*5113495bSYour Name QDF_STATUS
3522*5113495bSYour Name wmi_extract_single_phyerr(wmi_unified_t wmi_handle, void *evt_buf,
3523*5113495bSYour Name 			  uint16_t datalen, uint16_t *buf_offset,
3524*5113495bSYour Name 			  wmi_host_phyerr_t *phyerr);
3525*5113495bSYour Name 
3526*5113495bSYour Name /**
3527*5113495bSYour Name  * wmi_extract_composite_phyerr() - extract composite phy error from event
3528*5113495bSYour Name  * @wmi_handle: wmi handle
3529*5113495bSYour Name  * @evt_buf: pointer to event buffer
3530*5113495bSYour Name  * @datalen: Length of event buffer
3531*5113495bSYour Name  * @phyerr: Pointer to hold phy error
3532*5113495bSYour Name  *
3533*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3534*5113495bSYour Name  */
3535*5113495bSYour Name QDF_STATUS
3536*5113495bSYour Name wmi_extract_composite_phyerr(wmi_unified_t wmi_handle, void *evt_buf,
3537*5113495bSYour Name 			     uint16_t datalen, wmi_host_phyerr_t *phyerr);
3538*5113495bSYour Name 
3539*5113495bSYour Name /**
3540*5113495bSYour Name  * wmi_extract_profile_ctx() - extract profile context from event
3541*5113495bSYour Name  * @wmi_handle: wmi handle
3542*5113495bSYour Name  * @evt_buf: pointer to event buffer
3543*5113495bSYour Name  * @profile_ctx: Pointer to hold profile context
3544*5113495bSYour Name  *
3545*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3546*5113495bSYour Name  */
3547*5113495bSYour Name QDF_STATUS
3548*5113495bSYour Name wmi_extract_profile_ctx(wmi_unified_t wmi_handle, void *evt_buf,
3549*5113495bSYour Name 			wmi_host_wlan_profile_ctx_t *profile_ctx);
3550*5113495bSYour Name 
3551*5113495bSYour Name /**
3552*5113495bSYour Name  * wmi_extract_profile_data() - extract profile data from event
3553*5113495bSYour Name  * @wmi_handle: wmi handle
3554*5113495bSYour Name  * @evt_buf: pointer to event buffer
3555*5113495bSYour Name  * @idx: index of profile data
3556*5113495bSYour Name  * @profile_data: Pointer to hold profile data
3557*5113495bSYour Name  *
3558*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3559*5113495bSYour Name  */
3560*5113495bSYour Name QDF_STATUS
3561*5113495bSYour Name wmi_extract_profile_data(wmi_unified_t wmi_handle, void *evt_buf, uint8_t idx,
3562*5113495bSYour Name 			 wmi_host_wlan_profile_t *profile_data);
3563*5113495bSYour Name 
3564*5113495bSYour Name /**
3565*5113495bSYour Name  * wmi_extract_pmf_bcn_protect_stats() - extract pmf bcn stats from event
3566*5113495bSYour Name  * @wmi_handle: wmi handle
3567*5113495bSYour Name  * @evt_buf: pointer to event buffer
3568*5113495bSYour Name  * @bcn_stats: Pointer to hold pmf bcn protect stats
3569*5113495bSYour Name  *
3570*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3571*5113495bSYour Name  */
3572*5113495bSYour Name QDF_STATUS
3573*5113495bSYour Name wmi_extract_pmf_bcn_protect_stats(wmi_unified_t wmi_handle, void *evt_buf,
3574*5113495bSYour Name 				  wmi_host_pmf_bcn_protect_stats *bcn_stats);
3575*5113495bSYour Name 
3576*5113495bSYour Name /**
3577*5113495bSYour Name  * wmi_extract_unit_test() - extract unit test from event
3578*5113495bSYour Name  * @wmi_handle: wmi handle
3579*5113495bSYour Name  * @evt_buf: pointer to event buffer
3580*5113495bSYour Name  * @unit_test: Pointer to hold unit-test header
3581*5113495bSYour Name  * @maxspace: The amount of space in evt_buf
3582*5113495bSYour Name  *
3583*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3584*5113495bSYour Name  */
3585*5113495bSYour Name QDF_STATUS
3586*5113495bSYour Name wmi_extract_unit_test(wmi_unified_t wmi_handle, void *evt_buf,
3587*5113495bSYour Name 		      wmi_unit_test_event *unit_test, uint32_t maxspace);
3588*5113495bSYour Name 
3589*5113495bSYour Name /**
3590*5113495bSYour Name  * wmi_extract_pdev_ext_stats() - extract extended pdev stats from event
3591*5113495bSYour Name  * @wmi_handle: wmi handle
3592*5113495bSYour Name  * @evt_buf: pointer to event buffer
3593*5113495bSYour Name  * @index: Index into extended pdev stats
3594*5113495bSYour Name  * @pdev_ext_stats: Pointer to hold extended pdev stats
3595*5113495bSYour Name  *
3596*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3597*5113495bSYour Name  */
3598*5113495bSYour Name QDF_STATUS
3599*5113495bSYour Name wmi_extract_pdev_ext_stats(wmi_unified_t wmi_handle, void *evt_buf,
3600*5113495bSYour Name 			   uint32_t index,
3601*5113495bSYour Name 			   wmi_host_pdev_ext_stats *pdev_ext_stats);
3602*5113495bSYour Name 
3603*5113495bSYour Name /**
3604*5113495bSYour Name  * wmi_extract_bss_chan_info_event() - extract bss channel information
3605*5113495bSYour Name  * from event
3606*5113495bSYour Name  * @wmi_handle: wmi handle
3607*5113495bSYour Name  * @evt_buf: pointer to event buffer
3608*5113495bSYour Name  * @bss_chan_info: Pointer to hold bss channel information
3609*5113495bSYour Name  *
3610*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3611*5113495bSYour Name  */
3612*5113495bSYour Name QDF_STATUS wmi_extract_bss_chan_info_event(
3613*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3614*5113495bSYour Name 		wmi_host_pdev_bss_chan_info_event *bss_chan_info);
3615*5113495bSYour Name 
3616*5113495bSYour Name /**
3617*5113495bSYour Name  * wmi_extract_tx_data_traffic_ctrl_ev() - extract tx data traffic control
3618*5113495bSYour Name  * from event
3619*5113495bSYour Name  * @wmi_handle: wmi handle
3620*5113495bSYour Name  * @evt_buf: pointer to event buffer
3621*5113495bSYour Name  * @ev: Pointer to hold data traffic control
3622*5113495bSYour Name  *
3623*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3624*5113495bSYour Name  */
3625*5113495bSYour Name QDF_STATUS
3626*5113495bSYour Name wmi_extract_tx_data_traffic_ctrl_ev(wmi_unified_t wmi_handle, void *evt_buf,
3627*5113495bSYour Name 				    wmi_host_tx_data_traffic_ctrl_event *ev);
3628*5113495bSYour Name 
3629*5113495bSYour Name /**
3630*5113495bSYour Name  * wmi_extract_vdev_extd_stats() - extract extended vdev stats from event
3631*5113495bSYour Name  * @wmi_handle: wmi handle
3632*5113495bSYour Name  * @evt_buf: pointer to event buffer
3633*5113495bSYour Name  * @index: Index into extended vdev stats
3634*5113495bSYour Name  * @vdev_extd_stats: Pointer to hold extended vdev stats
3635*5113495bSYour Name  *
3636*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3637*5113495bSYour Name  */
3638*5113495bSYour Name QDF_STATUS
3639*5113495bSYour Name wmi_extract_vdev_extd_stats(wmi_unified_t wmi_handle, void *evt_buf,
3640*5113495bSYour Name 			    uint32_t index,
3641*5113495bSYour Name 			    wmi_host_vdev_extd_stats *vdev_extd_stats);
3642*5113495bSYour Name 
3643*5113495bSYour Name /**
3644*5113495bSYour Name  * wmi_extract_bcn_stats() - extract beacon stats from event
3645*5113495bSYour Name  * @wmi_handle: wmi handle
3646*5113495bSYour Name  * @evt_buf: pointer to event buffer
3647*5113495bSYour Name  * @index: Index into beacon stats
3648*5113495bSYour Name  * @vdev_bcn_stats: Pointer to hold beacon stats
3649*5113495bSYour Name  *
3650*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3651*5113495bSYour Name  */
3652*5113495bSYour Name QDF_STATUS
3653*5113495bSYour Name wmi_extract_bcn_stats(wmi_unified_t wmi_handle, void *evt_buf,
3654*5113495bSYour Name 		      uint32_t index, wmi_host_bcn_stats *vdev_bcn_stats);
3655*5113495bSYour Name 
3656*5113495bSYour Name /**
3657*5113495bSYour Name  * wmi_extract_vdev_nac_rssi_stats() - extract NAC_RSSI stats from event
3658*5113495bSYour Name  * @wmi_handle: wmi handle
3659*5113495bSYour Name  * @evt_buf: pointer to event buffer
3660*5113495bSYour Name  * @vdev_nac_rssi_stats: Pointer to hold nac rssi stats
3661*5113495bSYour Name  *
3662*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3663*5113495bSYour Name  */
3664*5113495bSYour Name QDF_STATUS wmi_extract_vdev_nac_rssi_stats(
3665*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3666*5113495bSYour Name 		struct wmi_host_vdev_nac_rssi_event *vdev_nac_rssi_stats);
3667*5113495bSYour Name 
3668*5113495bSYour Name /**
3669*5113495bSYour Name  * wmi_extract_vdev_prb_fils_stats() - extract probe and fils vdev
3670*5113495bSYour Name  * stats from event
3671*5113495bSYour Name  * @wmi_handle: wmi handle
3672*5113495bSYour Name  * @evt_buf: pointer to event buffer
3673*5113495bSYour Name  * @index: Index into extended vdev stats
3674*5113495bSYour Name  * @vdev_prb_fils_stats: Pointer to hold probe and fils vdev stats
3675*5113495bSYour Name  *
3676*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3677*5113495bSYour Name  */
3678*5113495bSYour Name QDF_STATUS wmi_extract_vdev_prb_fils_stats(
3679*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
3680*5113495bSYour Name 		uint32_t index,
3681*5113495bSYour Name 		struct wmi_host_vdev_prb_fils_stats *vdev_prb_fils_stats);
3682*5113495bSYour Name 
3683*5113495bSYour Name /**
3684*5113495bSYour Name  * wmi_extract_peer_retry_stats() - extract peer retry stats from event
3685*5113495bSYour Name  * @wmi_handle: wmi handle
3686*5113495bSYour Name  * @evt_buf: pointer to event buffer
3687*5113495bSYour Name  * @index: Index into peer retry stats
3688*5113495bSYour Name  * @peer_retry_stats: Pointer to hold  peer retry stats
3689*5113495bSYour Name  *
3690*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3691*5113495bSYour Name  */
3692*5113495bSYour Name QDF_STATUS wmi_extract_peer_retry_stats(
3693*5113495bSYour Name 	wmi_unified_t wmi_handle, void *evt_buf,
3694*5113495bSYour Name 	uint32_t index, struct wmi_host_peer_retry_stats *peer_retry_stats);
3695*5113495bSYour Name 
3696*5113495bSYour Name /**
3697*5113495bSYour Name  * wmi_unified_send_power_dbg_cmd() - send power debug commands
3698*5113495bSYour Name  * @wmi_handle: wmi handle
3699*5113495bSYour Name  * @param: wmi power debug parameter
3700*5113495bSYour Name  *
3701*5113495bSYour Name  * Send WMI_POWER_DEBUG_CMDID parameters to fw.
3702*5113495bSYour Name  *
3703*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
3704*5113495bSYour Name  */
3705*5113495bSYour Name QDF_STATUS wmi_unified_send_power_dbg_cmd(wmi_unified_t wmi_handle,
3706*5113495bSYour Name 					  struct wmi_power_dbg_params *param);
3707*5113495bSYour Name 
3708*5113495bSYour Name /**
3709*5113495bSYour Name  * wmi_extract_sar_cap_service_ready_ext() - extract SAR cap from
3710*5113495bSYour Name  *					     FW service ready event
3711*5113495bSYour Name  * @wmi_handle: wmi handle
3712*5113495bSYour Name  * @evt_buf: event buffer received from firmware
3713*5113495bSYour Name  * @ext_param: extended target info
3714*5113495bSYour Name  *
3715*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3716*5113495bSYour Name  */
3717*5113495bSYour Name QDF_STATUS wmi_extract_sar_cap_service_ready_ext(
3718*5113495bSYour Name 			wmi_unified_t wmi_handle,
3719*5113495bSYour Name 			uint8_t *evt_buf,
3720*5113495bSYour Name 			struct wlan_psoc_host_service_ext_param *ext_param);
3721*5113495bSYour Name 
3722*5113495bSYour Name /**
3723*5113495bSYour Name  * wmi_unified_fw_test_cmd() - send fw test command to fw.
3724*5113495bSYour Name  * @wmi_handle: wmi handle
3725*5113495bSYour Name  * @wmi_fwtest: fw test command
3726*5113495bSYour Name  *
3727*5113495bSYour Name  * This function sends fw test command to fw.
3728*5113495bSYour Name  *
3729*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3730*5113495bSYour Name  */
3731*5113495bSYour Name QDF_STATUS wmi_unified_fw_test_cmd(wmi_unified_t wmi_handle,
3732*5113495bSYour Name 				   struct set_fwtest_params *wmi_fwtest);
3733*5113495bSYour Name 
3734*5113495bSYour Name /**
3735*5113495bSYour Name  * wmi_unified_wfa_test_cmd() - send wfa test command to fw.
3736*5113495bSYour Name  * @wmi_handle: wmi handle
3737*5113495bSYour Name  * @wmi_wfatest: wfa test param
3738*5113495bSYour Name  *
3739*5113495bSYour Name  * This function send wfa test command to fw.
3740*5113495bSYour Name  *
3741*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3742*5113495bSYour Name  */
3743*5113495bSYour Name QDF_STATUS wmi_unified_wfa_test_cmd(wmi_unified_t wmi_handle,
3744*5113495bSYour Name 				    struct set_wfatest_params *wmi_wfatest);
3745*5113495bSYour Name 
3746*5113495bSYour Name /**
3747*5113495bSYour Name  * wmi_unified_peer_rx_reorder_queue_setup_send() - send rx reorder queue
3748*5113495bSYour Name  *      setup command to fw
3749*5113495bSYour Name  * @wmi_handle: wmi handle
3750*5113495bSYour Name  * @param: Rx reorder queue setup parameters
3751*5113495bSYour Name  *
3752*5113495bSYour Name  * Return: QDF_STATUS for success and QDF_STATUS_E_FAILURE for failure
3753*5113495bSYour Name  */
3754*5113495bSYour Name QDF_STATUS wmi_unified_peer_rx_reorder_queue_setup_send(
3755*5113495bSYour Name 		wmi_unified_t wmi_handle,
3756*5113495bSYour Name 		struct rx_reorder_queue_setup_params *param);
3757*5113495bSYour Name 
3758*5113495bSYour Name /**
3759*5113495bSYour Name  * wmi_unified_peer_multi_rx_reorder_queue_setup_send() - send
3760*5113495bSYour Name  *        multi rx reorder queue setup command to fw
3761*5113495bSYour Name  * @wmi_handle: wmi handle
3762*5113495bSYour Name  * @param: Multi rx reorder queue setup parameters
3763*5113495bSYour Name  *
3764*5113495bSYour Name  * Return: QDF_STATUS for success and QDF_STATUS_E_FAILURE for failure
3765*5113495bSYour Name  */
3766*5113495bSYour Name QDF_STATUS wmi_unified_peer_multi_rx_reorder_queue_setup_send(
3767*5113495bSYour Name 		wmi_unified_t wmi_handle,
3768*5113495bSYour Name 		struct multi_rx_reorder_queue_setup_params *param);
3769*5113495bSYour Name 
3770*5113495bSYour Name /**
3771*5113495bSYour Name  * wmi_unified_peer_rx_reorder_queue_remove_send() - send rx reorder queue
3772*5113495bSYour Name  *      remove command to fw
3773*5113495bSYour Name  * @wmi_handle: wmi handle
3774*5113495bSYour Name  * @param: Rx reorder queue remove parameters
3775*5113495bSYour Name  *
3776*5113495bSYour Name  * Return: QDF_STATUS for success and QDF_STATUS_E_FAILURE for failure
3777*5113495bSYour Name  */
3778*5113495bSYour Name QDF_STATUS wmi_unified_peer_rx_reorder_queue_remove_send(
3779*5113495bSYour Name 		wmi_unified_t wmi_handle,
3780*5113495bSYour Name 		struct rx_reorder_queue_remove_params *param);
3781*5113495bSYour Name 
3782*5113495bSYour Name /**
3783*5113495bSYour Name  * wmi_extract_service_ready_ext() - extract extended service ready
3784*5113495bSYour Name  * @wmi_handle: wmi handle
3785*5113495bSYour Name  * @evt_buf: pointer to event buffer
3786*5113495bSYour Name  * @param: wmi power debug parameter
3787*5113495bSYour Name  *
3788*5113495bSYour Name  *
3789*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
3790*5113495bSYour Name  */
3791*5113495bSYour Name QDF_STATUS wmi_extract_service_ready_ext(
3792*5113495bSYour Name 		wmi_unified_t wmi_handle, uint8_t *evt_buf,
3793*5113495bSYour Name 		struct wlan_psoc_host_service_ext_param *param);
3794*5113495bSYour Name 
3795*5113495bSYour Name /**
3796*5113495bSYour Name  * wmi_extract_service_ready_ext2() - extract extended2 service ready
3797*5113495bSYour Name  * @wmi_handle: wmi handle
3798*5113495bSYour Name  * @evt_buf: pointer to event buffer
3799*5113495bSYour Name  * @param: wmi ext2 base parameters
3800*5113495bSYour Name  *
3801*5113495bSYour Name  *
3802*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
3803*5113495bSYour Name  */
3804*5113495bSYour Name QDF_STATUS wmi_extract_service_ready_ext2(
3805*5113495bSYour Name 		struct wmi_unified *wmi_handle, uint8_t *evt_buf,
3806*5113495bSYour Name 		struct wlan_psoc_host_service_ext2_param *param);
3807*5113495bSYour Name 
3808*5113495bSYour Name /**
3809*5113495bSYour Name  * wmi_extract_dbs_or_sbs_cap_service_ready_ext2() - extract dbs_or_sbs cap from
3810*5113495bSYour Name  *                                                   service ready ext 2
3811*5113495bSYour Name  *
3812*5113495bSYour Name  * @wmi_handle: wmi handle
3813*5113495bSYour Name  * @evt_buf: pointer to event buffer
3814*5113495bSYour Name  * @sbs_lower_band_end_freq: If sbs_lower_band_end_freq is set to non-zero,
3815*5113495bSYour Name  *                           it indicates async SBS mode is supported, and
3816*5113495bSYour Name  *                           lower-band/higher band to MAC mapping is
3817*5113495bSYour Name  *                           switch-able. unit: mhz. examples 5180, 5320
3818*5113495bSYour Name  *
3819*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
3820*5113495bSYour Name  */
3821*5113495bSYour Name QDF_STATUS wmi_extract_dbs_or_sbs_cap_service_ready_ext2(
3822*5113495bSYour Name 			wmi_unified_t wmi_handle,
3823*5113495bSYour Name 			uint8_t *evt_buf, uint32_t *sbs_lower_band_end_freq);
3824*5113495bSYour Name 
3825*5113495bSYour Name /**
3826*5113495bSYour Name  * wmi_extract_hw_mode_cap_service_ready_ext() -
3827*5113495bSYour Name  *       extract HW mode cap from service ready event
3828*5113495bSYour Name  * @wmi_handle: wmi handle
3829*5113495bSYour Name  * @evt_buf: pointer to event buffer
3830*5113495bSYour Name  * @hw_mode_idx: hw mode idx should be less than num_mode
3831*5113495bSYour Name  * @param: Pointer to hold evt buf
3832*5113495bSYour Name  *
3833*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3834*5113495bSYour Name  */
3835*5113495bSYour Name QDF_STATUS wmi_extract_hw_mode_cap_service_ready_ext(
3836*5113495bSYour Name 			wmi_unified_t wmi_handle,
3837*5113495bSYour Name 			uint8_t *evt_buf, uint8_t hw_mode_idx,
3838*5113495bSYour Name 			struct wlan_psoc_host_hw_mode_caps *param);
3839*5113495bSYour Name 
3840*5113495bSYour Name /**
3841*5113495bSYour Name  * wmi_extract_mac_phy_cap_service_ready_ext() -
3842*5113495bSYour Name  *       extract MAC phy cap from service ready event
3843*5113495bSYour Name  * @wmi_handle: wmi handle
3844*5113495bSYour Name  * @evt_buf: pointer to event buffer
3845*5113495bSYour Name  * @hw_mode_id: hw mode id of hw_mode_caps
3846*5113495bSYour Name  * @phy_id: phy_id within hw_mode_cap
3847*5113495bSYour Name  * @param: pointer to mac phy caps structure to hold the values from event
3848*5113495bSYour Name  *
3849*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3850*5113495bSYour Name  */
3851*5113495bSYour Name QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext(
3852*5113495bSYour Name 			wmi_unified_t wmi_handle,
3853*5113495bSYour Name 			uint8_t *evt_buf,
3854*5113495bSYour Name 			uint8_t hw_mode_id,
3855*5113495bSYour Name 			uint8_t phy_id,
3856*5113495bSYour Name 			struct wlan_psoc_host_mac_phy_caps *param);
3857*5113495bSYour Name 
3858*5113495bSYour Name /**
3859*5113495bSYour Name  * wmi_extract_mac_phy_cap_service_ready_ext2() - Extract MAC phy cap from
3860*5113495bSYour Name  * service ready ext2 event.
3861*5113495bSYour Name  * @wmi_handle: wmi handle
3862*5113495bSYour Name  * @evt_buf: pointer to event buffer
3863*5113495bSYour Name  * @hw_mode_id: hw mode id of hw_mode_caps
3864*5113495bSYour Name  * @phy_id: phy_id within hw_mode_cap
3865*5113495bSYour Name  * @phy_idx: index to hw_mode_cap for the given hw_mode_id and phy_id
3866*5113495bSYour Name  * @mac_phy_cap: Pointer to mac_phy_cap_ext2 structure
3867*5113495bSYour Name  *
3868*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3869*5113495bSYour Name  */
3870*5113495bSYour Name QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext2(
3871*5113495bSYour Name 			wmi_unified_t wmi_handle,
3872*5113495bSYour Name 			uint8_t *evt_buf,
3873*5113495bSYour Name 			uint8_t hw_mode_id,
3874*5113495bSYour Name 			uint8_t phy_id,
3875*5113495bSYour Name 			uint8_t phy_idx,
3876*5113495bSYour Name 			struct wlan_psoc_host_mac_phy_caps_ext2 *mac_phy_cap);
3877*5113495bSYour Name 
3878*5113495bSYour Name /**
3879*5113495bSYour Name  * wmi_extract_reg_cap_service_ready_ext() -
3880*5113495bSYour Name  *       extract REG cap from service ready event
3881*5113495bSYour Name  * @wmi_handle: wmi handle
3882*5113495bSYour Name  * @evt_buf: pointer to event buffer
3883*5113495bSYour Name  * @phy_idx: phy idx should be less than num_mode
3884*5113495bSYour Name  * @param: Pointer to hold evt buf
3885*5113495bSYour Name  *
3886*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
3887*5113495bSYour Name  */
3888*5113495bSYour Name QDF_STATUS
3889*5113495bSYour Name wmi_extract_reg_cap_service_ready_ext(
3890*5113495bSYour Name 			wmi_unified_t wmi_handle,
3891*5113495bSYour Name 			uint8_t *evt_buf, uint8_t phy_idx,
3892*5113495bSYour Name 			struct wlan_psoc_host_hal_reg_capabilities_ext *param);
3893*5113495bSYour Name 
3894*5113495bSYour Name /**
3895*5113495bSYour Name  * wmi_extract_dbr_ring_cap_service_ready_ext: Extract direct buffer rx
3896*5113495bSYour Name  *                                             capability received through
3897*5113495bSYour Name  *                                             extended service ready event
3898*5113495bSYour Name  * @wmi_handle: WMI handle
3899*5113495bSYour Name  * @evt_buf: Event buffer
3900*5113495bSYour Name  * @idx: Index of the module for which capability is received
3901*5113495bSYour Name  * @param: Pointer to direct buffer rx ring cap struct
3902*5113495bSYour Name  *
3903*5113495bSYour Name  * Return: QDF status of operation
3904*5113495bSYour Name  */
3905*5113495bSYour Name QDF_STATUS wmi_extract_dbr_ring_cap_service_ready_ext(
3906*5113495bSYour Name 			wmi_unified_t wmi_handle,
3907*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
3908*5113495bSYour Name 			struct wlan_psoc_host_dbr_ring_caps *param);
3909*5113495bSYour Name 
3910*5113495bSYour Name /**
3911*5113495bSYour Name  * wmi_extract_dbr_ring_cap_service_ready_ext2: Extract direct buffer rx
3912*5113495bSYour Name  *                                              capability received through
3913*5113495bSYour Name  *                                              extended service ready2 event
3914*5113495bSYour Name  * @wmi_handle: WMI handle
3915*5113495bSYour Name  * @evt_buf: Event buffer
3916*5113495bSYour Name  * @idx: Index of the module for which capability is received
3917*5113495bSYour Name  * @param: Pointer to direct buffer rx ring cap struct
3918*5113495bSYour Name  *
3919*5113495bSYour Name  * Return: QDF status of operation
3920*5113495bSYour Name  */
3921*5113495bSYour Name QDF_STATUS wmi_extract_dbr_ring_cap_service_ready_ext2(
3922*5113495bSYour Name 			wmi_unified_t wmi_handle,
3923*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
3924*5113495bSYour Name 			struct wlan_psoc_host_dbr_ring_caps *param);
3925*5113495bSYour Name 
3926*5113495bSYour Name /**
3927*5113495bSYour Name  * wmi_extract_scan_radio_cap_service_ready_ext2: Extract scan radio capability
3928*5113495bSYour Name  * received through extended service ready2 event
3929*5113495bSYour Name  * @wmi_handle: WMI handle
3930*5113495bSYour Name  * @evt_buf: Event buffer
3931*5113495bSYour Name  * @idx: Index of the module for which capability is received
3932*5113495bSYour Name  * @param: Pointer to scan radio cap struct
3933*5113495bSYour Name  *
3934*5113495bSYour Name  * Return: QDF status of operation
3935*5113495bSYour Name  */
3936*5113495bSYour Name QDF_STATUS wmi_extract_scan_radio_cap_service_ready_ext2(
3937*5113495bSYour Name 			wmi_unified_t wmi_handle,
3938*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
3939*5113495bSYour Name 			struct wlan_psoc_host_scan_radio_caps *param);
3940*5113495bSYour Name 
3941*5113495bSYour Name /**
3942*5113495bSYour Name  * wmi_extract_msdu_idx_qtype_map_service_ready_ext2: Extract HTT MSDU index
3943*5113495bSYour Name  *                                                    to qtype map received
3944*5113495bSYour Name  *                                                    through extended service
3945*5113495bSYour Name  *                                                    ready2 event
3946*5113495bSYour Name  * @wmi_handle: WMI handle
3947*5113495bSYour Name  * @evt_buf: Event buffer
3948*5113495bSYour Name  * @idx: HTT MSDU index in array
3949*5113495bSYour Name  * @msdu_qtype: MSDU Qtype pointer
3950*5113495bSYour Name  *
3951*5113495bSYour Name  * Return: QDF status of operation
3952*5113495bSYour Name  */
3953*5113495bSYour Name QDF_STATUS wmi_extract_msdu_idx_qtype_map_service_ready_ext2(
3954*5113495bSYour Name 			wmi_unified_t wmi_handle,
3955*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
3956*5113495bSYour Name 			uint8_t *msdu_qtype);
3957*5113495bSYour Name 
3958*5113495bSYour Name /**
3959*5113495bSYour Name  * wmi_extract_sw_cal_ver_ext2: Extract sw cal version received through
3960*5113495bSYour Name  *                              extended service ready2 event
3961*5113495bSYour Name  * @wmi_handle: WMI handle
3962*5113495bSYour Name  * @event: Event buffer
3963*5113495bSYour Name  * @cal: Pointer to sw cal ver struct
3964*5113495bSYour Name  *
3965*5113495bSYour Name  * Return: QDF status of operation
3966*5113495bSYour Name  */
3967*5113495bSYour Name QDF_STATUS wmi_extract_sw_cal_ver_ext2(wmi_unified_t wmi_handle,
3968*5113495bSYour Name 				       uint8_t *event,
3969*5113495bSYour Name 				       struct wmi_host_sw_cal_ver *cal);
3970*5113495bSYour Name 
3971*5113495bSYour Name /**
3972*5113495bSYour Name  * wmi_extract_spectral_scaling_params_service_ready_ext: Extract Spectral
3973*5113495bSYour Name  *                                             scaling params received through
3974*5113495bSYour Name  *                                             extended service ready event
3975*5113495bSYour Name  * @wmi_handle: WMI handle
3976*5113495bSYour Name  * @evt_buf: Event buffer
3977*5113495bSYour Name  * @idx: Index
3978*5113495bSYour Name  * @param: Pointer to Spectral scaling params
3979*5113495bSYour Name  *
3980*5113495bSYour Name  * Return: QDF status of operation
3981*5113495bSYour Name  */
3982*5113495bSYour Name QDF_STATUS wmi_extract_spectral_scaling_params_service_ready_ext(
3983*5113495bSYour Name 			wmi_unified_t wmi_handle,
3984*5113495bSYour Name 			uint8_t *evt_buf, uint8_t idx,
3985*5113495bSYour Name 			struct wlan_psoc_host_spectral_scaling_params *param);
3986*5113495bSYour Name 
3987*5113495bSYour Name #ifdef WLAN_RCC_ENHANCED_AOA_SUPPORT
3988*5113495bSYour Name /**
3989*5113495bSYour Name  * wmi_extract_aoa_caps_service_ready_ext2: Extract AoA capabilities received
3990*5113495bSYour Name  *                                          through extended service ready event
3991*5113495bSYour Name  * @wmi_handle: WMI handle
3992*5113495bSYour Name  * @evt_buf: Event buffer
3993*5113495bSYour Name  * @aoa_cap: Pointer to aoa cap
3994*5113495bSYour Name  *
3995*5113495bSYour Name  * Return: QDF status of operation
3996*5113495bSYour Name  */
3997*5113495bSYour Name QDF_STATUS wmi_extract_aoa_caps_service_ready_ext2(
3998*5113495bSYour Name 			wmi_unified_t wmi_handle, uint8_t *evt_buf,
3999*5113495bSYour Name 			struct wlan_psoc_host_rcc_enh_aoa_caps_ext2 *aoa_cap);
4000*5113495bSYour Name #endif /* WLAN_RCC_ENHANCED_AOA_SUPPORT */
4001*5113495bSYour Name 
4002*5113495bSYour Name /**
4003*5113495bSYour Name  * wmi_extract_pdev_utf_event() -
4004*5113495bSYour Name  *       extract UTF data from pdev utf event
4005*5113495bSYour Name  * @wmi_handle: wmi handle
4006*5113495bSYour Name  * @evt_buf: pointer to event buffer
4007*5113495bSYour Name  * @param: Pointer to hold evt buf
4008*5113495bSYour Name  *
4009*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
4010*5113495bSYour Name  */
4011*5113495bSYour Name QDF_STATUS wmi_extract_pdev_utf_event(wmi_unified_t wmi_handle,
4012*5113495bSYour Name 				      uint8_t *evt_buf,
4013*5113495bSYour Name 				      struct wmi_host_pdev_utf_event *param);
4014*5113495bSYour Name 
4015*5113495bSYour Name /**
4016*5113495bSYour Name  * wmi_extract_pdev_qvit_event() -
4017*5113495bSYour Name  *       extract UTF data from pdev qvit event
4018*5113495bSYour Name  * @wmi_handle: wmi handle
4019*5113495bSYour Name  * @evt_buf: pointer to event buffer
4020*5113495bSYour Name  * @param: Pointer to hold evt buf
4021*5113495bSYour Name  *
4022*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
4023*5113495bSYour Name  */
4024*5113495bSYour Name QDF_STATUS wmi_extract_pdev_qvit_event(wmi_unified_t wmi_handle,
4025*5113495bSYour Name 				       uint8_t *evt_buf,
4026*5113495bSYour Name 				       struct wmi_host_pdev_qvit_event *param);
4027*5113495bSYour Name 
4028*5113495bSYour Name #ifdef WLAN_SUPPORT_RF_CHARACTERIZATION
4029*5113495bSYour Name /**
4030*5113495bSYour Name  * wmi_extract_num_rf_characterization_entries - Extract number of RF
4031*5113495bSYour Name  * characterization metrics received from the RF characterization event.
4032*5113495bSYour Name  * @wmi_hdl: WMI handle
4033*5113495bSYour Name  * @evt_buf: Event buffer
4034*5113495bSYour Name  * @num_rf_characterization_entries: Number of RF characterization metrics
4035*5113495bSYour Name  *
4036*5113495bSYour Name  * Return: QDF status of operation
4037*5113495bSYour Name  */
4038*5113495bSYour Name QDF_STATUS wmi_extract_num_rf_characterization_entries(wmi_unified_t wmi_hdl,
4039*5113495bSYour Name 				uint8_t *evt_buf,
4040*5113495bSYour Name 				uint32_t *num_rf_characterization_entries);
4041*5113495bSYour Name 
4042*5113495bSYour Name /**
4043*5113495bSYour Name  * wmi_extract_rf_characterization_entries - Extract RF characterization
4044*5113495bSYour Name  *			metrics received from the RF characterization event.
4045*5113495bSYour Name  * @wmi_hdl: WMI handle
4046*5113495bSYour Name  * @evt_buf: Event buffer
4047*5113495bSYour Name  * @num_rf_characterization_entries: Number of RF characterization metrics
4048*5113495bSYour Name  * @rf_characterization_entries: Pointer to RF characterization metrics
4049*5113495bSYour Name  *
4050*5113495bSYour Name  * Return: QDF status of operation
4051*5113495bSYour Name  */
4052*5113495bSYour Name QDF_STATUS wmi_extract_rf_characterization_entries(wmi_unified_t wmi_hdl,
4053*5113495bSYour Name 	uint8_t *evt_buf,
4054*5113495bSYour Name 	uint32_t num_rf_characterization_entries,
4055*5113495bSYour Name 	struct wmi_host_rf_characterization_event_param *rf_characterization_entries);
4056*5113495bSYour Name #endif
4057*5113495bSYour Name 
4058*5113495bSYour Name /**
4059*5113495bSYour Name  * wmi_extract_chainmask_tables() - extract chain mask tables
4060*5113495bSYour Name  * @wmi_handle: wmi handle
4061*5113495bSYour Name  * @evt_buf: pointer to event buffer.
4062*5113495bSYour Name  * @chainmask_table: pointer to struct wlan_psoc_host_chainmask_table
4063*5113495bSYour Name  *
4064*5113495bSYour Name  *
4065*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
4066*5113495bSYour Name  */
4067*5113495bSYour Name QDF_STATUS wmi_extract_chainmask_tables(
4068*5113495bSYour Name 		wmi_unified_t wmi_handle, uint8_t *evt_buf,
4069*5113495bSYour Name 		struct wlan_psoc_host_chainmask_table *chainmask_table);
4070*5113495bSYour Name 
4071*5113495bSYour Name /**
4072*5113495bSYour Name  * wmi_unified_dfs_phyerr_offload_en_cmd() - enable dfs phyerr offload
4073*5113495bSYour Name  * @wmi_handle: wmi handle
4074*5113495bSYour Name  * @pdev_id: pdev id
4075*5113495bSYour Name  *
4076*5113495bSYour Name  * Return: QDF_STATUS
4077*5113495bSYour Name  */
4078*5113495bSYour Name QDF_STATUS wmi_unified_dfs_phyerr_offload_en_cmd(wmi_unified_t wmi_handle,
4079*5113495bSYour Name 						 uint32_t pdev_id);
4080*5113495bSYour Name 
4081*5113495bSYour Name /**
4082*5113495bSYour Name  * wmi_unified_dfs_phyerr_offload_dis_cmd() - disable dfs phyerr offload
4083*5113495bSYour Name  * @wmi_handle: wmi handle
4084*5113495bSYour Name  * @pdev_id: pdev id
4085*5113495bSYour Name  *
4086*5113495bSYour Name  * Return: QDF_STATUS
4087*5113495bSYour Name  */
4088*5113495bSYour Name QDF_STATUS wmi_unified_dfs_phyerr_offload_dis_cmd(wmi_unified_t wmi_handle,
4089*5113495bSYour Name 						  uint32_t pdev_id);
4090*5113495bSYour Name 
4091*5113495bSYour Name #ifdef QCA_SUPPORT_AGILE_DFS
4092*5113495bSYour Name /**
4093*5113495bSYour Name  * wmi_unified_send_vdev_adfs_ch_cfg_cmd() - send adfs channel config command
4094*5113495bSYour Name  * @wmi_handle: wmi handle
4095*5113495bSYour Name  * @param: adfs channel config params
4096*5113495bSYour Name  *
4097*5113495bSYour Name  * Return: QDF_STATUS
4098*5113495bSYour Name  */
4099*5113495bSYour Name QDF_STATUS
4100*5113495bSYour Name wmi_unified_send_vdev_adfs_ch_cfg_cmd(wmi_unified_t wmi_handle,
4101*5113495bSYour Name 				      struct vdev_adfs_ch_cfg_params *param);
4102*5113495bSYour Name 
4103*5113495bSYour Name /**
4104*5113495bSYour Name  * wmi_unified_send_vdev_adfs_ocac_abort_cmd() - send adfs o-cac abort command
4105*5113495bSYour Name  * @wmi_handle: wmi handle
4106*5113495bSYour Name  * @param: adfs channel o-cac abort params
4107*5113495bSYour Name  *
4108*5113495bSYour Name  * Return: QDF_STATUS
4109*5113495bSYour Name  */
4110*5113495bSYour Name QDF_STATUS
4111*5113495bSYour Name wmi_unified_send_vdev_adfs_ocac_abort_cmd(wmi_unified_t wmi_handle,
4112*5113495bSYour Name 					  struct vdev_adfs_abort_params *param);
4113*5113495bSYour Name #endif
4114*5113495bSYour Name 
4115*5113495bSYour Name /**
4116*5113495bSYour Name  *  wmi_unified_set_country_cmd_send() - WMI set country function
4117*5113495bSYour Name  *  @wmi_handle: handle to WMI.
4118*5113495bSYour Name  *  @param: pointer to hold set country cmd parameter
4119*5113495bSYour Name  *
4120*5113495bSYour Name  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4121*5113495bSYour Name  */
4122*5113495bSYour Name QDF_STATUS wmi_unified_set_country_cmd_send(wmi_unified_t wmi_handle,
4123*5113495bSYour Name 					    struct set_country *param);
4124*5113495bSYour Name 
4125*5113495bSYour Name #ifdef WLAN_FEATURE_ACTION_OUI
4126*5113495bSYour Name /**
4127*5113495bSYour Name  * wmi_unified_send_action_oui_cmd() - send action oui cmd to fw
4128*5113495bSYour Name  * @wmi_handle: wma handle
4129*5113495bSYour Name  * @req: wmi action oui message to be send
4130*5113495bSYour Name  *
4131*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4132*5113495bSYour Name  */
4133*5113495bSYour Name QDF_STATUS
4134*5113495bSYour Name wmi_unified_send_action_oui_cmd(wmi_unified_t wmi_handle,
4135*5113495bSYour Name 				struct action_oui_request *req);
4136*5113495bSYour Name #endif /* WLAN_FEATURE_ACTION_OUI */
4137*5113495bSYour Name 
4138*5113495bSYour Name /**
4139*5113495bSYour Name  * wmi_unified_send_request_get_rcpi_cmd() - command to request rcpi value
4140*5113495bSYour Name  * @wmi_handle: wma handle
4141*5113495bSYour Name  * @get_rcpi_param: rcpi params
4142*5113495bSYour Name  *
4143*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4144*5113495bSYour Name  */
4145*5113495bSYour Name QDF_STATUS
4146*5113495bSYour Name wmi_unified_send_request_get_rcpi_cmd(wmi_unified_t wmi_handle,
4147*5113495bSYour Name 				      struct rcpi_req *get_rcpi_param);
4148*5113495bSYour Name 
4149*5113495bSYour Name /**
4150*5113495bSYour Name  * wmi_extract_rcpi_response_event - api to extract RCPI event params
4151*5113495bSYour Name  * @wmi_handle: wma handle
4152*5113495bSYour Name  * @evt_buf: pointer to event buffer
4153*5113495bSYour Name  * @res: pointer to hold rcpi response from firmware
4154*5113495bSYour Name  *
4155*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for successful event parse
4156*5113495bSYour Name  *         else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
4157*5113495bSYour Name  */
4158*5113495bSYour Name QDF_STATUS
4159*5113495bSYour Name wmi_extract_rcpi_response_event(wmi_unified_t wmi_handle, void *evt_buf,
4160*5113495bSYour Name 				struct rcpi_res *res);
4161*5113495bSYour Name 
4162*5113495bSYour Name #ifdef WMI_INTERFACE_EVENT_LOGGING
4163*5113495bSYour Name void wmi_print_cmd_log(wmi_unified_t wmi, uint32_t count,
4164*5113495bSYour Name 		       qdf_abstract_print *print, void *print_priv);
4165*5113495bSYour Name 
4166*5113495bSYour Name void wmi_print_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count,
4167*5113495bSYour Name 			      qdf_abstract_print *print, void *print_priv);
4168*5113495bSYour Name 
4169*5113495bSYour Name void wmi_print_mgmt_cmd_log(wmi_unified_t wmi, uint32_t count,
4170*5113495bSYour Name 			    qdf_abstract_print *print, void *print_priv);
4171*5113495bSYour Name 
4172*5113495bSYour Name void wmi_print_mgmt_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count,
4173*5113495bSYour Name 				   qdf_abstract_print *print, void *print_priv);
4174*5113495bSYour Name 
4175*5113495bSYour Name void wmi_print_event_log(wmi_unified_t wmi, uint32_t count,
4176*5113495bSYour Name 			 qdf_abstract_print *print, void *print_priv);
4177*5113495bSYour Name 
4178*5113495bSYour Name void wmi_print_rx_event_log(wmi_unified_t wmi, uint32_t count,
4179*5113495bSYour Name 			    qdf_abstract_print *print, void *print_priv);
4180*5113495bSYour Name 
4181*5113495bSYour Name void wmi_print_mgmt_event_log(wmi_unified_t wmi, uint32_t count,
4182*5113495bSYour Name 			      qdf_abstract_print *print, void *print_priv);
4183*5113495bSYour Name 
4184*5113495bSYour Name #endif /* WMI_INTERFACE_EVENT_LOGGING */
4185*5113495bSYour Name 
4186*5113495bSYour Name /**
4187*5113495bSYour Name  * wmi_unified_send_dump_wds_table_cmd() - WMI function to get list of
4188*5113495bSYour Name  *  wds entries from FW
4189*5113495bSYour Name  * @wmi_handle: wmi handle
4190*5113495bSYour Name  *
4191*5113495bSYour Name  * Send WMI_PDEV_WDS_ENTRY_LIST_CMDID parameters to fw.
4192*5113495bSYour Name  *
4193*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
4194*5113495bSYour Name  */
4195*5113495bSYour Name QDF_STATUS wmi_unified_send_dump_wds_table_cmd(wmi_unified_t wmi_handle);
4196*5113495bSYour Name 
4197*5113495bSYour Name /**
4198*5113495bSYour Name  * wmi_extract_wds_entry - api to extract wds entry
4199*5113495bSYour Name  * @wmi_handle: wmi handle
4200*5113495bSYour Name  * @evt_buf: pointer to event buffer
4201*5113495bSYour Name  * @wds_entry: wds entry
4202*5113495bSYour Name  * @idx: index to point wds entry in event buffer
4203*5113495bSYour Name  *
4204*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for successful event parse
4205*5113495bSYour Name  *         else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
4206*5113495bSYour Name  */
4207*5113495bSYour Name QDF_STATUS
4208*5113495bSYour Name wmi_extract_wds_entry(wmi_unified_t wmi_handle, uint8_t *evt_buf,
4209*5113495bSYour Name 		      struct wdsentry *wds_entry, u_int32_t idx);
4210*5113495bSYour Name 
4211*5113495bSYour Name /**
4212*5113495bSYour Name  * wmi_unified_send_obss_detection_cfg_cmd() - WMI function to send obss
4213*5113495bSYour Name  *  detection configuration to FW.
4214*5113495bSYour Name  * @wmi_handle: wmi handle
4215*5113495bSYour Name  * @cfg: obss detection configuration
4216*5113495bSYour Name  *
4217*5113495bSYour Name  * Send WMI_SAP_OBSS_DETECTION_CFG_CMDID parameters to fw.
4218*5113495bSYour Name  *
4219*5113495bSYour Name  * Return: QDF_STATUS
4220*5113495bSYour Name  */
4221*5113495bSYour Name 
4222*5113495bSYour Name QDF_STATUS wmi_unified_send_obss_detection_cfg_cmd(
4223*5113495bSYour Name 		wmi_unified_t wmi_handle,
4224*5113495bSYour Name 		struct wmi_obss_detection_cfg_param *cfg);
4225*5113495bSYour Name 
4226*5113495bSYour Name /**
4227*5113495bSYour Name  * wmi_unified_extract_obss_detection_info() - WMI function to extract obss
4228*5113495bSYour Name  *  detection info from FW.
4229*5113495bSYour Name  * @wmi_handle: wmi handle
4230*5113495bSYour Name  * @data: event data from firmware
4231*5113495bSYour Name  * @info: Pointer to hold obss detection info
4232*5113495bSYour Name  *
4233*5113495bSYour Name  * This function is used to extract obss info from firmware.
4234*5113495bSYour Name  *
4235*5113495bSYour Name  * Return: QDF_STATUS
4236*5113495bSYour Name  */
4237*5113495bSYour Name 
4238*5113495bSYour Name QDF_STATUS wmi_unified_extract_obss_detection_info(
4239*5113495bSYour Name 			wmi_unified_t wmi_handle,
4240*5113495bSYour Name 			uint8_t *data,
4241*5113495bSYour Name 			struct wmi_obss_detect_info *info);
4242*5113495bSYour Name 
4243*5113495bSYour Name #ifdef WLAN_SUPPORT_GREEN_AP
4244*5113495bSYour Name QDF_STATUS wmi_extract_green_ap_egap_status_info(
4245*5113495bSYour Name 	wmi_unified_t wmi_hdl, uint8_t *evt_buf,
4246*5113495bSYour Name 	struct wlan_green_ap_egap_status_info *egap_status_info_params);
4247*5113495bSYour Name #endif
4248*5113495bSYour Name 
4249*5113495bSYour Name #ifdef WLAN_SUPPORT_GAP_LL_PS_MODE
4250*5113495bSYour Name /**
4251*5113495bSYour Name  * wmi_unified_extract_green_ap_ll_ps_param() - API to extract Green AP low
4252*5113495bSYour Name  * latency power save event parameter
4253*5113495bSYour Name  * @wmi_handle: wmi handle
4254*5113495bSYour Name  * @evt_buf: pointer to the event buffer
4255*5113495bSYour Name  * @green_ap_ll_ps_event_param: Event parameter
4256*5113495bSYour Name  *
4257*5113495bSYour Name  * Return: QDF_STATUS
4258*5113495bSYour Name  */
4259*5113495bSYour Name QDF_STATUS wmi_unified_extract_green_ap_ll_ps_param(
4260*5113495bSYour Name 	wmi_unified_t wmi_handle, uint8_t *evt_buf,
4261*5113495bSYour Name 	struct wlan_green_ap_ll_ps_event_param *green_ap_ll_ps_event_param);
4262*5113495bSYour Name #endif
4263*5113495bSYour Name 
4264*5113495bSYour Name /**
4265*5113495bSYour Name  * wmi_unified_send_roam_scan_stats_cmd() - Wrapper to request roam scan stats
4266*5113495bSYour Name  * @wmi_handle: wmi handle
4267*5113495bSYour Name  * @params: request params
4268*5113495bSYour Name  *
4269*5113495bSYour Name  * This function is used to send the roam scan stats request command to
4270*5113495bSYour Name  * firmware.
4271*5113495bSYour Name  *
4272*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4273*5113495bSYour Name  */
4274*5113495bSYour Name QDF_STATUS
4275*5113495bSYour Name wmi_unified_send_roam_scan_stats_cmd(wmi_unified_t wmi_handle,
4276*5113495bSYour Name 				     struct wmi_roam_scan_stats_req *params);
4277*5113495bSYour Name 
4278*5113495bSYour Name /**
4279*5113495bSYour Name  * wmi_extract_roam_scan_stats_res_evt() - API to extract roam scan stats res
4280*5113495bSYour Name  * @wmi: wmi handle
4281*5113495bSYour Name  * @evt_buf: pointer to the event buffer
4282*5113495bSYour Name  * @vdev_id: output pointer to hold vdev id
4283*5113495bSYour Name  * @res_param: output pointer to hold extracted memory
4284*5113495bSYour Name  *
4285*5113495bSYour Name  * Return: QDF_STATUS
4286*5113495bSYour Name  */
4287*5113495bSYour Name QDF_STATUS
4288*5113495bSYour Name wmi_extract_roam_scan_stats_res_evt(wmi_unified_t wmi, void *evt_buf,
4289*5113495bSYour Name 				    uint32_t *vdev_id,
4290*5113495bSYour Name 				    struct wmi_roam_scan_stats_res **res_param);
4291*5113495bSYour Name 
4292*5113495bSYour Name /**
4293*5113495bSYour Name  * wmi_extract_offload_bcn_tx_status_evt() - API to extract bcn tx status event
4294*5113495bSYour Name  * @wmi_handle: wmi handle
4295*5113495bSYour Name  * @evt_buf: pointer to the event buffer
4296*5113495bSYour Name  * @vdev_id: output pointer to hold vdev id
4297*5113495bSYour Name  * @tx_status: output pointer to hold bcn tx status
4298*5113495bSYour Name  *
4299*5113495bSYour Name  * Return: QDF_STATUS
4300*5113495bSYour Name  */
4301*5113495bSYour Name QDF_STATUS
4302*5113495bSYour Name wmi_extract_offload_bcn_tx_status_evt(wmi_unified_t wmi_handle, void *evt_buf,
4303*5113495bSYour Name 				      uint32_t *vdev_id, uint32_t *tx_status);
4304*5113495bSYour Name 
4305*5113495bSYour Name /**
4306*5113495bSYour Name  * wmi_get_ch_width_from_phy_mode() - convert phy mode to channel width
4307*5113495bSYour Name  * @wmi_handle: wmi handle
4308*5113495bSYour Name  * @phymode: phy mode
4309*5113495bSYour Name  *
4310*5113495bSYour Name  * Return: wmi channel width
4311*5113495bSYour Name  */
4312*5113495bSYour Name wmi_host_channel_width wmi_get_ch_width_from_phy_mode(
4313*5113495bSYour Name 	wmi_unified_t wmi_handle, WMI_HOST_WLAN_PHY_MODE phymode);
4314*5113495bSYour Name 
4315*5113495bSYour Name #ifdef QCA_SUPPORT_CP_STATS
4316*5113495bSYour Name /**
4317*5113495bSYour Name  * wmi_extract_cca_stats() - api to extract congestion stats from event buffer
4318*5113495bSYour Name  * @wmi_handle: wma handle
4319*5113495bSYour Name  * @evt_buf: event buffer
4320*5113495bSYour Name  * @stats: buffer to populated after stats extraction
4321*5113495bSYour Name  *
4322*5113495bSYour Name  * Return: status of operation
4323*5113495bSYour Name  */
4324*5113495bSYour Name QDF_STATUS wmi_extract_cca_stats(wmi_unified_t wmi_handle, void *evt_buf,
4325*5113495bSYour Name 				 struct wmi_host_congestion_stats *stats);
4326*5113495bSYour Name #endif /* QCA_SUPPORT_CP_STATS */
4327*5113495bSYour Name 
4328*5113495bSYour Name #if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST)
4329*5113495bSYour Name /**
4330*5113495bSYour Name  * wmi_unified_dfs_send_avg_params_cmd() - send average radar parameters cmd.
4331*5113495bSYour Name  * @wmi_handle: wmi handle
4332*5113495bSYour Name  * @params: radar found params
4333*5113495bSYour Name  *
4334*5113495bSYour Name  * This function passes the average radar parameters to fw
4335*5113495bSYour Name  *
4336*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4337*5113495bSYour Name  */
4338*5113495bSYour Name QDF_STATUS
4339*5113495bSYour Name wmi_unified_dfs_send_avg_params_cmd(wmi_unified_t wmi_handle,
4340*5113495bSYour Name 				    struct dfs_radar_found_params *params);
4341*5113495bSYour Name 
4342*5113495bSYour Name /**
4343*5113495bSYour Name  * wmi_extract_dfs_status_from_fw() - extract host dfs status from fw.
4344*5113495bSYour Name  * @wmi_handle: wmi handle
4345*5113495bSYour Name  * @evt_buf: pointer to event buffer
4346*5113495bSYour Name  * @dfs_status_check: pointer to the host dfs status
4347*5113495bSYour Name  *
4348*5113495bSYour Name  * This function extracts the result of host dfs from fw
4349*5113495bSYour Name  *
4350*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4351*5113495bSYour Name  */
4352*5113495bSYour Name QDF_STATUS wmi_extract_dfs_status_from_fw(wmi_unified_t wmi_handle,
4353*5113495bSYour Name 					  void *evt_buf,
4354*5113495bSYour Name 					  uint32_t  *dfs_status_check);
4355*5113495bSYour Name #endif
4356*5113495bSYour Name #ifdef OL_ATH_SMART_LOGGING
4357*5113495bSYour Name /**
4358*5113495bSYour Name  * wmi_unified_send_smart_logging_enable_cmd() - send smart logging enable cmd
4359*5113495bSYour Name  * @wmi_handle: wmi handle
4360*5113495bSYour Name  * @param: enable/disable
4361*5113495bSYour Name  *
4362*5113495bSYour Name  * This function enables/disable the smart logging feature
4363*5113495bSYour Name  *
4364*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4365*5113495bSYour Name  */
4366*5113495bSYour Name QDF_STATUS wmi_unified_send_smart_logging_enable_cmd(wmi_unified_t wmi_handle,
4367*5113495bSYour Name 						     uint32_t param);
4368*5113495bSYour Name 
4369*5113495bSYour Name /**
4370*5113495bSYour Name  * wmi_unified_send_smart_logging_fatal_cmd() - send smart logging fatal cmd
4371*5113495bSYour Name  * @wmi_handle: wmi handle
4372*5113495bSYour Name  * @param:  Fatal event
4373*5113495bSYour Name  *
4374*5113495bSYour Name  * This function sends the smart log fatal events to the FW
4375*5113495bSYour Name  *
4376*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4377*5113495bSYour Name  */
4378*5113495bSYour Name QDF_STATUS
4379*5113495bSYour Name wmi_unified_send_smart_logging_fatal_cmd(wmi_unified_t wmi_handle,
4380*5113495bSYour Name 					 struct wmi_debug_fatal_events *param);
4381*5113495bSYour Name 
4382*5113495bSYour Name /**
4383*5113495bSYour Name  * wmi_extract_smartlog_ev() - extract smartlog event info from event
4384*5113495bSYour Name  * @wmi_handle: wmi handle
4385*5113495bSYour Name  * @evt_buf: pointer to event buffer
4386*5113495bSYour Name  * @ev: Pointer to hold fatal events
4387*5113495bSYour Name  *
4388*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4389*5113495bSYour Name  */
4390*5113495bSYour Name QDF_STATUS
4391*5113495bSYour Name wmi_extract_smartlog_ev(wmi_unified_t wmi_handle, void *evt_buf,
4392*5113495bSYour Name 			struct wmi_debug_fatal_events *ev);
4393*5113495bSYour Name 
4394*5113495bSYour Name #endif /* OL_ATH_SMART_LOGGING */
4395*5113495bSYour Name 
4396*5113495bSYour Name /**
4397*5113495bSYour Name  * wmi_process_fw_event_worker_thread_ctx() - process in worker thread context
4398*5113495bSYour Name  * @wmi_handle: handle to wmi
4399*5113495bSYour Name  * @evt_buf: pointer to event buffer
4400*5113495bSYour Name  *
4401*5113495bSYour Name  * Event process by below function will be in worker thread context.
4402*5113495bSYour Name  * Use this method for events which are not critical and not
4403*5113495bSYour Name  * handled in protocol stack.
4404*5113495bSYour Name  *
4405*5113495bSYour Name  * Return: none
4406*5113495bSYour Name  */
4407*5113495bSYour Name void wmi_process_fw_event_worker_thread_ctx(struct wmi_unified *wmi_handle,
4408*5113495bSYour Name 					    void *evt_buf);
4409*5113495bSYour Name 
4410*5113495bSYour Name /**
4411*5113495bSYour Name  * wmi_extract_ctl_failsafe_check_ev_param() - extract ctl failsafe
4412*5113495bSYour Name  * status from event
4413*5113495bSYour Name  * @wmi_handle: wmi handle
4414*5113495bSYour Name  * @evt_buf: pointer to event buffer
4415*5113495bSYour Name  * @param: Pointer to hold ctl status
4416*5113495bSYour Name  *
4417*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4418*5113495bSYour Name  */
4419*5113495bSYour Name QDF_STATUS wmi_extract_ctl_failsafe_check_ev_param(
4420*5113495bSYour Name 		wmi_unified_t wmi_handle,
4421*5113495bSYour Name 		void *evt_buf,
4422*5113495bSYour Name 		struct wmi_host_pdev_ctl_failsafe_event *param);
4423*5113495bSYour Name 
4424*5113495bSYour Name #ifdef OBSS_PD
4425*5113495bSYour Name /**
4426*5113495bSYour Name  * wmi_unified_send_obss_spatial_reuse_set_cmd() - send obss pd offset
4427*5113495bSYour Name  * @wmi_handle: wmi handle
4428*5113495bSYour Name  * @obss_spatial_reuse_param: Pointer to obsspd min max offset
4429*5113495bSYour Name  *
4430*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4431*5113495bSYour Name  */
4432*5113495bSYour Name QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_cmd(
4433*5113495bSYour Name 	wmi_unified_t wmi_handle,
4434*5113495bSYour Name 	struct wmi_host_obss_spatial_reuse_set_param *obss_spatial_reuse_param);
4435*5113495bSYour Name 
4436*5113495bSYour Name /**
4437*5113495bSYour Name  * wmi_unified_send_obss_spatial_reuse_set_def_thresh_cmd() - send def thresh
4438*5113495bSYour Name  * @wmi_handle: wmi handle
4439*5113495bSYour Name  * @thresh: Pointer to def thresh
4440*5113495bSYour Name  *
4441*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4442*5113495bSYour Name  */
4443*5113495bSYour Name QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_def_thresh_cmd(
4444*5113495bSYour Name 	wmi_unified_t wmi_handle,
4445*5113495bSYour Name 	struct wmi_host_obss_spatial_reuse_set_def_thresh *thresh);
4446*5113495bSYour Name 
4447*5113495bSYour Name /**
4448*5113495bSYour Name  * wmi_unified_send_self_srg_bss_color_bitmap_set_cmd() - Send 64-bit BSS color
4449*5113495bSYour Name  * bitmap to be used by SRG based Spatial Reuse feature
4450*5113495bSYour Name  * @wmi_handle: wmi handle
4451*5113495bSYour Name  * @bitmap_0: lower 32 bits in BSS color bitmap
4452*5113495bSYour Name  * @bitmap_1: upper 32 bits in BSS color bitmap
4453*5113495bSYour Name  * @pdev_id: pdev ID
4454*5113495bSYour Name  *
4455*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4456*5113495bSYour Name  */
4457*5113495bSYour Name QDF_STATUS wmi_unified_send_self_srg_bss_color_bitmap_set_cmd(
4458*5113495bSYour Name 	wmi_unified_t wmi_handle,  uint32_t bitmap_0,
4459*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
4460*5113495bSYour Name 
4461*5113495bSYour Name /**
4462*5113495bSYour Name  * wmi_unified_send_self_srg_partial_bssid_bitmap_set_cmd() - Send 64-bit
4463*5113495bSYour Name  * partial BSSID bitmap to be used by SRG based Spatial Reuse feature
4464*5113495bSYour Name  * @wmi_handle: wmi handle
4465*5113495bSYour Name  * @bitmap_0: lower 32 bits in partial BSSID bitmap
4466*5113495bSYour Name  * @bitmap_1: upper 32 bits in partial BSSID bitmap
4467*5113495bSYour Name  * @pdev_id: pdev ID
4468*5113495bSYour Name  *
4469*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4470*5113495bSYour Name  */
4471*5113495bSYour Name QDF_STATUS wmi_unified_send_self_srg_partial_bssid_bitmap_set_cmd(
4472*5113495bSYour Name 	wmi_unified_t wmi_handle,  uint32_t bitmap_0,
4473*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
4474*5113495bSYour Name 
4475*5113495bSYour Name /**
4476*5113495bSYour Name  * wmi_unified_send_self_srg_obss_color_enable_bitmap_cmd() - Send 64-bit BSS
4477*5113495bSYour Name  * color enable bitmap to be used by SRG based Spatial Reuse feature to the FW
4478*5113495bSYour Name  * @wmi_handle: wmi handle
4479*5113495bSYour Name  * @bitmap_0: lower 32 bits in BSS color enable bitmap
4480*5113495bSYour Name  * @bitmap_1: upper 32 bits in BSS color enable bitmap
4481*5113495bSYour Name  * @pdev_id: pdev ID
4482*5113495bSYour Name  *
4483*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4484*5113495bSYour Name  */
4485*5113495bSYour Name QDF_STATUS wmi_unified_send_self_srg_obss_color_enable_bitmap_cmd(
4486*5113495bSYour Name 	wmi_unified_t wmi_handle,  uint32_t bitmap_0,
4487*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
4488*5113495bSYour Name 
4489*5113495bSYour Name /**
4490*5113495bSYour Name  * wmi_unified_send_self_srg_obss_bssid_enable_bitmap_cmd() - Send 64-bit OBSS
4491*5113495bSYour Name  * BSSID enable bitmap to be used by SRG based Spatial Reuse feature to the FW
4492*5113495bSYour Name  * @wmi_handle: wmi handle
4493*5113495bSYour Name  * @bitmap_0: lower 32 bits in BSSID enable bitmap
4494*5113495bSYour Name  * @bitmap_1: upper 32 bits in BSSID enable bitmap
4495*5113495bSYour Name  * @pdev_id: pdev ID
4496*5113495bSYour Name  *
4497*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4498*5113495bSYour Name  */
4499*5113495bSYour Name QDF_STATUS wmi_unified_send_self_srg_obss_bssid_enable_bitmap_cmd(
4500*5113495bSYour Name 	wmi_unified_t wmi_handle,  uint32_t bitmap_0,
4501*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
4502*5113495bSYour Name 
4503*5113495bSYour Name /**
4504*5113495bSYour Name  * wmi_unified_send_self_non_srg_obss_color_enable_bitmap_cmd() - Send 64-bit
4505*5113495bSYour Name  * BSS color enable bitmap to be used by Non-SRG based Spatial Reuse
4506*5113495bSYour Name  * feature to the FW
4507*5113495bSYour Name  * @wmi_handle: wmi handle
4508*5113495bSYour Name  * @bitmap_0: lower 32 bits in BSS color enable bitmap
4509*5113495bSYour Name  * @bitmap_1: upper 32 bits in BSS color enable bitmap
4510*5113495bSYour Name  * @pdev_id: pdev ID
4511*5113495bSYour Name  *
4512*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4513*5113495bSYour Name  */
4514*5113495bSYour Name QDF_STATUS wmi_unified_send_self_non_srg_obss_color_enable_bitmap_cmd(
4515*5113495bSYour Name 	wmi_unified_t wmi_handle,  uint32_t bitmap_0,
4516*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
4517*5113495bSYour Name 
4518*5113495bSYour Name /**
4519*5113495bSYour Name  * wmi_unified_send_self_non_srg_obss_bssid_enable_bitmap_cmd() - Send 64-bit
4520*5113495bSYour Name  * OBSS BSSID enable bitmap to be used by Non-SRG based Spatial Reuse
4521*5113495bSYour Name  * feature to the FW
4522*5113495bSYour Name  * @wmi_handle: wmi handle
4523*5113495bSYour Name  * @bitmap_0: lower 32 bits in BSSID enable bitmap
4524*5113495bSYour Name  * @bitmap_1: upper 32 bits in BSSID enable bitmap
4525*5113495bSYour Name  * @pdev_id: pdev ID
4526*5113495bSYour Name  *
4527*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4528*5113495bSYour Name  */
4529*5113495bSYour Name QDF_STATUS wmi_unified_send_self_non_srg_obss_bssid_enable_bitmap_cmd(
4530*5113495bSYour Name 	wmi_unified_t wmi_handle,  uint32_t bitmap_0,
4531*5113495bSYour Name 	uint32_t bitmap_1, uint8_t pdev_id);
4532*5113495bSYour Name #endif /* OBSS_PD */
4533*5113495bSYour Name 
4534*5113495bSYour Name /**
4535*5113495bSYour Name  * wmi_convert_pdev_id_host_to_target() - Convert pdev_id from host to target
4536*5113495bSYour Name  * defines. For legacy there is not conversion required. Just return pdev_id as
4537*5113495bSYour Name  * it is.
4538*5113495bSYour Name  * @wmi_handle: wmi handle
4539*5113495bSYour Name  * @host_pdev_id: host pdev_id to be converted.
4540*5113495bSYour Name  * @target_pdev_id: Output target pdev id.
4541*5113495bSYour Name  *
4542*5113495bSYour Name  * Return: QDF_STATUS
4543*5113495bSYour Name  */
4544*5113495bSYour Name QDF_STATUS wmi_convert_pdev_id_host_to_target(wmi_unified_t wmi_handle,
4545*5113495bSYour Name 					      uint32_t host_pdev_id,
4546*5113495bSYour Name 					      uint32_t *target_pdev_id);
4547*5113495bSYour Name 
4548*5113495bSYour Name #ifndef CNSS_GENL
4549*5113495bSYour Name /**
4550*5113495bSYour Name  * wmi_convert_pdev_id_target_to_host() - Convert pdev_id from target to host
4551*5113495bSYour Name  * defines. For legacy there is not conversion required. Just return pdev_id as
4552*5113495bSYour Name  * it is.
4553*5113495bSYour Name  * @wmi_handle: wmi handle
4554*5113495bSYour Name  * @target_pdev_id: target pdev_id to be converted.
4555*5113495bSYour Name  * @host_pdev_id: Output host pdev id.
4556*5113495bSYour Name  *
4557*5113495bSYour Name  * Return: QDF_STATUS
4558*5113495bSYour Name  */
4559*5113495bSYour Name QDF_STATUS wmi_convert_pdev_id_target_to_host(wmi_unified_t wmi_handle,
4560*5113495bSYour Name 					      uint32_t target_pdev_id,
4561*5113495bSYour Name 					      uint32_t *host_pdev_id);
4562*5113495bSYour Name 
4563*5113495bSYour Name #ifdef WLAN_RTT_MEASUREMENT_NOTIFICATION
4564*5113495bSYour Name /**
4565*5113495bSYour Name  * wmi_unified_extract_measreq_chan_info() - Extract the channel info from the
4566*5113495bSYour Name  * LOWI measurement request buffer.
4567*5113495bSYour Name  * @wmi_handle: wmi handle
4568*5113495bSYour Name  * @data_len: the length of @data
4569*5113495bSYour Name  * @data: the pointer to data buf
4570*5113495bSYour Name  * @chinfo: Pointer to a structure to save channel info
4571*5113495bSYour Name  */
4572*5113495bSYour Name QDF_STATUS wmi_unified_extract_measreq_chan_info(
4573*5113495bSYour Name 		wmi_unified_t wmi_handle, uint32_t data_len, uint8_t *data,
4574*5113495bSYour Name 		struct rtt_channel_info *chinfo);
4575*5113495bSYour Name #endif /* WLAN_RTT_MEASUREMENT_NOTIFICATION */
4576*5113495bSYour Name #endif /* CNSS_GENL */
4577*5113495bSYour Name 
4578*5113495bSYour Name /**
4579*5113495bSYour Name  * wmi_unified_send_bss_color_change_enable_cmd() - WMI function to send bss
4580*5113495bSYour Name  *  color change enable to FW.
4581*5113495bSYour Name  * @wmi_handle: wmi handle
4582*5113495bSYour Name  * @vdev_id: vdev ID
4583*5113495bSYour Name  * @enable: enable or disable color change handling within firmware
4584*5113495bSYour Name  *
4585*5113495bSYour Name  * Send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID parameters to fw,
4586*5113495bSYour Name  * thereby firmware updates bss color when AP announces bss color change.
4587*5113495bSYour Name  *
4588*5113495bSYour Name  * Return: QDF_STATUS
4589*5113495bSYour Name  */
4590*5113495bSYour Name QDF_STATUS
4591*5113495bSYour Name wmi_unified_send_bss_color_change_enable_cmd(wmi_unified_t wmi_handle,
4592*5113495bSYour Name 					     uint32_t vdev_id,
4593*5113495bSYour Name 					     bool enable);
4594*5113495bSYour Name 
4595*5113495bSYour Name /**
4596*5113495bSYour Name  * wmi_unified_send_obss_color_collision_cfg_cmd() - WMI function to send bss
4597*5113495bSYour Name  *  color collision detection configuration to FW.
4598*5113495bSYour Name  * @wmi_handle: wmi handle
4599*5113495bSYour Name  * @cfg: obss color collision detection configuration
4600*5113495bSYour Name  *
4601*5113495bSYour Name  * Send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID parameters to fw.
4602*5113495bSYour Name  *
4603*5113495bSYour Name  * Return: QDF_STATUS
4604*5113495bSYour Name  */
4605*5113495bSYour Name QDF_STATUS wmi_unified_send_obss_color_collision_cfg_cmd(
4606*5113495bSYour Name 		wmi_unified_t wmi_handle,
4607*5113495bSYour Name 		struct wmi_obss_color_collision_cfg_param *cfg);
4608*5113495bSYour Name 
4609*5113495bSYour Name /**
4610*5113495bSYour Name  * wmi_unified_extract_obss_color_collision_info() - WMI function to extract
4611*5113495bSYour Name  *  obss color collision info from FW.
4612*5113495bSYour Name  * @wmi_handle: wmi handle
4613*5113495bSYour Name  * @data: event data from firmware
4614*5113495bSYour Name  * @info: Pointer to hold bss color collision info
4615*5113495bSYour Name  *
4616*5113495bSYour Name  * This function is used to extract bss collision info from firmware.
4617*5113495bSYour Name  *
4618*5113495bSYour Name  * Return: QDF_STATUS
4619*5113495bSYour Name  */
4620*5113495bSYour Name QDF_STATUS wmi_unified_extract_obss_color_collision_info(
4621*5113495bSYour Name 		wmi_unified_t wmi_handle,
4622*5113495bSYour Name 		uint8_t *data, struct wmi_obss_color_collision_info *info);
4623*5113495bSYour Name 
4624*5113495bSYour Name #ifdef CRYPTO_SET_KEY_CONVERGED
4625*5113495bSYour Name /**
4626*5113495bSYour Name  * wlan_crypto_cipher_to_wmi_cipher() - Convert crypto cipher to WMI cipher
4627*5113495bSYour Name  * @crypto_cipher: cipher type in crypto format
4628*5113495bSYour Name  *
4629*5113495bSYour Name  * Return: cipher type in WMI cipher type
4630*5113495bSYour Name  */
4631*5113495bSYour Name uint8_t wlan_crypto_cipher_to_wmi_cipher(
4632*5113495bSYour Name 		enum wlan_crypto_cipher_type crypto_cipher);
4633*5113495bSYour Name 
4634*5113495bSYour Name /**
4635*5113495bSYour Name  * wlan_crypto_cipher_to_cdp_sec_type() - Convert crypto cipher to CDP type
4636*5113495bSYour Name  * @crypto_cipher: cipher type in crypto format
4637*5113495bSYour Name  *
4638*5113495bSYour Name  * Return: security type in cdp_sec_type data format type
4639*5113495bSYour Name  */
4640*5113495bSYour Name enum cdp_sec_type wlan_crypto_cipher_to_cdp_sec_type(
4641*5113495bSYour Name 		enum wlan_crypto_cipher_type crypto_cipher);
4642*5113495bSYour Name 
4643*5113495bSYour Name #endif
4644*5113495bSYour Name 
4645*5113495bSYour Name /**
4646*5113495bSYour Name  * wmi_unified_send_mws_coex_req_cmd() - WMI function to send coex req cmd
4647*5113495bSYour Name  * @wmi_handle: wmi handle
4648*5113495bSYour Name  * @vdev_id: Vdev Id
4649*5113495bSYour Name  * @cmd_id: Coex cmd for which info is required
4650*5113495bSYour Name  *
4651*5113495bSYour Name  * Send wmi coex command to fw.
4652*5113495bSYour Name  *
4653*5113495bSYour Name  * Return: QDF_STATUS
4654*5113495bSYour Name  */
4655*5113495bSYour Name QDF_STATUS wmi_unified_send_mws_coex_req_cmd(struct wmi_unified *wmi_handle,
4656*5113495bSYour Name 					     uint32_t vdev_id, uint32_t cmd_id);
4657*5113495bSYour Name 
4658*5113495bSYour Name /**
4659*5113495bSYour Name  * wmi_unified_send_idle_trigger_monitor() - send idle trigger monitor command
4660*5113495bSYour Name  * @wmi_handle: WMI handle
4661*5113495bSYour Name  * @val: idle trigger monitor value - 1 for idle monitor on, 0 for idle monitor
4662*5113495bSYour Name  * off
4663*5113495bSYour Name  *
4664*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
4665*5113495bSYour Name  */
4666*5113495bSYour Name QDF_STATUS
4667*5113495bSYour Name wmi_unified_send_idle_trigger_monitor(wmi_unified_t wmi_handle, uint8_t val);
4668*5113495bSYour Name 
4669*5113495bSYour Name 
4670*5113495bSYour Name #ifdef WIFI_POS_CONVERGED
4671*5113495bSYour Name /**
4672*5113495bSYour Name  * wmi_extract_oem_response_param() - WMI function to extract OEM response param
4673*5113495bSYour Name  * @wmi_hdl: WMI handle
4674*5113495bSYour Name  * @resp_buf: Buffer holding response data
4675*5113495bSYour Name  * @oem_resp_param: zero-filled structure pointer to hold oem response data
4676*5113495bSYour Name  *
4677*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
4678*5113495bSYour Name  */
4679*5113495bSYour Name QDF_STATUS
4680*5113495bSYour Name wmi_extract_oem_response_param(wmi_unified_t wmi_hdl, void *resp_buf,
4681*5113495bSYour Name 			       struct wmi_oem_response_param *oem_resp_param);
4682*5113495bSYour Name #endif /* WIFI_POS_CONVERGED */
4683*5113495bSYour Name 
4684*5113495bSYour Name #if defined(WIFI_POS_CONVERGED) && defined(WLAN_FEATURE_RTT_11AZ_SUPPORT)
4685*5113495bSYour Name /**
4686*5113495bSYour Name  * wmi_extract_pasn_peer_create_req() - Extract peer create request event
4687*5113495bSYour Name  * @wmi: WMI handle
4688*5113495bSYour Name  * @evt_buf: Event buffer
4689*5113495bSYour Name  * @dst: Destination buffer
4690*5113495bSYour Name  *
4691*5113495bSYour Name  * Return: QDF_STATUS
4692*5113495bSYour Name  */
4693*5113495bSYour Name QDF_STATUS
4694*5113495bSYour Name wmi_extract_pasn_peer_create_req(wmi_unified_t wmi, void *evt_buf,
4695*5113495bSYour Name 				 struct wifi_pos_pasn_peer_data *dst);
4696*5113495bSYour Name 
4697*5113495bSYour Name /**
4698*5113495bSYour Name  * wmi_extract_pasn_peer_delete_req() - Extract PASN peer delete request
4699*5113495bSYour Name  * @wmi: WMI handle
4700*5113495bSYour Name  * @evt_buf: Event buffer
4701*5113495bSYour Name  * @dst: Destination buffer pointer
4702*5113495bSYour Name  *
4703*5113495bSYour Name  * Return: QDF_STATUS
4704*5113495bSYour Name  */
4705*5113495bSYour Name QDF_STATUS
4706*5113495bSYour Name wmi_extract_pasn_peer_delete_req(wmi_unified_t wmi, void *evt_buf,
4707*5113495bSYour Name 				 struct wifi_pos_pasn_peer_data *dst);
4708*5113495bSYour Name 
4709*5113495bSYour Name /**
4710*5113495bSYour Name  * wmi_send_rtt_pasn_auth_status_cmd  - Send PASN authentication status of all
4711*5113495bSYour Name  * the PASN peers.
4712*5113495bSYour Name  * @wmi: WMI handle
4713*5113495bSYour Name  * @data: Auth status data
4714*5113495bSYour Name  *
4715*5113495bSYour Name  * Return: QDF_STATUS
4716*5113495bSYour Name  */
4717*5113495bSYour Name QDF_STATUS
4718*5113495bSYour Name wmi_send_rtt_pasn_auth_status_cmd(wmi_unified_t wmi,
4719*5113495bSYour Name 				  struct wlan_pasn_auth_status *data);
4720*5113495bSYour Name 
4721*5113495bSYour Name /**
4722*5113495bSYour Name  * wmi_send_rtt_pasn_deauth_cmd  - Send RTT pasn deauthentication command
4723*5113495bSYour Name  * @wmi: WMI handle
4724*5113495bSYour Name  * @peer_mac: peer mac address
4725*5113495bSYour Name  *
4726*5113495bSYour Name  * Return: QDF_STATUS
4727*5113495bSYour Name  */
4728*5113495bSYour Name QDF_STATUS
4729*5113495bSYour Name wmi_send_rtt_pasn_deauth_cmd(wmi_unified_t wmi, struct qdf_mac_addr *peer_mac);
4730*5113495bSYour Name #endif
4731*5113495bSYour Name 
4732*5113495bSYour Name /**
4733*5113495bSYour Name  * wmi_critical_events_in_flight() - get the number of critical events in flight
4734*5113495bSYour Name  *
4735*5113495bSYour Name  * @wmi: WMI handle
4736*5113495bSYour Name  *
4737*5113495bSYour Name  * Return: the number of critical events in flight.
4738*5113495bSYour Name  */
4739*5113495bSYour Name uint32_t wmi_critical_events_in_flight(struct wmi_unified *wmi);
4740*5113495bSYour Name 
4741*5113495bSYour Name 
4742*5113495bSYour Name #ifdef FEATURE_ANI_LEVEL_REQUEST
4743*5113495bSYour Name /**
4744*5113495bSYour Name  * wmi_unified_ani_level_cmd_send() - WMI function to send get ani level cmd
4745*5113495bSYour Name  * @wmi_handle: WMI handle
4746*5113495bSYour Name  * @freqs: pointer to list of freqs for which ANI levels are to be fetched
4747*5113495bSYour Name  * @num_freqs: number of freqs in the above parameter
4748*5113495bSYour Name  *
4749*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
4750*5113495bSYour Name  */
4751*5113495bSYour Name QDF_STATUS wmi_unified_ani_level_cmd_send(wmi_unified_t wmi_handle,
4752*5113495bSYour Name 					  uint32_t *freqs,
4753*5113495bSYour Name 					  uint8_t num_freqs);
4754*5113495bSYour Name 
4755*5113495bSYour Name /**
4756*5113495bSYour Name  * wmi_unified_extract_ani_level() - WMI function to receive ani level cmd
4757*5113495bSYour Name  * @wmi_handle: WMI handle
4758*5113495bSYour Name  * @data: event data
4759*5113495bSYour Name  * @info: pointer to ANI data received from the FW and stored in HOST
4760*5113495bSYour Name  * @num_freqs: number of freqs in the above parameter
4761*5113495bSYour Name  *
4762*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
4763*5113495bSYour Name  */
4764*5113495bSYour Name QDF_STATUS wmi_unified_extract_ani_level(wmi_unified_t wmi_handle,
4765*5113495bSYour Name 					 uint8_t *data,
4766*5113495bSYour Name 					 struct wmi_host_ani_level_event **info,
4767*5113495bSYour Name 					 uint32_t *num_freqs);
4768*5113495bSYour Name #endif /* FEATURE_ANI_LEVEL_REQUEST */
4769*5113495bSYour Name 
4770*5113495bSYour Name #ifdef WLAN_FEATURE_PKT_CAPTURE
4771*5113495bSYour Name /**
4772*5113495bSYour Name  * wmi_unified_extract_vdev_mgmt_offload_event() - Extract mgmt offload params
4773*5113495bSYour Name  * @wmi: WMI handle
4774*5113495bSYour Name  * @evt_buf: Event buffer
4775*5113495bSYour Name  * @params: Management offload event params
4776*5113495bSYour Name  *
4777*5113495bSYour Name  * WMI function to extract management offload event params
4778*5113495bSYour Name  *
4779*5113495bSYour Name  * Return: QDF_STATUS
4780*5113495bSYour Name  */
4781*5113495bSYour Name QDF_STATUS
4782*5113495bSYour Name wmi_unified_extract_vdev_mgmt_offload_event(wmi_unified_t wmi, void *evt_buf,
4783*5113495bSYour Name 				struct mgmt_offload_event_params *params);
4784*5113495bSYour Name #endif
4785*5113495bSYour Name 
4786*5113495bSYour Name #ifdef WLAN_FEATURE_PKT_CAPTURE_V2
4787*5113495bSYour Name /**
4788*5113495bSYour Name  * wmi_unified_extract_smart_monitor_event() - Extract smu event params
4789*5113495bSYour Name  * @wmi: WMI handle
4790*5113495bSYour Name  * @evt_buf: Event buffer
4791*5113495bSYour Name  * @params: Smart monitor event params
4792*5113495bSYour Name  *
4793*5113495bSYour Name  * Return: QDF_STATUS
4794*5113495bSYour Name  */
4795*5113495bSYour Name QDF_STATUS
4796*5113495bSYour Name wmi_unified_extract_smart_monitor_event(wmi_unified_t wmi, void *evt_buf,
4797*5113495bSYour Name 					struct smu_event_params *params);
4798*5113495bSYour Name #endif
4799*5113495bSYour Name 
4800*5113495bSYour Name #ifdef FEATURE_WLAN_TIME_SYNC_FTM
4801*5113495bSYour Name /**
4802*5113495bSYour Name  * wmi_unified_send_wlan_time_sync_ftm_trigger() - send ftm timesync trigger cmd
4803*5113495bSYour Name  * @wmi_handle: wmi handle
4804*5113495bSYour Name  * @vdev_id: vdev id
4805*5113495bSYour Name  * @burst_mode: mode reg getting time sync relation from FW
4806*5113495bSYour Name  *
4807*5113495bSYour Name  * This function indicates the FW to trigger wlan time sync using FTM
4808*5113495bSYour Name  *
4809*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4810*5113495bSYour Name  */
4811*5113495bSYour Name QDF_STATUS
4812*5113495bSYour Name wmi_unified_send_wlan_time_sync_ftm_trigger(wmi_unified_t wmi_handle,
4813*5113495bSYour Name 					    uint32_t vdev_id,
4814*5113495bSYour Name 					    bool burst_mode);
4815*5113495bSYour Name 
4816*5113495bSYour Name /**
4817*5113495bSYour Name  * wmi_unified_send_wlan_time_sync_qtime() - send ftm time sync qtime cmd.
4818*5113495bSYour Name  * @wmi_handle: wmi handle
4819*5113495bSYour Name  * @vdev_id: vdev id
4820*5113495bSYour Name  * @lpass_ts: audio qtime
4821*5113495bSYour Name  *
4822*5113495bSYour Name  * This function sends the wmi cmd to FW having audio qtime
4823*5113495bSYour Name  *
4824*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4825*5113495bSYour Name  */
4826*5113495bSYour Name QDF_STATUS
4827*5113495bSYour Name wmi_unified_send_wlan_time_sync_qtime(wmi_unified_t wmi_handle,
4828*5113495bSYour Name 				      uint32_t vdev_id, uint64_t lpass_ts);
4829*5113495bSYour Name 
4830*5113495bSYour Name /**
4831*5113495bSYour Name  * wmi_unified_extract_time_sync_ftm_start_stop_params() - extract FTM time sync
4832*5113495bSYour Name  *							   params
4833*5113495bSYour Name  * @wmi_handle: wmi handle
4834*5113495bSYour Name  * @evt_buf: event buffer
4835*5113495bSYour Name  * @param: params received in start stop ftm timesync event
4836*5113495bSYour Name  *
4837*5113495bSYour Name  * This function extracts the params from ftm timesync start stop event
4838*5113495bSYour Name  *
4839*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4840*5113495bSYour Name  */
4841*5113495bSYour Name QDF_STATUS
4842*5113495bSYour Name wmi_unified_extract_time_sync_ftm_start_stop_params(
4843*5113495bSYour Name 				wmi_unified_t wmi_handle, void *evt_buf,
4844*5113495bSYour Name 				struct ftm_time_sync_start_stop_params *param);
4845*5113495bSYour Name 
4846*5113495bSYour Name /**
4847*5113495bSYour Name  * wmi_unified_extract_time_sync_ftm_offset() - extract timesync FTM offset
4848*5113495bSYour Name  * @wmi_handle: wmi handle
4849*5113495bSYour Name  * @evt_buf: event buffer
4850*5113495bSYour Name  * @param: params received in ftm timesync offset event
4851*5113495bSYour Name  *
4852*5113495bSYour Name  * This function extracts the params from ftm timesync offset event
4853*5113495bSYour Name  *
4854*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4855*5113495bSYour Name  */
4856*5113495bSYour Name QDF_STATUS
4857*5113495bSYour Name wmi_unified_extract_time_sync_ftm_offset(wmi_unified_t wmi_handle,
4858*5113495bSYour Name 					 void *evt_buf,
4859*5113495bSYour Name 					 struct ftm_time_sync_offset *param);
4860*5113495bSYour Name #endif /* FEATURE_WLAN_TIME_SYNC_FTM */
4861*5113495bSYour Name 
4862*5113495bSYour Name /**
4863*5113495bSYour Name  * wmi_unified_send_injector_frame_config_cmd() - configure injector frame
4864*5113495bSYour Name  * @wmi_handle: wmi handle
4865*5113495bSYour Name  * @param: params received in the injector frame configure command
4866*5113495bSYour Name  *
4867*5113495bSYour Name  * This function configures the AP to send out injector frames
4868*5113495bSYour Name  *
4869*5113495bSYour Name  * Return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4870*5113495bSYour Name  */
4871*5113495bSYour Name QDF_STATUS
4872*5113495bSYour Name wmi_unified_send_injector_frame_config_cmd(wmi_unified_t wmi_handle,
4873*5113495bSYour Name 				struct wmi_host_injector_frame_params *param);
4874*5113495bSYour Name 
4875*5113495bSYour Name /**
4876*5113495bSYour Name  * wmi_unified_send_cp_stats_cmd() - Send cp stats command
4877*5113495bSYour Name  * @wmi_handle: wmi handle
4878*5113495bSYour Name  * @buf_ptr: buf_ptr received from wifistats
4879*5113495bSYour Name  * @buf_len: length of buffer received from wifistats
4880*5113495bSYour Name  *
4881*5113495bSYour Name  * This function sends cp stats cmd to get cp stats.
4882*5113495bSYour Name  *
4883*5113495bSYour Name  * Return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4884*5113495bSYour Name  */
4885*5113495bSYour Name QDF_STATUS wmi_unified_send_cp_stats_cmd(wmi_unified_t wmi_handle,
4886*5113495bSYour Name 					 void *buf_ptr, uint32_t buf_len);
4887*5113495bSYour Name 
4888*5113495bSYour Name 
4889*5113495bSYour Name /**
4890*5113495bSYour Name  * wmi_unified_send_halphy_stats_cmd() - Send halphy stats command
4891*5113495bSYour Name  * @wmi_handle: wmi handle
4892*5113495bSYour Name  * @buf_ptr: buf_ptr received from wifistats
4893*5113495bSYour Name  * @buf_len: length of buffer received from wifistats
4894*5113495bSYour Name  *
4895*5113495bSYour Name  * This function sends halphy stats cmd to get halphy stats.
4896*5113495bSYour Name  *
4897*5113495bSYour Name  * Return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4898*5113495bSYour Name  */
4899*5113495bSYour Name QDF_STATUS wmi_unified_send_halphy_stats_cmd(wmi_unified_t wmi_handle,
4900*5113495bSYour Name 					     void *buf_ptr, uint32_t buf_len);
4901*5113495bSYour Name 
4902*5113495bSYour Name /**
4903*5113495bSYour Name  * wmi_unified_extract_cp_stats_more_pending() - extract more flag
4904*5113495bSYour Name  * @wmi_handle: wmi handle
4905*5113495bSYour Name  * @evt_buf: event buffer
4906*5113495bSYour Name  * @more_flag: more flag
4907*5113495bSYour Name  *
4908*5113495bSYour Name  * This function extracts the more_flag from fixed param
4909*5113495bSYour Name  *
4910*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4911*5113495bSYour Name  */
4912*5113495bSYour Name QDF_STATUS
4913*5113495bSYour Name wmi_unified_extract_cp_stats_more_pending(wmi_unified_t wmi_handle,
4914*5113495bSYour Name 					  void *evt_buf, uint32_t *more_flag);
4915*5113495bSYour Name 
4916*5113495bSYour Name /**
4917*5113495bSYour Name  * wmi_unified_extract_halphy_stats_end_of_event() - extract end_of_event flag
4918*5113495bSYour Name  * @wmi_handle: wmi handle
4919*5113495bSYour Name  * @evt_buf: event buffer
4920*5113495bSYour Name  * @end_of_event_flag: end_of_event flag
4921*5113495bSYour Name  *
4922*5113495bSYour Name  * This function extracts the end_of_event_flag from fixed param
4923*5113495bSYour Name  *
4924*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4925*5113495bSYour Name  */
4926*5113495bSYour Name QDF_STATUS
4927*5113495bSYour Name wmi_unified_extract_halphy_stats_end_of_event(wmi_unified_t wmi_handle,
4928*5113495bSYour Name 					      void *evt_buf,
4929*5113495bSYour Name 					      uint32_t *end_of_event_flag);
4930*5113495bSYour Name 
4931*5113495bSYour Name /**
4932*5113495bSYour Name  * wmi_unified_extract_halphy_stats_event_count() - extract event_count flag
4933*5113495bSYour Name  * @wmi_handle: wmi handle
4934*5113495bSYour Name  * @evt_buf: event buffer
4935*5113495bSYour Name  * @event_count_flag: event count flag
4936*5113495bSYour Name  *
4937*5113495bSYour Name  * This function extracts the event_count_flag from fixed param
4938*5113495bSYour Name  *
4939*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4940*5113495bSYour Name  */
4941*5113495bSYour Name QDF_STATUS
4942*5113495bSYour Name wmi_unified_extract_halphy_stats_event_count(wmi_unified_t wmi_handle,
4943*5113495bSYour Name 					     void *evt_buf,
4944*5113495bSYour Name 					     uint32_t *event_count_flag);
4945*5113495bSYour Name 
4946*5113495bSYour Name /**
4947*5113495bSYour Name  * wmi_unified_send_vdev_tsf_tstamp_action_cmd() - send vdev tsf action command
4948*5113495bSYour Name  * @wmi_hdl: wmi handle
4949*5113495bSYour Name  * @vdev_id: vdev id
4950*5113495bSYour Name  *
4951*5113495bSYour Name  * TSF_TSTAMP_READ_VALUE is the only operation supported
4952*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
4953*5113495bSYour Name  */
4954*5113495bSYour Name QDF_STATUS wmi_unified_send_vdev_tsf_tstamp_action_cmd(wmi_unified_t wmi_hdl,
4955*5113495bSYour Name 						       uint8_t vdev_id);
4956*5113495bSYour Name 
4957*5113495bSYour Name /**
4958*5113495bSYour Name  * wmi_extract_vdev_tsf_report_event() - extract vdev tsf report from event
4959*5113495bSYour Name  * @wmi_hdl: wmi handle
4960*5113495bSYour Name  * @evt_buf: pointer to event buffer
4961*5113495bSYour Name  * @param: Pointer to hold event info
4962*5113495bSYour Name  *
4963*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4964*5113495bSYour Name  */
4965*5113495bSYour Name QDF_STATUS wmi_extract_vdev_tsf_report_event(wmi_unified_t wmi_hdl,
4966*5113495bSYour Name 					     uint8_t *evt_buf,
4967*5113495bSYour Name 					     struct wmi_host_tsf_event *param);
4968*5113495bSYour Name 
4969*5113495bSYour Name /**
4970*5113495bSYour Name  * wmi_extract_pdev_csa_switch_count_status() - extract CSA switch count status
4971*5113495bSYour Name  * from event
4972*5113495bSYour Name  * @wmi_handle: wmi handle
4973*5113495bSYour Name  * @evt_buf: pointer to event buffer
4974*5113495bSYour Name  * @param: Pointer to CSA switch count status param
4975*5113495bSYour Name  *
4976*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
4977*5113495bSYour Name  */
4978*5113495bSYour Name QDF_STATUS wmi_extract_pdev_csa_switch_count_status(
4979*5113495bSYour Name 		wmi_unified_t wmi_handle,
4980*5113495bSYour Name 		void *evt_buf,
4981*5113495bSYour Name 		struct pdev_csa_switch_count_status *param);
4982*5113495bSYour Name 
4983*5113495bSYour Name /**
4984*5113495bSYour Name  * wmi_validate_handle() - Validate WMI handle
4985*5113495bSYour Name  * @wmi_handle: wmi handle
4986*5113495bSYour Name  *
4987*5113495bSYour Name  * This function will log on error and hence caller should not log on error
4988*5113495bSYour Name  *
4989*5113495bSYour Name  * Return: errno if WMI handle is NULL; 0 otherwise
4990*5113495bSYour Name  */
4991*5113495bSYour Name #define wmi_validate_handle(wmi_handle) \
4992*5113495bSYour Name         __wmi_validate_handle(wmi_handle, __func__)
4993*5113495bSYour Name int __wmi_validate_handle(wmi_unified_t wmi_handle, const char *func);
4994*5113495bSYour Name 
4995*5113495bSYour Name #ifdef CONFIG_AFC_SUPPORT
4996*5113495bSYour Name /**
4997*5113495bSYour Name  * wmi_unified_send_afc_cmd() - send afc indication info
4998*5113495bSYour Name  * @wmi_handle: wmi handle
4999*5113495bSYour Name  * @pdev_id: pdev id
5000*5113495bSYour Name  * @param: regulatory AFC indication info
5001*5113495bSYour Name  *
5002*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5003*5113495bSYour Name  */
5004*5113495bSYour Name QDF_STATUS
5005*5113495bSYour Name wmi_unified_send_afc_cmd(wmi_unified_t wmi_handle,
5006*5113495bSYour Name 			 uint8_t pdev_id,
5007*5113495bSYour Name 			 struct reg_afc_resp_rx_ind_info *param);
5008*5113495bSYour Name #endif
5009*5113495bSYour Name 
5010*5113495bSYour Name /**
5011*5113495bSYour Name  * wmi_unified_send_set_tpc_power_cmd() - send set transmit power info
5012*5113495bSYour Name  * @wmi_handle: wmi handle
5013*5113495bSYour Name  * @vdev_id: vdev id
5014*5113495bSYour Name  * @param: regulatory TPC info
5015*5113495bSYour Name  *
5016*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5017*5113495bSYour Name  */
5018*5113495bSYour Name QDF_STATUS wmi_unified_send_set_tpc_power_cmd(wmi_unified_t wmi_handle,
5019*5113495bSYour Name 					      uint8_t vdev_id,
5020*5113495bSYour Name 					      struct reg_tpc_power_info *param);
5021*5113495bSYour Name 
5022*5113495bSYour Name /**
5023*5113495bSYour Name  * wmi_extract_dpd_status_ev_param() - extract dpd status from FW event
5024*5113495bSYour Name  * @wmi_handle: wmi handle
5025*5113495bSYour Name  * @evt_buf: pointer to event buf
5026*5113495bSYour Name  * @param: dpd status info
5027*5113495bSYour Name  *
5028*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5029*5113495bSYour Name  */
5030*5113495bSYour Name QDF_STATUS wmi_extract_dpd_status_ev_param(wmi_unified_t wmi_handle,
5031*5113495bSYour Name 					   void *evt_buf,
5032*5113495bSYour Name 					   struct wmi_host_pdev_get_dpd_status_event *param);
5033*5113495bSYour Name 
5034*5113495bSYour Name /**
5035*5113495bSYour Name  * wmi_extract_halphy_cal_status_ev_param() - extract halphy cal status from FW event
5036*5113495bSYour Name  * @wmi_handle: wmi handle
5037*5113495bSYour Name  * @evt_buf: pointer to event buf
5038*5113495bSYour Name  * @param: halphy cal status info
5039*5113495bSYour Name  *
5040*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5041*5113495bSYour Name  */
5042*5113495bSYour Name QDF_STATUS
5043*5113495bSYour Name wmi_extract_halphy_cal_status_ev_param(wmi_unified_t wmi_handle,
5044*5113495bSYour Name 				       void *evt_buf,
5045*5113495bSYour Name 				       struct wmi_host_pdev_get_halphy_cal_status_event *param);
5046*5113495bSYour Name 
5047*5113495bSYour Name /**
5048*5113495bSYour Name  * wmi_unified_send_set_halphy_cal() - send set halphy cal bmap
5049*5113495bSYour Name  * @wmi_handle: wmi handle
5050*5113495bSYour Name  * @param: set halphy cal input info
5051*5113495bSYour Name  *
5052*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5053*5113495bSYour Name  */
5054*5113495bSYour Name QDF_STATUS wmi_unified_send_set_halphy_cal(wmi_unified_t wmi_handle,
5055*5113495bSYour Name 					   struct wmi_host_send_set_halphy_cal_info *param);
5056*5113495bSYour Name 
5057*5113495bSYour Name /**
5058*5113495bSYour Name  * wmi_extract_halphy_cal_ev_param() - extract halphy cal status from FW event
5059*5113495bSYour Name  * @wmi_handle: wmi handle
5060*5113495bSYour Name  * @evt_buf: pointer to event buf
5061*5113495bSYour Name  * @param: halphy cal status info
5062*5113495bSYour Name  *
5063*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5064*5113495bSYour Name  */
5065*5113495bSYour Name QDF_STATUS
5066*5113495bSYour Name wmi_extract_halphy_cal_ev_param(wmi_unified_t wmi_handle,
5067*5113495bSYour Name 				void *evt_buf,
5068*5113495bSYour Name 				struct wmi_host_pdev_set_halphy_cal_event *param);
5069*5113495bSYour Name 
5070*5113495bSYour Name #ifdef FEATURE_MEC_OFFLOAD
5071*5113495bSYour Name /**
5072*5113495bSYour Name  * wmi_unified_pdev_set_mec_timer() - set mec timer value
5073*5113495bSYour Name  * @wmi_handle: wmi handle
5074*5113495bSYour Name  * @param: params needed for mec timer config
5075*5113495bSYour Name  *
5076*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5077*5113495bSYour Name  */
5078*5113495bSYour Name QDF_STATUS
5079*5113495bSYour Name wmi_unified_pdev_set_mec_timer(struct wmi_unified *wmi_handle,
5080*5113495bSYour Name 			       struct set_mec_timer_params *param);
5081*5113495bSYour Name #endif
5082*5113495bSYour Name 
5083*5113495bSYour Name #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
5084*5113495bSYour Name /**
5085*5113495bSYour Name  * wmi_unified_send_set_mac_addr() - Send VDEV set MAC address command to FW
5086*5113495bSYour Name  * @wmi_handle: WMI handle
5087*5113495bSYour Name  * @params: Set MAC address command params
5088*5113495bSYour Name  *
5089*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5090*5113495bSYour Name  */
5091*5113495bSYour Name QDF_STATUS wmi_unified_send_set_mac_addr(struct wmi_unified *wmi_handle,
5092*5113495bSYour Name 					 struct set_mac_addr_params *params);
5093*5113495bSYour Name 
5094*5113495bSYour Name /**
5095*5113495bSYour Name  * wmi_extract_update_mac_address_event() - Extract update MAC address event
5096*5113495bSYour Name  * @wmi_handle: WMI handle
5097*5113495bSYour Name  * @evt_buf: event buffer
5098*5113495bSYour Name  * @vdev_id: VDEV ID
5099*5113495bSYour Name  * @status: FW status for the set MAC address operation
5100*5113495bSYour Name  *
5101*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5102*5113495bSYour Name  */
5103*5113495bSYour Name QDF_STATUS wmi_extract_update_mac_address_event(wmi_unified_t wmi_handle,
5104*5113495bSYour Name 						void *evt_buf, uint8_t *vdev_id,
5105*5113495bSYour Name 						uint8_t *status);
5106*5113495bSYour Name #endif
5107*5113495bSYour Name 
5108*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
5109*5113495bSYour Name /**
5110*5113495bSYour Name  * wmi_extract_quiet_offload_event() - Extra mlo sta quiet IE offload event
5111*5113495bSYour Name  * @wmi_handle: WMI handle
5112*5113495bSYour Name  * @evt_buf: event buffer
5113*5113495bSYour Name  * @quiet_event: pointer to struct vdev_sta_quiet_event
5114*5113495bSYour Name  *
5115*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5116*5113495bSYour Name  */
5117*5113495bSYour Name QDF_STATUS wmi_extract_quiet_offload_event(
5118*5113495bSYour Name 				struct wmi_unified *wmi_handle, void *evt_buf,
5119*5113495bSYour Name 				struct vdev_sta_quiet_event *quiet_event);
5120*5113495bSYour Name #endif
5121*5113495bSYour Name 
5122*5113495bSYour Name #ifdef WLAN_SUPPORT_PPEDS
5123*5113495bSYour Name /**
5124*5113495bSYour Name  * wmi_unified_peer_ppe_ds_param_send - Set the PPEDS configs
5125*5113495bSYour Name  * @wmi_handle: WMI handle
5126*5113495bSYour Name  * @param: Peer PPE DS param
5127*5113495bSYour Name  *
5128*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code.
5129*5113495bSYour Name  */
5130*5113495bSYour Name QDF_STATUS
5131*5113495bSYour Name wmi_unified_peer_ppe_ds_param_send(wmi_unified_t wmi_handle,
5132*5113495bSYour Name 				   struct peer_ppe_ds_param *param);
5133*5113495bSYour Name #endif /* WLAN_SUPPORT_PPEDS */
5134*5113495bSYour Name 
5135*5113495bSYour Name /**
5136*5113495bSYour Name  * wmi_extract_pktlog_decode_info_event() - Extract pktlog decode info
5137*5113495bSYour Name  * @wmi_handle: WMI handle
5138*5113495bSYour Name  * @evt_buf: event buffer
5139*5113495bSYour Name  * @pdev_id: pdev_id
5140*5113495bSYour Name  * @software_image: software image version
5141*5113495bSYour Name  * @chip_info: chip info
5142*5113495bSYour Name  * @pktlog_json_version: pktlog json version
5143*5113495bSYour Name  *
5144*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5145*5113495bSYour Name  */
5146*5113495bSYour Name QDF_STATUS
5147*5113495bSYour Name wmi_extract_pktlog_decode_info_event(wmi_unified_t wmi_handle,
5148*5113495bSYour Name 				     void *evt_buf,
5149*5113495bSYour Name 				     uint8_t *pdev_id,
5150*5113495bSYour Name 				     uint8_t *software_image,
5151*5113495bSYour Name 				     uint8_t *chip_info,
5152*5113495bSYour Name 				     uint32_t *pktlog_json_version);
5153*5113495bSYour Name 
5154*5113495bSYour Name /**
5155*5113495bSYour Name  * wmi_unified_pn_mgmt_rxfilter_send_cmd() - Send PN mgmt RxFilter command to FW
5156*5113495bSYour Name  * @wmi_handle: WMI handle
5157*5113495bSYour Name  * @params: RxFilter params
5158*5113495bSYour Name  *
5159*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5160*5113495bSYour Name  */
5161*5113495bSYour Name QDF_STATUS wmi_unified_pn_mgmt_rxfilter_send_cmd(
5162*5113495bSYour Name 		struct wmi_unified *wmi_handle,
5163*5113495bSYour Name 		struct vdev_pn_mgmt_rxfilter_params *params);
5164*5113495bSYour Name 
5165*5113495bSYour Name /**
5166*5113495bSYour Name  * wmi_extract_pdev_telemetry_stats - extract pdev telemetry stats
5167*5113495bSYour Name  * @wmi_handle: wmi handle
5168*5113495bSYour Name  * @evt_buf: pointer to event buffer
5169*5113495bSYour Name  * @pdev_stats: Pointer to hold pdev telemetry stats
5170*5113495bSYour Name  *
5171*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5172*5113495bSYour Name  */
5173*5113495bSYour Name QDF_STATUS wmi_extract_pdev_telemetry_stats(
5174*5113495bSYour Name 		wmi_unified_t wmi_handle, void *evt_buf,
5175*5113495bSYour Name 		struct wmi_host_pdev_telemetry_stats *pdev_stats);
5176*5113495bSYour Name 
5177*5113495bSYour Name #ifdef FEATURE_SET
5178*5113495bSYour Name /**
5179*5113495bSYour Name  * wmi_feature_set_cmd_send - Send feature set command to fw
5180*5113495bSYour Name  * @wmi_handle: wmi handle
5181*5113495bSYour Name  * @feature_set: pointer feature set info which needs to be send to fw
5182*5113495bSYour Name  *
5183*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5184*5113495bSYour Name  */
5185*5113495bSYour Name QDF_STATUS wmi_feature_set_cmd_send(
5186*5113495bSYour Name 			wmi_unified_t wmi_handle,
5187*5113495bSYour Name 			struct target_feature_set *feature_set);
5188*5113495bSYour Name #endif
5189*5113495bSYour Name 
5190*5113495bSYour Name #ifdef HEALTH_MON_SUPPORT
5191*5113495bSYour Name /**
5192*5113495bSYour Name  * wmi_extract_health_mon_event - extract health monitor params
5193*5113495bSYour Name  * @wmi_handle: wmi handle
5194*5113495bSYour Name  * @ev: pointer to event buffer
5195*5113495bSYour Name  * @param: health monitor params
5196*5113495bSYour Name  *
5197*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
5198*5113495bSYour Name  */
5199*5113495bSYour Name 
5200*5113495bSYour Name QDF_STATUS wmi_extract_health_mon_event(
5201*5113495bSYour Name 		wmi_unified_t wmi_handle,
5202*5113495bSYour Name 		void *ev,
5203*5113495bSYour Name 		struct wmi_health_mon_params *param);
5204*5113495bSYour Name #endif /* HEALTH_MON_SUPPORT */
5205*5113495bSYour Name 
5206*5113495bSYour Name /**
5207*5113495bSYour Name  * wmi_unified_update_edca_pifs_param() - update EDCA/PIFS params
5208*5113495bSYour Name  * @wmi_handle: wmi handle
5209*5113495bSYour Name  * @edca_pifs_param: pointer to edca_pifs_vparam struct
5210*5113495bSYour Name  *
5211*5113495bSYour Name  * This function updates EDCA/PIFS parameters to the target
5212*5113495bSYour Name  *
5213*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
5214*5113495bSYour Name  */
5215*5113495bSYour Name QDF_STATUS
5216*5113495bSYour Name wmi_unified_update_edca_pifs_param(
5217*5113495bSYour Name 			wmi_unified_t wmi_handle,
5218*5113495bSYour Name 			struct edca_pifs_vparam *edca_pifs_param);
5219*5113495bSYour Name 
5220*5113495bSYour Name /**
5221*5113495bSYour Name  * wmi_extract_sap_coex_cap_service_ready_ext2() - extract sap coex capability
5222*5113495bSYour Name  * @wmi_handle: wmi handle
5223*5113495bSYour Name  * @evt_buf: pointer to event buffer
5224*5113495bSYour Name  * @cap: It's set to 1 if fixed chan SAP is supported by firmware even when the
5225*5113495bSYour Name  *       channel is unsafe due to coex.
5226*5113495bSYour Name  *
5227*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
5228*5113495bSYour Name  */
5229*5113495bSYour Name QDF_STATUS wmi_extract_sap_coex_cap_service_ready_ext2(
5230*5113495bSYour Name 			wmi_unified_t wmi_handle,
5231*5113495bSYour Name 			uint8_t *evt_buf,
5232*5113495bSYour Name 			struct wmi_host_coex_fix_chan_cap *cap);
5233*5113495bSYour Name 
5234*5113495bSYour Name /**
5235*5113495bSYour Name  * wmi_extract_aux_dev_cap_service_ready_ext2() - extract aux dev capability
5236*5113495bSYour Name  * @wmi_handle: wmi handle
5237*5113495bSYour Name  * @evt_buf: pointer to event buffer
5238*5113495bSYour Name  * @idx: capability index
5239*5113495bSYour Name  * @param: psoc aux dev capability struct
5240*5113495bSYour Name  *
5241*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
5242*5113495bSYour Name  */
5243*5113495bSYour Name QDF_STATUS wmi_extract_aux_dev_cap_service_ready_ext2(
5244*5113495bSYour Name 		wmi_unified_t wmi_handle,
5245*5113495bSYour Name 		uint8_t *evt_buf, uint8_t idx,
5246*5113495bSYour Name 		struct wlan_psoc_host_aux_dev_caps *param);
5247*5113495bSYour Name 
5248*5113495bSYour Name /**
5249*5113495bSYour Name  * wmi_extract_csa_ie_received_event() - extract csa IE received event
5250*5113495bSYour Name  * @wmi_handle: wmi handle
5251*5113495bSYour Name  * @evt_buf: pointer to event buffer
5252*5113495bSYour Name  * @vdev_id: VDEV ID
5253*5113495bSYour Name  * @csa_event: csa event data
5254*5113495bSYour Name  *
5255*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
5256*5113495bSYour Name  */
5257*5113495bSYour Name QDF_STATUS
5258*5113495bSYour Name wmi_extract_csa_ie_received_event(wmi_unified_t wmi_handle,
5259*5113495bSYour Name 				  void *evt_buf, uint8_t *vdev_id,
5260*5113495bSYour Name 				  struct csa_offload_params *csa_event);
5261*5113495bSYour Name #endif /* _WMI_UNIFIED_API_H_ */
5262