xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_api.h (revision 698612c58bcc4d12fbc51621db08fba8d5dc8a55)
1 /*
2  * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved.
3  *
4  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5  *
6  *
7  * Permission to use, copy, modify, and/or distribute this software for
8  * any purpose with or without fee is hereby granted, provided that the
9  * above copyright notice and this permission notice appear in all
10  * copies.
11  *
12  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19  * PERFORMANCE OF THIS SOFTWARE.
20  */
21 
22 /*
23  * This file was originally distributed by Qualcomm Atheros, Inc.
24  * under proprietary terms before Copyright ownership was assigned
25  * to the Linux Foundation.
26  */
27 
28 /*
29  * This file contains the API definitions for the Unified Wireless Module
30  * Interface (WMI).
31  */
32 
33 #ifndef _WMI_UNIFIED_API_H_
34 #define _WMI_UNIFIED_API_H_
35 
36 #include <osdep.h>
37 #include "a_types.h"
38 #include "ol_defines.h"
39 #ifdef CONFIG_MCL
40 #include "wmi.h"
41 #endif
42 #include "htc_api.h"
43 #include "wmi_unified_param.h"
44 #include "wlan_objmgr_psoc_obj.h"
45 #include "wlan_mgmt_txrx_utils_api.h"
46 #ifdef WLAN_PMO_ENABLE
47 #include "wmi_unified_pmo_api.h"
48 #endif
49 
50 typedef qdf_nbuf_t wmi_buf_t;
51 #define wmi_buf_data(_buf) qdf_nbuf_data(_buf)
52 
53 #define WMI_LOGD(args ...) \
54 	QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_DEBUG, ## args)
55 #define WMI_LOGI(args ...) \
56 	QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_INFO, ## args)
57 #define WMI_LOGW(args ...) \
58 	QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_WARN, ## args)
59 #define WMI_LOGE(args ...) \
60 	QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, ## args)
61 #define WMI_LOGP(args ...) \
62 	QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_FATAL, ## args)
63 
64 #define WMI_DEBUG_ALWAYS
65 
66 #ifdef WMI_DEBUG_ALWAYS
67 #define WMI_LOGA(args ...) \
68 	QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_FATAL, ## args)
69 #else
70 #define WMI_LOGA(args ...)
71 #endif
72 
73 /* wrapper to keep WMI agnostic of event handler execution context */
74 #define wmi_unified_register_event(wmi_handle, event_id, handler_func) \
75 		wmi_unified_register_event_handler(wmi_handle, \
76 		 event_id, handler_func, WMI_RX_UMAC_CTX)
77 
78 struct wmi_soc;
79 /**
80  * struct wmi_ops - service callbacks to upper layer
81  * @service_ready_cbk: service ready callback
82  * @service_ready_ext_cbk: service ready ext callback
83  * @ready_cbk: ready calback
84  * @wma_process_fw_event_handler_cbk: generic event handler callback
85  */
86 struct wmi_rx_ops {
87 
88 	int (*wma_process_fw_event_handler_cbk)(void *ctx,
89 				  void *ev, uint8_t rx_ctx);
90 };
91 
92 /**
93  * enum wmi_target_type - type of supported wmi command
94  * @WMI_TLV_TARGET: tlv based target
95  * @WMI_NON_TLV_TARGET: non-tlv based target
96  *
97  */
98 enum wmi_target_type {
99 	WMI_TLV_TARGET,
100 	WMI_NON_TLV_TARGET
101 };
102 
103 /**
104  * enum wmi_rx_exec_ctx - wmi rx execution context
105  * @WMI_RX_WORK_CTX: work queue context execution provided by WMI layer
106  * @WMI_RX_UMAC_CTX: execution context provided by umac layer
107  *
108  */
109 enum wmi_rx_exec_ctx {
110 	WMI_RX_WORK_CTX,
111 	WMI_RX_UMAC_CTX
112 };
113 
114 /**
115  * attach for unified WMI
116  *
117  *  @param scn_handle      : handle to SCN.
118  *  @param target_type      : type of supported wmi command
119  *  @param use_cookie       : flag to indicate cookie based allocation
120  *  @param ops              : handle to wmi ops
121  *  @psoc                   : objmgr psoc
122  *  @return opaque handle.
123  */
124 void *wmi_unified_attach(void *scn_handle,
125 			 osdev_t osdev, enum wmi_target_type target_type,
126 			 bool use_cookie, struct wmi_rx_ops *ops,
127 			 struct wlan_objmgr_psoc *psoc);
128 
129 
130 
131 /**
132  * wmi_mgmt_cmd_record() - Wrapper function for mgmt command logging macro
133  *
134  * @wmi_handle: wmi handle
135  * @cmd: mgmt command
136  * @header: pointer to 802.11 header
137  * @vdev_id: vdev id
138  * @chanfreq: channel frequency
139  *
140  * Return: none
141  */
142 void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd,
143 			void *header, uint32_t vdev_id, uint32_t chanfreq);
144 
145 /**
146  * detach for unified WMI
147  *
148  *  @param wmi_handle      : handle to WMI.
149  *  @return void.
150  */
151 void wmi_unified_detach(struct wmi_unified *wmi_handle);
152 
153 void
154 wmi_unified_remove_work(struct wmi_unified *wmi_handle);
155 
156 /**
157  * generic function to allocate WMI buffer
158  *
159  *  @param wmi_handle      : handle to WMI.
160  *  @param len             : length of the buffer
161  *  @return wmi_buf_t.
162  */
163 #ifdef MEMORY_DEBUG
164 #define wmi_buf_alloc(h, l) wmi_buf_alloc_debug(h, l, __FILE__, __LINE__)
165 wmi_buf_t
166 wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint16_t len,
167 		    uint8_t *file_name, uint32_t line_num);
168 #else
169 wmi_buf_t wmi_buf_alloc(wmi_unified_t wmi_handle, uint16_t len);
170 #endif
171 
172 /**
173  * generic function frees WMI net buffer
174  *
175  *  @param net_buf : Pointer ot net_buf to be freed
176  */
177 void wmi_buf_free(wmi_buf_t net_buf);
178 
179 /**
180  * generic function to send unified WMI command
181  *
182  *  @param wmi_handle      : handle to WMI.
183  *  @param buf             : wmi command buffer
184  *  @param buflen          : wmi command buffer length
185  *  @param cmd_id          : WMI cmd id
186  *  @return 0  on success and -ve on failure.
187  */
188 QDF_STATUS
189 wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen,
190 			uint32_t cmd_id);
191 
192 /**
193  * wmi_unified_register_event_handler() - WMI event handler
194  * registration function
195  *
196  * @wmi_handle:   handle to WMI.
197  * @event_id:     WMI event ID
198  * @handler_func: Event handler call back function
199  * @rx_ctx: rx event processing context
200  *
201  *  @return 0  on success and -ve on failure.
202  */
203 int
204 wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
205 				   uint32_t event_id,
206 				   wmi_unified_event_handler handler_func,
207 				   uint8_t rx_ctx);
208 
209 /**
210  * WMI event handler unregister function
211  *
212  *  @param wmi_handle      : handle to WMI.
213  *  @param event_id        : WMI event ID
214  *  @return 0  on success and -ve on failure.
215  */
216 int
217 wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
218 					 uint32_t event_id);
219 
220 /**
221  * request wmi to connet its htc service.
222  *  @param wmi_handle      : handle to WMI.
223  *  @param htc_handle      : handle to HTC.
224  *  @return void
225  */
226 QDF_STATUS
227 wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle,
228 				void *htc_handle);
229 
230 /*
231  * WMI API to verify the host has enough credits to suspend
232  *  @param wmi_handle      : handle to WMI.
233  */
234 
235 int wmi_is_suspend_ready(wmi_unified_t wmi_handle);
236 
237 /**
238  *  WMI API to get updated host_credits
239  *  @param wmi_handle      : handle to WMI.
240  */
241 
242 int wmi_get_host_credits(wmi_unified_t wmi_handle);
243 
244 /**
245  *  WMI API to get WMI Pending Commands in the HTC queue
246  *  @param wmi_handle      : handle to WMI.
247  */
248 
249 int wmi_get_pending_cmds(wmi_unified_t wmi_handle);
250 
251 /**
252  *  WMI API to set target suspend state
253  *  @param wmi_handle      : handle to WMI.
254  *  @param val             : suspend state boolean
255  */
256 void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val);
257 
258 /**
259  * WMI API to set bus suspend state
260  * @param wmi_handle:	handle to WMI.
261  * @param val:		suspend state boolean
262  */
263 void wmi_set_is_wow_bus_suspended(wmi_unified_t wmi_handle, A_BOOL val);
264 
265 /**
266  * WMI API to set crash injection state
267  * @param wmi_handle:	handle to WMI.
268  * @param val:		crash injection state boolean
269  */
270 void wmi_tag_crash_inject(wmi_unified_t wmi_handle, A_BOOL flag);
271 
272 /**
273  * generic function to block unified WMI command
274  * @param wmi_handle      : handle to WMI.
275  * @return 0  on success and -ve on failure.
276  */
277 int
278 wmi_stop(wmi_unified_t wmi_handle);
279 
280 /**
281  * API to flush all the previous packets  associated with the wmi endpoint
282  *
283  * @param wmi_handle      : handle to WMI.
284  */
285 void
286 wmi_flush_endpoint(wmi_unified_t wmi_handle);
287 
288 /**
289  * API to handle wmi rx event after UMAC has taken care of execution
290  * context
291  *
292  * @param wmi_handle      : handle to WMI.
293  * @param evt_buf         : wmi event buffer
294  */
295 void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
296 #ifdef FEATURE_RUNTIME_PM
297 void
298 wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val);
299 bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle);
300 #else
301 static inline void
302 wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val)
303 {
304 	return;
305 }
306 static inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle)
307 {
308 	return false;
309 }
310 #endif
311 
312 void *wmi_unified_get_soc_handle(struct wmi_unified *wmi_handle);
313 
314 void *wmi_unified_get_pdev_handle(struct wmi_soc *soc, uint32_t pdev_idx);
315 
316 /**
317  * UMAC Callback to process fw event.
318  * @param wmi_handle      : handle to WMI.
319  * @param evt_buf         : wmi event buffer
320  */
321 void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
322 uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle);
323 
324 
325 QDF_STATUS wmi_unified_vdev_create_send(void *wmi_hdl,
326 				 uint8_t macaddr[IEEE80211_ADDR_LEN],
327 				 struct vdev_create_params *param);
328 
329 QDF_STATUS wmi_unified_vdev_delete_send(void *wmi_hdl,
330 					  uint8_t if_id);
331 
332 QDF_STATUS wmi_unified_vdev_restart_send(void *wmi_hdl,
333 				uint8_t macaddr[IEEE80211_ADDR_LEN],
334 				struct vdev_start_params *param);
335 
336 QDF_STATUS wmi_unified_vdev_stop_send(void *wmi_hdl,
337 					uint8_t vdev_id);
338 
339 QDF_STATUS wmi_unified_vdev_up_send(void *wmi_hdl,
340 			     uint8_t bssid[IEEE80211_ADDR_LEN],
341 				 struct vdev_up_params *params);
342 
343 QDF_STATUS wmi_unified_vdev_down_send(void *wmi_hdl,
344 				uint8_t vdev_id);
345 
346 QDF_STATUS wmi_unified_vdev_start_send(void *wmi_hdl,
347 				struct vdev_start_params *req);
348 
349 QDF_STATUS wmi_unified_hidden_ssid_vdev_restart_send(void *wmi_hdl,
350 		struct hidden_ssid_vdev_restart_params *restart_params);
351 
352 QDF_STATUS wmi_unified_vdev_set_param_send(void *wmi_hdl,
353 				struct vdev_set_params *param);
354 
355 QDF_STATUS wmi_unified_peer_delete_send(void *wmi_hdl,
356 				    uint8_t
357 				    peer_addr[IEEE80211_ADDR_LEN],
358 				    uint8_t vdev_id);
359 
360 QDF_STATUS wmi_unified_peer_flush_tids_send(void *wmi_hdl,
361 					 uint8_t peer_addr[IEEE80211_ADDR_LEN],
362 					 struct peer_flush_params *param);
363 
364 QDF_STATUS wmi_set_peer_param_send(void *wmi_hdl,
365 				uint8_t peer_addr[IEEE80211_ADDR_LEN],
366 				struct peer_set_params *param);
367 
368 QDF_STATUS wmi_unified_peer_create_send(void *wmi_hdl,
369 					struct peer_create_params *param);
370 
371 QDF_STATUS wmi_unified_stats_request_send(void *wmi_hdl,
372 				uint8_t macaddr[IEEE80211_ADDR_LEN],
373 				struct stats_request_params *param);
374 
375 QDF_STATUS wmi_unified_green_ap_ps_send(void *wmi_hdl,
376 						uint32_t value, uint8_t mac_id);
377 
378 
379 QDF_STATUS wmi_unified_wow_enable_send(void *wmi_hdl,
380 				struct wow_cmd_params *param,
381 				uint8_t mac_id);
382 
383 QDF_STATUS wmi_unified_wow_wakeup_send(void *wmi_hdl);
384 
385 QDF_STATUS wmi_unified_wow_add_wakeup_event_send(void *wmi_hdl,
386 		struct wow_add_wakeup_params *param);
387 
388 QDF_STATUS wmi_unified_wow_add_wakeup_pattern_send(void *wmi_hdl,
389 		struct wow_add_wakeup_pattern_params *param);
390 
391 QDF_STATUS wmi_unified_wow_remove_wakeup_pattern_send(void *wmi_hdl,
392 		struct wow_remove_wakeup_pattern_params *param);
393 
394 #ifndef CONFIG_MCL
395 QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl,
396 				WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT);
397 #else
398 QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl,
399 				uint8_t macaddr[IEEE80211_ADDR_LEN],
400 				struct packet_enable_params *param);
401 #endif
402 
403 QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl);
404 
405 QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl,
406 				struct suspend_params *param,
407 				uint8_t mac_id);
408 
409 QDF_STATUS wmi_unified_resume_send(void *wmi_hdl,
410 				uint8_t mac_id);
411 
412 QDF_STATUS
413 wmi_unified_pdev_param_send(void *wmi_hdl,
414 			   struct pdev_params *param,
415 				uint8_t mac_id);
416 
417 QDF_STATUS wmi_unified_beacon_tmpl_send_cmd(void *wmi_hdl,
418 				struct beacon_tmpl_params *param);
419 
420 
421 QDF_STATUS wmi_unified_beacon_send_cmd(void *wmi_hdl,
422 				struct beacon_params *param);
423 
424 QDF_STATUS wmi_unified_peer_assoc_send(void *wmi_hdl,
425 				struct peer_assoc_params *param);
426 
427 QDF_STATUS wmi_unified_sta_ps_cmd_send(void *wmi_hdl,
428 				struct sta_ps_params *param);
429 
430 QDF_STATUS wmi_unified_ap_ps_cmd_send(void *wmi_hdl,
431 				uint8_t macaddr[IEEE80211_ADDR_LEN],
432 				struct ap_ps_params *param);
433 
434 QDF_STATUS wmi_unified_scan_start_cmd_send(void *wmi_hdl,
435 				struct scan_start_params *param);
436 
437 QDF_STATUS wmi_unified_scan_stop_cmd_send(void *wmi_hdl,
438 				struct scan_stop_params *param);
439 
440 QDF_STATUS wmi_unified_scan_chan_list_cmd_send(void *wmi_hdl,
441 				struct scan_chan_list_params *param);
442 
443 
444 QDF_STATUS wmi_crash_inject(void *wmi_hdl,
445 				struct crash_inject *param);
446 
447 QDF_STATUS wmi_unified_pdev_utf_cmd_send(void *wmi_hdl,
448 				struct pdev_utf_params *param,
449 				uint8_t mac_id);
450 
451 QDF_STATUS wmi_unified_dbglog_cmd_send(void *wmi_hdl,
452 				struct dbglog_params *param);
453 
454 QDF_STATUS wmi_mgmt_unified_cmd_send(void *wmi_hdl,
455 				struct wmi_mgmt_params *param);
456 
457 QDF_STATUS wmi_unified_modem_power_state(void *wmi_hdl,
458 		uint32_t param_value);
459 
460 QDF_STATUS wmi_unified_set_sta_ps_mode(void *wmi_hdl,
461 			       uint32_t vdev_id, uint8_t val);
462 QDF_STATUS
463 wmi_unified_set_sta_uapsd_auto_trig_cmd(void *wmi_hdl,
464 				struct sta_uapsd_trig_params *param);
465 
466 QDF_STATUS wmi_unified_get_temperature(void *wmi_hdl);
467 
468 QDF_STATUS wmi_unified_set_p2pgo_oppps_req(void *wmi_hdl,
469 		struct p2p_ps_params *oppps);
470 
471 QDF_STATUS wmi_unified_set_p2pgo_noa_req_cmd(void *wmi_hdl,
472 			struct p2p_ps_params *noa);
473 
474 QDF_STATUS wmi_unified_set_smps_params(void *wmi_hdl, uint8_t vdev_id,
475 			       int value);
476 
477 QDF_STATUS wmi_unified_set_mimops(void *wmi_hdl, uint8_t vdev_id, int value);
478 
479 QDF_STATUS wmi_unified_ocb_set_utc_time(void *wmi_hdl,
480 				struct ocb_utc_param *utc);
481 
482 QDF_STATUS wmi_unified_ocb_start_timing_advert(void *wmi_hdl,
483 	struct ocb_timing_advert_param *timing_advert);
484 
485 QDF_STATUS wmi_unified_ocb_stop_timing_advert(void *wmi_hdl,
486 	struct ocb_timing_advert_param *timing_advert);
487 
488 QDF_STATUS wmi_unified_ocb_set_config(void *wmi_hdl,
489 		   struct ocb_config_param *config, uint32_t *ch_mhz);
490 
491 QDF_STATUS wmi_unified_ocb_get_tsf_timer(void *wmi_hdl,
492 			  uint8_t vdev_id);
493 
494 QDF_STATUS wmi_unified_lro_config_cmd(void *wmi_hdl,
495 	 struct wmi_lro_config_cmd_t *wmi_lro_cmd);
496 
497 QDF_STATUS wmi_unified_set_thermal_mgmt_cmd(void *wmi_hdl,
498 				struct thermal_cmd_params *thermal_info);
499 
500 QDF_STATUS wmi_unified_peer_rate_report_cmd(void *wmi_hdl,
501 		struct wmi_peer_rate_report_params *rate_report_params);
502 
503 QDF_STATUS wmi_unified_set_mcc_channel_time_quota_cmd
504 	(void *wmi_hdl,
505 	uint32_t adapter_1_chan_freq,
506 	uint32_t adapter_1_quota, uint32_t adapter_2_chan_freq);
507 
508 QDF_STATUS wmi_unified_set_mcc_channel_time_latency_cmd
509 	(void *wmi_hdl,
510 	uint32_t mcc_channel_freq, uint32_t mcc_channel_time_latency);
511 
512 QDF_STATUS wmi_unified_set_enable_disable_mcc_adaptive_scheduler_cmd(
513 		   void *wmi_hdl, uint32_t mcc_adaptive_scheduler,
514 		   uint32_t pdev_id);
515 
516 #ifdef CONFIG_MCL
517 QDF_STATUS wmi_unified_bcn_buf_ll_cmd(void *wmi_hdl,
518 			wmi_bcn_send_from_host_cmd_fixed_param *param);
519 #endif
520 
521 QDF_STATUS wmi_unified_set_sta_sa_query_param_cmd(void *wmi_hdl,
522 				       uint8_t vdev_id, uint32_t max_retries,
523 					   uint32_t retry_interval);
524 
525 
526 QDF_STATUS wmi_unified_set_sta_keep_alive_cmd(void *wmi_hdl,
527 				struct sta_params *params);
528 
529 QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id,
530 				  struct wmi_gtx_config *gtx_info);
531 
532 #ifdef CONFIG_MCL
533 QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl,
534 		     uint8_t vdev_id,
535 		     wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]);
536 #endif
537 
538 
539 QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl,
540 		   uint8_t vdev_id,
541 		   struct wmi_probe_resp_params *probe_rsp_info,
542 		   uint8_t *frm);
543 
544 QDF_STATUS wmi_unified_setup_install_key_cmd(void *wmi_hdl,
545 			struct set_key_params *key_params);
546 
547 QDF_STATUS wmi_unified_encrypt_decrypt_send_cmd(void *wmi_hdl,
548 			struct encrypt_decrypt_req_params *params);
549 
550 QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(void *wmi_hdl,
551 				    A_UINT32 vdev_id, uint8_t *p2p_ie);
552 
553 
554 QDF_STATUS wmi_unified_set_gateway_params_cmd(void *wmi_hdl,
555 					struct gateway_update_req_param *req);
556 
557 QDF_STATUS wmi_unified_set_rssi_monitoring_cmd(void *wmi_hdl,
558 					struct rssi_monitor_param *req);
559 
560 QDF_STATUS wmi_unified_scan_probe_setoui_cmd(void *wmi_hdl,
561 			  struct scan_mac_oui *psetoui);
562 
563 QDF_STATUS wmi_unified_reset_passpoint_network_list_cmd(void *wmi_hdl,
564 					struct wifi_passpoint_req_param *req);
565 
566 QDF_STATUS wmi_unified_set_passpoint_network_list_cmd(void *wmi_hdl,
567 					struct wifi_passpoint_req_param *req);
568 
569 #ifdef CONFIG_MCL
570 QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(void *wmi_hdl,
571 				wmi_start_scan_cmd_fixed_param *scan_cmd_fp,
572 				struct roam_offload_scan_params *roam_req);
573 #endif
574 
575 QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(void *wmi_hdl,
576 				struct roam_offload_scan_rssi_params *roam_req);
577 
578 QDF_STATUS wmi_unified_roam_scan_filter_cmd(void *wmi_hdl,
579 				struct roam_scan_filter_params *roam_req);
580 
581 QDF_STATUS wmi_unified_set_epno_network_list_cmd(void *wmi_hdl,
582 		struct wifi_enhanched_pno_params *req);
583 
584 QDF_STATUS  wmi_unified_ipa_offload_control_cmd(void *wmi_hdl,
585 		struct ipa_offload_control_params *ipa_offload);
586 
587 QDF_STATUS wmi_unified_extscan_get_capabilities_cmd(void *wmi_hdl,
588 			  struct extscan_capabilities_params *pgetcapab);
589 
590 QDF_STATUS wmi_unified_extscan_get_cached_results_cmd(void *wmi_hdl,
591 			  struct extscan_cached_result_params *pcached_results);
592 
593 
594 QDF_STATUS wmi_unified_extscan_stop_change_monitor_cmd(void *wmi_hdl,
595 			  struct extscan_capabilities_reset_params *reset_req);
596 
597 
598 QDF_STATUS wmi_unified_extscan_start_change_monitor_cmd(void *wmi_hdl,
599 				   struct extscan_set_sig_changereq_params *
600 					   psigchange);
601 
602 QDF_STATUS wmi_unified_extscan_stop_hotlist_monitor_cmd(void *wmi_hdl,
603 		  struct extscan_bssid_hotlist_reset_params *photlist_reset);
604 
605 QDF_STATUS wmi_unified_stop_extscan_cmd(void *wmi_hdl,
606 			  struct extscan_stop_req_params *pstopcmd);
607 
608 QDF_STATUS wmi_unified_start_extscan_cmd(void *wmi_hdl,
609 			  struct wifi_scan_cmd_req_params *pstart);
610 
611 QDF_STATUS wmi_unified_plm_stop_cmd(void *wmi_hdl,
612 			  const struct plm_req_params *plm);
613 
614 QDF_STATUS wmi_unified_plm_start_cmd(void *wmi_hdl,
615 			  const struct plm_req_params *plm,
616 			  uint32_t *gchannel_list);
617 
618 QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id);
619 
620 #ifdef FEATURE_WLAN_SCAN_PNO
621 QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl,
622 		   struct pno_scan_req_params *pno,
623 		   uint32_t *gchannel_freq_list);
624 #endif
625 
626 QDF_STATUS wmi_unified_set_ric_req_cmd(void *wmi_hdl, void *msg,
627 			uint8_t is_add_ts);
628 
629 QDF_STATUS wmi_unified_process_ll_stats_clear_cmd
630 	(void *wmi_hdl, const struct ll_stats_clear_params *clear_req,
631 	 uint8_t addr[IEEE80211_ADDR_LEN]);
632 
633 QDF_STATUS wmi_unified_process_ll_stats_set_cmd
634 	(void *wmi_hdl, const struct ll_stats_set_params *set_req);
635 
636 QDF_STATUS wmi_unified_process_ll_stats_get_cmd
637 	(void *wmi_hdl, const struct ll_stats_get_params  *get_req,
638 		 uint8_t addr[IEEE80211_ADDR_LEN]);
639 
640 QDF_STATUS wmi_unified_get_stats_cmd(void *wmi_hdl,
641 		       struct pe_stats_req  *get_stats_param,
642 			   uint8_t addr[IEEE80211_ADDR_LEN]);
643 
644 QDF_STATUS wmi_unified_snr_request_cmd(void *wmi_hdl);
645 
646 QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id);
647 
648 QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl,
649 				 struct link_status_params *link_status);
650 
651 #ifdef CONFIG_MCL
652 QDF_STATUS wmi_unified_process_dhcp_ind(void *wmi_hdl,
653 				wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind);
654 
655 QDF_STATUS wmi_unified_get_link_speed_cmd(void *wmi_hdl,
656 					wmi_mac_addr peer_macaddr);
657 
658 QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl,
659 		wmi_ap_ps_egap_param_cmd_fixed_param *egap_params);
660 
661 #endif
662 
663 QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl,
664 			uint32_t cmd, uint32_t value1, uint32_t value2);
665 
666 QDF_STATUS wmi_unified_nat_keepalive_en_cmd(void *wmi_hdl, uint8_t vdev_id);
667 
668 QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id);
669 
670 QDF_STATUS wmi_unified_start_oem_data_cmd(void *wmi_hdl,
671 			  uint32_t data_len,
672 			  uint8_t *data);
673 
674 QDF_STATUS wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl,
675 			bool dfs_phyerr_filter_offload);
676 
677 #ifdef CONFIG_MCL
678 QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl,
679 				   WMI_PKTLOG_EVENT pktlog_event,
680 				   uint32_t cmd_id,
681 				   uint8_t user_triggered);
682 #endif
683 
684 QDF_STATUS wmi_unified_wow_delete_pattern_cmd(void *wmi_hdl, uint8_t ptrn_id,
685 					uint8_t vdev_id);
686 
687 QDF_STATUS wmi_unified_host_wakeup_ind_to_fw_cmd(void *wmi_hdl);
688 QDF_STATUS wmi_unified_del_ts_cmd(void *wmi_hdl, uint8_t vdev_id,
689 				uint8_t ac);
690 
691 QDF_STATUS wmi_unified_aggr_qos_cmd(void *wmi_hdl,
692 		      struct aggr_add_ts_param *aggr_qos_rsp_msg);
693 
694 QDF_STATUS wmi_unified_add_ts_cmd(void *wmi_hdl,
695 		 struct add_ts_param *msg);
696 
697 QDF_STATUS wmi_unified_enable_disable_packet_filter_cmd(void *wmi_hdl,
698 					uint8_t vdev_id, bool enable);
699 
700 QDF_STATUS wmi_unified_config_packet_filter_cmd(void *wmi_hdl,
701 		uint8_t vdev_id, struct rcv_pkt_filter_config *rcv_filter_param,
702 		uint8_t filter_id, bool enable);
703 
704 QDF_STATUS wmi_unified_process_add_periodic_tx_ptrn_cmd(void *wmi_hdl,
705 						struct periodic_tx_pattern  *
706 						pAddPeriodicTxPtrnParams,
707 						uint8_t vdev_id);
708 
709 QDF_STATUS wmi_unified_process_del_periodic_tx_ptrn_cmd(void *wmi_hdl,
710 						uint8_t vdev_id,
711 						uint8_t pattern_id);
712 
713 QDF_STATUS wmi_unified_stats_ext_req_cmd(void *wmi_hdl,
714 			struct stats_ext_params *preq);
715 
716 QDF_STATUS wmi_unified_enable_ext_wow_cmd(void *wmi_hdl,
717 			struct ext_wow_params *params);
718 
719 QDF_STATUS wmi_unified_set_app_type2_params_in_fw_cmd(void *wmi_hdl,
720 					  struct app_type2_params *appType2Params);
721 
722 QDF_STATUS wmi_unified_set_auto_shutdown_timer_cmd(void *wmi_hdl,
723 						  uint32_t timer_val);
724 
725 QDF_STATUS wmi_unified_nan_req_cmd(void *wmi_hdl,
726 			struct nan_req_params *nan_req);
727 
728 QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(void *wmi_hdl,
729 				struct dhcp_offload_info_params *pDhcpSrvOffloadInfo);
730 
731 QDF_STATUS wmi_unified_process_ch_avoid_update_cmd(void *wmi_hdl);
732 
733 QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(void *wmi_hdl,
734 				   uint32_t reg_dmn, uint16_t regdmn2G,
735 				   uint16_t regdmn5G, int8_t ctl2G,
736 				   int8_t ctl5G);
737 
738 QDF_STATUS wmi_unified_set_tdls_offchan_mode_cmd(void *wmi_hdl,
739 			      struct tdls_channel_switch_params *chan_switch_params);
740 
741 QDF_STATUS wmi_unified_update_fw_tdls_state_cmd(void *wmi_hdl,
742 					 void *tdls_param, uint8_t tdls_state);
743 
744 QDF_STATUS wmi_unified_update_tdls_peer_state_cmd(void *wmi_hdl,
745 			       struct tdls_peer_state_params *peerStateParams,
746 				   uint32_t *ch_mhz);
747 
748 QDF_STATUS wmi_unified_process_fw_mem_dump_cmd(void *wmi_hdl,
749 					struct fw_dump_req_param *mem_dump_req);
750 
751 QDF_STATUS wmi_unified_process_set_ie_info_cmd(void *wmi_hdl,
752 				   struct vdev_ie_info_param *ie_info);
753 
754 QDF_STATUS wmi_unified_ocb_set_utc_time_cmd(void *wmi_hdl,
755 			  struct ocb_utc_param *utc);
756 
757 QDF_STATUS wmi_unified_dcc_get_stats_cmd(void *wmi_hdl,
758 		     struct dcc_get_stats_param *get_stats_param);
759 
760 QDF_STATUS wmi_unified_dcc_clear_stats(void *wmi_hdl,
761 				uint32_t vdev_id, uint32_t dcc_stats_bitmap);
762 
763 QDF_STATUS wmi_unified_dcc_update_ndl(void *wmi_hdl,
764 		       struct dcc_update_ndl_param *update_ndl_param);
765 
766 QDF_STATUS wmi_unified_save_fw_version_cmd(void *wmi_hdl,
767 		void *evt_buf);
768 
769 #ifdef CONFIG_MCL
770 QDF_STATUS wmi_unified_send_init_cmd(void *wmi_hdl,
771 		wmi_resource_config *res_cfg,
772 		uint8_t num_mem_chunks, struct wmi_host_mem_chunk *mem_chunk,
773 		bool action);
774 #endif
775 
776 QDF_STATUS wmi_unified_send_saved_init_cmd(void *wmi_hdl);
777 
778 QDF_STATUS wmi_unified_set_base_macaddr_indicate_cmd(void *wmi_hdl,
779 					 uint8_t *custom_addr);
780 
781 QDF_STATUS wmi_unified_log_supported_evt_cmd(void *wmi_hdl,
782 		uint8_t *event,
783 		uint32_t len);
784 
785 QDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl,
786 		struct wmi_wifi_start_log *start_log);
787 
788 QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(void *wmi_hdl);
789 
790 QDF_STATUS wmi_unified_pdev_set_pcl_cmd(void *wmi_hdl,
791 				struct wmi_pcl_chan_weights *msg);
792 
793 QDF_STATUS wmi_unified_soc_set_hw_mode_cmd(void *wmi_hdl,
794 				uint32_t hw_mode_index);
795 
796 QDF_STATUS wmi_unified_pdev_set_dual_mac_config_cmd(void *wmi_hdl,
797 		struct wmi_dual_mac_config *msg);
798 
799 /**
800  * wmi_unified_configure_broadcast_filter_cmd() - Enable/Disable Broadcast
801  * filter
802  * when target goes to wow suspend/resume mode
803  * @wmi_hdl: wmi handle
804  * @vdev_id: device identifier
805  * @bc_filter: enable/disable Broadcast filter
806  *
807  *
808  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
809  */
810 QDF_STATUS wmi_unified_configure_broadcast_filter_cmd(void *wmi_hdl,
811 			   uint8_t vdev_id, bool bc_filter);
812 
813 QDF_STATUS wmi_unified_set_led_flashing_cmd(void *wmi_hdl,
814 				struct flashing_req_params *flashing);
815 
816 QDF_STATUS wmi_unified_app_type1_params_in_fw_cmd(void *wmi_hdl,
817 				   struct app_type1_params *app_type1_params);
818 
819 QDF_STATUS wmi_unified_set_ssid_hotlist_cmd(void *wmi_hdl,
820 		     struct ssid_hotlist_request_params *request);
821 
822 QDF_STATUS wmi_unified_roam_synch_complete_cmd(void *wmi_hdl,
823 		 uint8_t vdev_id);
824 
825 QDF_STATUS wmi_unified_unit_test_cmd(void *wmi_hdl,
826 			       struct wmi_unit_test_cmd *wmi_utest);
827 
828 QDF_STATUS wmi_unified_roam_invoke_cmd(void *wmi_hdl,
829 		struct wmi_roam_invoke_cmd *roaminvoke,
830 		uint32_t ch_hz);
831 
832 QDF_STATUS wmi_unified_roam_scan_offload_cmd(void *wmi_hdl,
833 					 uint32_t command, uint32_t vdev_id);
834 
835 #ifdef CONFIG_MCL
836 QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(void *wmi_hdl,
837 					    wmi_ap_profile *ap_profile_p,
838 					    uint32_t vdev_id);
839 #endif
840 
841 QDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl,
842 					     uint32_t scan_period,
843 					     uint32_t scan_age,
844 					     uint32_t vdev_id);
845 
846 QDF_STATUS wmi_unified_roam_scan_offload_chan_list_cmd(void *wmi_hdl,
847 				   uint8_t chan_count,
848 				   uint32_t *chan_list,
849 				   uint8_t list_type, uint32_t vdev_id);
850 
851 QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl,
852 			  uint32_t vdev_id,
853 			  int32_t rssi_change_thresh,
854 			  uint32_t bcn_rssi_weight,
855 			  uint32_t hirssi_delay_btw_scans);
856 
857 QDF_STATUS wmi_unified_get_buf_extscan_hotlist_cmd(void *wmi_hdl,
858 				   struct ext_scan_setbssi_hotlist_params *
859 				   photlist, int *buf_len);
860 
861 QDF_STATUS wmi_unified_stats_request_send(void *wmi_hdl,
862 				uint8_t macaddr[IEEE80211_ADDR_LEN],
863 				struct stats_request_params *param);
864 
865 QDF_STATUS wmi_unified_pdev_get_tpc_config_cmd_send(void *wmi_hdl,
866 				uint32_t param);
867 
868 QDF_STATUS wmi_unified_set_bwf_cmd_send(void *wmi_hdl,
869 				struct set_bwf_params *param);
870 
871 QDF_STATUS wmi_send_get_user_position_cmd(void *wmi_hdl, uint32_t value);
872 
873 QDF_STATUS wmi_send_get_peer_mumimo_tx_count_cmd(void *wmi_hdl, uint32_t value);
874 
875 QDF_STATUS wmi_send_reset_peer_mumimo_tx_count_cmd(void *wmi_hdl,
876 				uint32_t value);
877 
878 QDF_STATUS wmi_send_pdev_caldata_version_check_cmd(void *wmi_hdl,
879 				uint32_t value);
880 
881 QDF_STATUS wmi_unified_send_btcoex_wlan_priority_cmd(void *wmi_hdl,
882 				struct btcoex_cfg_params *param);
883 
884 QDF_STATUS wmi_unified_send_btcoex_duty_cycle_cmd(void *wmi_hdl,
885 				struct btcoex_cfg_params *param);
886 
887 QDF_STATUS wmi_unified_send_coex_ver_cfg_cmd(void *wmi_hdl,
888 				coex_ver_cfg_t *param);
889 
890 QDF_STATUS wmi_unified_set_atf_cmd_send(void *wmi_hdl,
891 				struct set_atf_params *param);
892 
893 QDF_STATUS wmi_unified_pdev_fips_cmd_send(void *wmi_hdl,
894 				struct fips_params *param);
895 
896 QDF_STATUS wmi_unified_wlan_profile_enable_cmd_send(void *wmi_hdl,
897 				struct wlan_profile_params *param);
898 
899 QDF_STATUS wmi_unified_wlan_profile_trigger_cmd_send(void *wmi_hdl,
900 				struct wlan_profile_params *param);
901 
902 QDF_STATUS wmi_unified_set_chan_cmd_send(void *wmi_hdl,
903 				struct channel_param *param);
904 
905 QDF_STATUS wmi_unified_set_ht_ie_cmd_send(void *wmi_hdl,
906 				struct ht_ie_params *param);
907 
908 QDF_STATUS wmi_unified_set_vht_ie_cmd_send(void *wmi_hdl,
909 				struct vht_ie_params *param);
910 
911 QDF_STATUS wmi_unified_wmm_update_cmd_send(void *wmi_hdl,
912 				struct wmm_update_params *param);
913 
914 QDF_STATUS wmi_unified_set_ant_switch_tbl_cmd_send(void *wmi_hdl,
915 				struct ant_switch_tbl_params *param);
916 
917 QDF_STATUS wmi_unified_set_ratepwr_table_cmd_send(void *wmi_hdl,
918 				struct ratepwr_table_params *param);
919 
920 QDF_STATUS wmi_unified_get_ratepwr_table_cmd_send(void *wmi_hdl);
921 
922 QDF_STATUS wmi_unified_set_ctl_table_cmd_send(void *wmi_hdl,
923 				struct ctl_table_params *param);
924 
925 QDF_STATUS wmi_unified_set_mimogain_table_cmd_send(void *wmi_hdl,
926 				struct mimogain_table_params *param);
927 
928 QDF_STATUS wmi_unified_set_ratepwr_chainmsk_cmd_send(void *wmi_hdl,
929 				struct ratepwr_chainmsk_params *param);
930 
931 QDF_STATUS wmi_unified_set_macaddr_cmd_send(void *wmi_hdl,
932 				struct macaddr_params *param);
933 
934 QDF_STATUS wmi_unified_pdev_scan_start_cmd_send(void *wmi_hdl);
935 
936 QDF_STATUS wmi_unified_pdev_scan_end_cmd_send(void *wmi_hdl);
937 
938 QDF_STATUS wmi_unified_set_acparams_cmd_send(void *wmi_hdl,
939 				struct acparams_params *param);
940 
941 QDF_STATUS wmi_unified_set_vap_dscp_tid_map_cmd_send(void *wmi_hdl,
942 				struct vap_dscp_tid_map_params *param);
943 
944 QDF_STATUS wmi_unified_proxy_ast_reserve_cmd_send(void *wmi_hdl,
945 				struct proxy_ast_reserve_params *param);
946 
947 QDF_STATUS wmi_unified_pdev_qvit_cmd_send(void *wmi_hdl,
948 				struct pdev_qvit_params *param);
949 
950 QDF_STATUS wmi_unified_mcast_group_update_cmd_send(void *wmi_hdl,
951 				struct mcast_group_update_params *param);
952 
953 QDF_STATUS wmi_unified_peer_add_wds_entry_cmd_send(void *wmi_hdl,
954 				struct peer_add_wds_entry_params *param);
955 
956 QDF_STATUS wmi_unified_peer_del_wds_entry_cmd_send(void *wmi_hdl,
957 				struct peer_del_wds_entry_params *param);
958 
959 QDF_STATUS wmi_unified_peer_update_wds_entry_cmd_send(void *wmi_hdl,
960 				struct peer_update_wds_entry_params *param);
961 
962 QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl);
963 
964 QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl);
965 
966 QDF_STATUS wmi_unified_phyerr_disable_cmd_send(void *wmi_hdl);
967 
968 QDF_STATUS wmi_unified_smart_ant_enable_cmd_send(void *wmi_hdl,
969 				struct smart_ant_enable_params *param);
970 
971 QDF_STATUS wmi_unified_smart_ant_set_rx_ant_cmd_send(void *wmi_hdl,
972 				struct smart_ant_rx_ant_params *param);
973 
974 QDF_STATUS wmi_unified_smart_ant_set_tx_ant_cmd_send(void *wmi_hdl,
975 				uint8_t macaddr[IEEE80211_ADDR_LEN],
976 				struct smart_ant_tx_ant_params *param);
977 
978 QDF_STATUS wmi_unified_smart_ant_set_training_info_cmd_send(void *wmi_hdl,
979 				uint8_t macaddr[IEEE80211_ADDR_LEN],
980 				struct smart_ant_training_info_params *param);
981 
982 QDF_STATUS wmi_unified_smart_ant_node_config_cmd_send(void *wmi_hdl,
983 				uint8_t macaddr[IEEE80211_ADDR_LEN],
984 				struct smart_ant_node_config_params *param);
985 
986 QDF_STATUS wmi_unified_smart_ant_enable_tx_feedback_cmd_send(void *wmi_hdl,
987 			struct smart_ant_enable_tx_feedback_params *param);
988 
989 QDF_STATUS wmi_unified_vdev_spectral_configure_cmd_send(void *wmi_hdl,
990 				struct vdev_spectral_configure_params *param);
991 
992 QDF_STATUS wmi_unified_vdev_spectral_enable_cmd_send(void *wmi_hdl,
993 				struct vdev_spectral_enable_params *param);
994 
995 QDF_STATUS wmi_unified_bss_chan_info_request_cmd_send(void *wmi_hdl,
996 				struct bss_chan_info_request_params *param);
997 
998 QDF_STATUS wmi_unified_thermal_mitigation_param_cmd_send(void *wmi_hdl,
999 				struct thermal_mitigation_params *param);
1000 
1001 QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(void *wmi_hdl,
1002 				uint8_t macaddr[IEEE80211_ADDR_LEN],
1003 				struct set_neighbour_rx_params *param);
1004 
1005 QDF_STATUS wmi_unified_vdev_set_fwtest_param_cmd_send(void *wmi_hdl,
1006 				struct set_fwtest_params *param);
1007 
1008 QDF_STATUS wmi_unified_vdev_config_ratemask_cmd_send(void *wmi_hdl,
1009 				struct config_ratemask_params *param);
1010 
1011 
1012 QDF_STATUS wmi_unified_pdev_set_regdomain_cmd_send(void *wmi_hdl,
1013 				struct pdev_set_regdomain_params *param);
1014 
1015 QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(void *wmi_hdl,
1016 				struct set_quiet_mode_params *param);
1017 
1018 QDF_STATUS wmi_unified_set_beacon_filter_cmd_send(void *wmi_hdl,
1019 				struct set_beacon_filter_params *param);
1020 
1021 QDF_STATUS wmi_unified_remove_beacon_filter_cmd_send(void *wmi_hdl,
1022 				struct remove_beacon_filter_params *param);
1023 
1024 QDF_STATUS wmi_unified_addba_clearresponse_cmd_send(void *wmi_hdl,
1025 				uint8_t macaddr[IEEE80211_ADDR_LEN],
1026 				struct addba_clearresponse_params *param);
1027 
1028 QDF_STATUS wmi_unified_addba_send_cmd_send(void *wmi_hdl,
1029 				uint8_t macaddr[IEEE80211_ADDR_LEN],
1030 				struct addba_send_params *param);
1031 
1032 QDF_STATUS wmi_unified_delba_send_cmd_send(void *wmi_hdl,
1033 				uint8_t macaddr[IEEE80211_ADDR_LEN],
1034 				struct delba_send_params *param);
1035 
1036 QDF_STATUS wmi_unified_addba_setresponse_cmd_send(void *wmi_hdl,
1037 				uint8_t macaddr[IEEE80211_ADDR_LEN],
1038 				struct addba_setresponse_params *param);
1039 
1040 QDF_STATUS wmi_unified_singleamsdu_cmd_send(void *wmi_hdl,
1041 				uint8_t macaddr[IEEE80211_ADDR_LEN],
1042 				struct singleamsdu_params *param);
1043 
1044 QDF_STATUS wmi_unified_set_qboost_param_cmd_send(void *wmi_hdl,
1045 				uint8_t macaddr[IEEE80211_ADDR_LEN],
1046 				struct set_qboost_params *param);
1047 
1048 QDF_STATUS wmi_unified_mu_scan_cmd_send(void *wmi_hdl,
1049 				struct mu_scan_params *param);
1050 
1051 QDF_STATUS wmi_unified_lteu_config_cmd_send(void *wmi_hdl,
1052 				struct lteu_config_params *param);
1053 
1054 QDF_STATUS wmi_unified_set_psmode_cmd_send(void *wmi_hdl,
1055 				struct set_ps_mode_params *param);
1056 
1057 QDF_STATUS wmi_unified_init_cmd_send(void *wmi_hdl,
1058 				struct wmi_init_cmd_param *param);
1059 
1060 bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id);
1061 
1062 QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf,
1063 				   void *bitmap_buf);
1064 
1065 QDF_STATUS wmi_save_fw_version(void *wmi_hdl, void *evt_buf);
1066 
1067 QDF_STATUS wmi_get_target_cap_from_service_ready(void *wmi_hdl,
1068 				void *evt_buf,
1069 				struct wlan_psoc_target_capability_info *ev);
1070 
1071 QDF_STATUS wmi_extract_hal_reg_cap(void *wmi_hdl, void *evt_buf,
1072 			struct wlan_psoc_hal_reg_capability *hal_reg_cap);
1073 
1074 host_mem_req *wmi_extract_host_mem_req_from_service_ready(void *wmi_hdl,
1075 				void *evt_buf, uint8_t *num_entries);
1076 
1077 uint32_t wmi_ready_extract_init_status(void *wmi_hdl, void *ev);
1078 
1079 QDF_STATUS wmi_ready_extract_mac_addr(void *wmi_hdl,
1080 				void *ev, uint8_t *macaddr);
1081 
1082 QDF_STATUS wmi_extract_fw_version(void *wmi_hdl,
1083 				void *ev, struct wmi_host_fw_ver *fw_ver);
1084 
1085 QDF_STATUS wmi_extract_fw_abi_version(void *wmi_hdl,
1086 				void *ev, struct wmi_host_fw_abi_ver *fw_ver);
1087 
1088 QDF_STATUS wmi_check_and_update_fw_version(void *wmi_hdl, void *ev);
1089 
1090 uint8_t *wmi_extract_dbglog_data_len(void *wmi_hdl,
1091 				void *evt_b, uint32_t *len);
1092 
1093 QDF_STATUS wmi_send_ext_resource_config(void *wmi_hdl,
1094 				wmi_host_ext_resource_config *ext_cfg);
1095 
1096 QDF_STATUS wmi_unified_nf_dbr_dbm_info_get_cmd_send(void *wmi_hdl);
1097 
1098 QDF_STATUS wmi_unified_packet_power_info_get_cmd_send(void *wmi_hdl,
1099 				struct packet_power_info_params *param);
1100 
1101 QDF_STATUS wmi_unified_gpio_config_cmd_send(void *wmi_hdl,
1102 				struct gpio_config_params *param);
1103 
1104 QDF_STATUS wmi_unified_gpio_output_cmd_send(void *wmi_hdl,
1105 				struct gpio_output_params *param);
1106 
1107 QDF_STATUS wmi_unified_rtt_meas_req_test_cmd_send(void *wmi_hdl,
1108 				struct rtt_meas_req_test_params *param);
1109 
1110 QDF_STATUS wmi_unified_rtt_meas_req_cmd_send(void *wmi_hdl,
1111 				struct rtt_meas_req_params *param);
1112 
1113 QDF_STATUS wmi_unified_rtt_keepalive_req_cmd_send(void *wmi_hdl,
1114 				struct rtt_keepalive_req_params *param);
1115 
1116 QDF_STATUS wmi_unified_lci_set_cmd_send(void *wmi_hdl,
1117 				struct lci_set_params *param);
1118 
1119 QDF_STATUS wmi_unified_lcr_set_cmd_send(void *wmi_hdl,
1120 				struct lcr_set_params *param);
1121 
1122 QDF_STATUS wmi_unified_send_periodic_chan_stats_config_cmd(void *wmi_hdl,
1123 			struct periodic_chan_stats_params *param);
1124 
1125 QDF_STATUS
1126 wmi_send_atf_peer_request_cmd(void *wmi_hdl,
1127 			struct atf_peer_request_params *param);
1128 
1129 QDF_STATUS
1130 wmi_send_set_atf_grouping_cmd(void *wmi_hdl,
1131 			struct atf_grouping_params *param);
1132 /* Extract APIs */
1133 
1134 QDF_STATUS wmi_extract_wds_addr_event(void *wmi_hdl,
1135 		void *evt_buf, uint16_t len, wds_addr_event_t *wds_ev);
1136 
1137 QDF_STATUS wmi_extract_dcs_interference_type(void *wmi_hdl,
1138 		void *evt_buf, struct wmi_host_dcs_interference_param *param);
1139 
1140 QDF_STATUS wmi_extract_dcs_cw_int(void *wmi_hdl, void *evt_buf,
1141 		wmi_host_ath_dcs_cw_int *cw_int);
1142 
1143 QDF_STATUS wmi_extract_dcs_im_tgt_stats(void *wmi_hdl, void *evt_buf,
1144 		wmi_host_dcs_im_tgt_stats_t *wlan_stat);
1145 
1146 QDF_STATUS wmi_extract_fips_event_data(void *wmi_hdl, void *evt_buf,
1147 		struct wmi_host_fips_event_param *param);
1148 
1149 QDF_STATUS wmi_extract_vdev_start_resp(void *wmi_hdl, void *evt_buf,
1150 		wmi_host_vdev_start_resp *vdev_rsp);
1151 QDF_STATUS wmi_extract_tbttoffset_update_params(void *wmi_hdl, void *evt_buf,
1152 		uint32_t *vdev_map, uint32_t **tbttoffset_list);
1153 
1154 QDF_STATUS wmi_extract_mgmt_rx_params(void *wmi_hdl, void *evt_buf,
1155 		struct mgmt_rx_event_params *hdr, uint8_t **bufp);
1156 
1157 QDF_STATUS wmi_extract_vdev_stopped_param(void *wmi_hdl, void *evt_buf,
1158 		uint32_t *vdev_id);
1159 
1160 QDF_STATUS wmi_extract_vdev_roam_param(void *wmi_hdl, void *evt_buf,
1161 		wmi_host_roam_event *ev);
1162 
1163 QDF_STATUS wmi_extract_vdev_scan_ev_param(void *wmi_hdl, void *evt_buf,
1164 		wmi_host_scan_event *param);
1165 
1166 QDF_STATUS wmi_extract_mu_ev_param(void *wmi_hdl, void *evt_buf,
1167 		wmi_host_mu_report_event *param);
1168 
1169 QDF_STATUS wmi_extract_mu_db_entry(void *wmi_hdl, void *evt_buf,
1170 		uint8_t idx, wmi_host_mu_db_entry *param);
1171 
1172 QDF_STATUS wmi_extract_mumimo_tx_count_ev_param(void *wmi_hdl, void *evt_buf,
1173 		wmi_host_peer_txmu_cnt_event *param);
1174 
1175 QDF_STATUS wmi_extract_peer_gid_userpos_list_ev_param(void *wmi_hdl,
1176 		void *evt_buf, wmi_host_peer_gid_userpos_list_event *param);
1177 
1178 QDF_STATUS wmi_extract_pdev_caldata_version_check_ev_param(void *wmi_hdl,
1179 		void *evt_buf, wmi_host_pdev_check_cal_version_event *param);
1180 
1181 QDF_STATUS wmi_extract_pdev_tpc_config_ev_param(void *wmi_hdl, void *evt_buf,
1182 		wmi_host_pdev_tpc_config_event *param);
1183 
1184 QDF_STATUS wmi_extract_gpio_input_ev_param(void *wmi_hdl,
1185 		void *evt_buf, uint32_t *gpio_num);
1186 
1187 QDF_STATUS wmi_extract_pdev_reserve_ast_ev_param(void *wmi_hdl,
1188 		void *evt_buf, struct wmi_host_proxy_ast_reserve_param *param);
1189 
1190 QDF_STATUS wmi_extract_nfcal_power_ev_param(void *wmi_hdl, void *evt_buf,
1191 		wmi_host_pdev_nfcal_power_all_channels_event *param);
1192 
1193 QDF_STATUS wmi_extract_pdev_tpc_ev_param(void *wmi_hdl, void *evt_buf,
1194 		wmi_host_pdev_tpc_event *param);
1195 
1196 QDF_STATUS wmi_extract_pdev_generic_buffer_ev_param(void *wmi_hdl,
1197 		void *evt_buf,
1198 		wmi_host_pdev_generic_buffer_event *param);
1199 
1200 QDF_STATUS wmi_extract_mgmt_tx_compl_param(void *wmi_hdl, void *evt_buf,
1201 		wmi_host_mgmt_tx_compl_event *param);
1202 
1203 QDF_STATUS wmi_extract_pdev_csa_switch_count_status(void *wmi_hdl,
1204 		void *evt_buf,
1205 		struct pdev_csa_switch_count_status *param);
1206 
1207 QDF_STATUS wmi_extract_swba_vdev_map(void *wmi_hdl, void *evt_buf,
1208 		uint32_t *vdev_map);
1209 
1210 QDF_STATUS wmi_extract_swba_tim_info(void *wmi_hdl, void *evt_buf,
1211 		 uint32_t idx, wmi_host_tim_info *tim_info);
1212 
1213 QDF_STATUS wmi_extract_swba_noa_info(void *wmi_hdl, void *evt_buf,
1214 			uint32_t idx, wmi_host_p2p_noa_info *p2p_desc);
1215 
1216 QDF_STATUS wmi_extract_peer_sta_ps_statechange_ev(void *wmi_hdl,
1217 		void *evt_buf, wmi_host_peer_sta_ps_statechange_event *ev);
1218 
1219 QDF_STATUS wmi_extract_peer_sta_kickout_ev(void *wmi_hdl, void *evt_buf,
1220 		wmi_host_peer_sta_kickout_event *ev);
1221 
1222 QDF_STATUS wmi_extract_peer_ratecode_list_ev(void *wmi_hdl, void *evt_buf,
1223 		uint8_t *peer_mac, wmi_sa_rate_cap *rate_cap);
1224 
1225 QDF_STATUS wmi_extract_bcnflt_stats(void *wmi_hdl, void *evt_buf,
1226 		 uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats);
1227 
1228 QDF_STATUS wmi_extract_rtt_hdr(void *wmi_hdl, void *evt_buf,
1229 		wmi_host_rtt_event_hdr *ev);
1230 
1231 QDF_STATUS wmi_extract_rtt_ev(void *wmi_hdl, void *evt_buf,
1232 		wmi_host_rtt_meas_event *ev, uint8_t *hdump,
1233 		uint16_t hdump_len);
1234 
1235 QDF_STATUS wmi_extract_rtt_error_report_ev(void *wmi_hdl, void *evt_buf,
1236 		wmi_host_rtt_error_report_event *ev);
1237 
1238 QDF_STATUS wmi_extract_chan_stats(void *wmi_hdl, void *evt_buf,
1239 		uint32_t index, wmi_host_chan_stats *chan_stats);
1240 
1241 QDF_STATUS wmi_extract_thermal_stats(void *wmi_hdl, void *evt_buf,
1242 		uint32_t *temp, uint32_t *level);
1243 
1244 QDF_STATUS wmi_extract_thermal_level_stats(void *wmi_hdl, void *evt_buf,
1245 		uint8_t idx, uint32_t *levelcount, uint32_t *dccount);
1246 
1247 QDF_STATUS wmi_extract_comb_phyerr(void *wmi_hdl, void *evt_buf,
1248 			uint16_t datalen, uint16_t *buf_offset,
1249 			wmi_host_phyerr_t *phyerr);
1250 
1251 QDF_STATUS wmi_extract_single_phyerr(void *wmi_hdl, void *evt_buf,
1252 			uint16_t datalen, uint16_t *buf_offset,
1253 			wmi_host_phyerr_t *phyerr);
1254 
1255 QDF_STATUS wmi_extract_composite_phyerr(void *wmi_hdl, void *evt_buf,
1256 			uint16_t datalen, wmi_host_phyerr_t *phyerr);
1257 
1258 QDF_STATUS wmi_extract_profile_ctx(void *wmi_hdl, void *evt_buf,
1259 			wmi_host_wlan_profile_ctx_t *profile_ctx);
1260 
1261 QDF_STATUS wmi_extract_profile_data(void *wmi_hdl, void *evt_buf, uint8_t idx,
1262 			wmi_host_wlan_profile_t *profile_data);
1263 
1264 QDF_STATUS wmi_extract_chan_info_event(void *wmi_hdl, void *evt_buf,
1265 			wmi_host_chan_info_event *chan_info);
1266 
1267 QDF_STATUS wmi_extract_channel_hopping_event(void *wmi_hdl, void *evt_buf,
1268 			wmi_host_pdev_channel_hopping_event *ch_hopping);
1269 
1270 QDF_STATUS wmi_extract_stats_param(void *wmi_hdl, void *evt_buf,
1271 					   wmi_host_stats_event *stats_param);
1272 
1273 QDF_STATUS wmi_extract_pdev_stats(void *wmi_hdl, void *evt_buf,
1274 					 uint32_t index,
1275 					 wmi_host_pdev_stats *pdev_stats);
1276 
1277 QDF_STATUS wmi_extract_pdev_ext_stats(void *wmi_hdl, void *evt_buf,
1278 			uint32_t index,
1279 			wmi_host_pdev_ext_stats *pdev_ext_stats);
1280 
1281 QDF_STATUS wmi_extract_peer_extd_stats(void *wmi_hdl, void *evt_buf,
1282 			uint32_t index,
1283 			wmi_host_peer_extd_stats *peer_extd_stats);
1284 
1285 QDF_STATUS wmi_extract_bss_chan_info_event(void *wmi_hdl, void *evt_buf,
1286 			wmi_host_pdev_bss_chan_info_event *bss_chan_info);
1287 
1288 QDF_STATUS wmi_extract_inst_rssi_stats_event(void *wmi_hdl, void *evt_buf,
1289 			wmi_host_inst_stats_resp *inst_rssi_resp);
1290 
1291 QDF_STATUS wmi_extract_peer_stats(void *wmi_hdl, void *evt_buf,
1292 		uint32_t index, wmi_host_peer_stats *peer_stats);
1293 
1294 QDF_STATUS wmi_extract_tx_data_traffic_ctrl_ev(void *wmi_hdl, void *evt_buf,
1295 		wmi_host_tx_data_traffic_ctrl_event *ev);
1296 
1297 QDF_STATUS wmi_extract_atf_peer_stats_ev(void *wmi_hdl, void *evt_buf,
1298 		wmi_host_atf_peer_stats_event *ev);
1299 
1300 QDF_STATUS wmi_extract_atf_token_info_ev(void *wmi_hdl, void *evt_buf,
1301 		uint8_t idx, wmi_host_atf_peer_stats_info *atf_token_info);
1302 
1303 QDF_STATUS wmi_extract_vdev_stats(void *wmi_hdl, void *evt_buf,
1304 		uint32_t index, wmi_host_vdev_stats *vdev_stats);
1305 
1306 QDF_STATUS wmi_extract_vdev_extd_stats(void *wmi_hdl, void *evt_buf,
1307 		uint32_t index, wmi_host_vdev_extd_stats *vdev_extd_stats);
1308 
1309 QDF_STATUS wmi_unified_send_power_dbg_cmd(void *wmi_hdl,
1310 				struct wmi_power_dbg_params *param);
1311 
1312 QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd(void *wmi_hdl,
1313 				struct multiple_vdev_restart_params *param);
1314 
1315 QDF_STATUS wmi_unified_send_sar_limit_cmd(void *wmi_hdl,
1316 				struct sar_limit_cmd_params *params);
1317 QDF_STATUS wmi_unified_send_adapt_dwelltime_params_cmd(void *wmi_hdl,
1318 				   struct wmi_adaptive_dwelltime_params *
1319 				   wmi_param);
1320 QDF_STATUS wmi_unified_fw_test_cmd(void *wmi_hdl,
1321 				   struct set_fwtest_params *wmi_fwtest);
1322 
1323 QDF_STATUS wmi_unified_peer_rx_reorder_queue_setup_send(void *wmi_hdl,
1324 					struct rx_reorder_queue_setup_params *param);
1325 QDF_STATUS wmi_unified_peer_rx_reorder_queue_remove_send(void *wmi_hdl,
1326 					struct rx_reorder_queue_remove_params *param);
1327 
1328 QDF_STATUS wmi_extract_service_ready_ext(void *wmi_hdl, uint8_t *evt_buf,
1329 		struct wlan_psoc_host_service_ext_param *param);
1330 QDF_STATUS wmi_extract_hw_mode_cap_service_ready_ext(
1331 			void *wmi_hdl,
1332 			uint8_t *evt_buf, uint8_t hw_mode_idx,
1333 			struct wlan_psoc_host_hw_mode_caps *param);
1334 QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext(
1335 			void *wmi_hdl,
1336 			uint8_t *evt_buf,
1337 			uint8_t hw_mode_id,
1338 			uint8_t phy_id,
1339 			struct wlan_psoc_host_mac_phy_caps *param);
1340 QDF_STATUS wmi_extract_reg_cap_service_ready_ext(
1341 			void *wmi_hdl,
1342 			uint8_t *evt_buf, uint8_t phy_idx,
1343 			struct wlan_psoc_host_hal_reg_capabilities_ext *param);
1344 QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl,
1345 				      uint8_t *evt_buf,
1346 				      struct wmi_host_pdev_utf_event *param);
1347 
1348 QDF_STATUS wmi_extract_pdev_qvit_event(void *wmi_hdl,
1349 				      uint8_t *evt_buf,
1350 				      struct wmi_host_pdev_qvit_event *param);
1351 
1352 QDF_STATUS wmi_extract_peer_delete_response_event(void *wmi_hdl,
1353 		uint8_t *evt_buf,
1354 		struct wmi_host_peer_delete_response_event *param);
1355 #endif /* _WMI_UNIFIED_API_H_ */
1356