blob: 97d31432bc1dc0673ea17b7444c0d860132044ce [file] [log] [blame]
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -08001/*
Kiran Kumar Lokere25531c42018-09-19 13:48:48 -07002 * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -08003 *
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -08004 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
19/*
Govind Singh01dd33e2016-02-04 18:42:30 +053020 * This file contains the API definitions for the Unified Wireless Module
21 * Interface (WMI).
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -080022 */
23
24#ifndef _WMI_UNIFIED_API_H_
25#define _WMI_UNIFIED_API_H_
26
27#include <osdep.h>
Himanshu Agarwal810141a2016-07-19 15:41:51 +053028#ifdef CONFIG_MCL
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -080029#include "wmi.h"
Himanshu Agarwal810141a2016-07-19 15:41:51 +053030#endif
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -080031#include "htc_api.h"
Govind Singhe9cda9a2016-03-09 11:34:12 +053032#include "wmi_unified_param.h"
Srinivas Pitlac6645722018-01-08 16:55:36 +053033#include "service_ready_param.h"
Mukul Sharma45223f32017-01-30 19:55:40 +053034#include "wlan_objmgr_psoc_obj.h"
Himanshu Agarwal009eee12017-01-05 14:23:18 +053035#include "wlan_mgmt_txrx_utils_api.h"
Wu Gaodd58f632018-05-17 16:14:00 +080036#ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
Mukul Sharmacb5bf772017-02-25 01:50:47 +053037#include "wmi_unified_pmo_api.h"
38#endif
Om Prakash Tripathi89db19b2017-02-25 15:53:30 +053039#include "wlan_scan_public_structs.h"
Nachiket Kukade88ae8532017-12-15 12:36:58 +053040#ifdef WLAN_FEATURE_DISA
41#include "wlan_disa_public_struct.h"
42#endif
Rajeev Kumar Sirasanagandla66970852017-09-18 16:47:52 +053043#ifdef WLAN_FEATURE_ACTION_OUI
44#include "wlan_action_oui_public_struct.h"
45#endif
Himanshu Agarwalb3c81ac2018-01-10 14:21:53 +053046#ifdef WLAN_SUPPORT_GREEN_AP
47#include "wlan_green_ap_api.h"
48#endif
Zhang Qian2e1a7bc2018-01-05 16:50:53 +080049#ifdef WLAN_FEATURE_DSRC
50#include "wlan_ocb_public_structs.h"
51#endif
Kiran Venkatappa99556ec2018-02-05 10:56:43 +053052#ifdef WLAN_SUPPORT_TWT
53#include "wmi_unified_twt_param.h"
54#include "wmi_unified_twt_api.h"
55#endif
Naveen Rawat68805122017-12-14 13:24:31 -080056
Wen Gongdaa95152018-05-18 16:03:41 +080057#ifdef FEATURE_WLAN_EXTSCAN
58#include "wmi_unified_extscan_api.h"
59#endif
60
Sravan Kumar Kairamea66b682018-02-15 23:28:34 +053061#ifdef IPA_OFFLOAD
62#include "wlan_ipa_public_struct.h"
63#endif
64
Sathish Kumara8dcd502018-10-02 11:03:59 +053065#ifdef WMI_SMART_ANT_SUPPORT
66#include "wmi_unified_smart_ant_api.h"
67#endif
68
69#ifdef WMI_DBR_SUPPORT
70#include "wmi_unified_dbr_api.h"
71#endif
72
73#ifdef WMI_ATF_SUPPORT
74#include "wmi_unified_atf_api.h"
75#endif
76
77#ifdef WMI_AP_SUPPORT
78#include "wmi_unified_ap_api.h"
79#endif
80
Qiwei Cai770c90f2018-09-17 19:17:13 +080081#ifdef WLAN_FEATURE_DSRC
82#include "wmi_unified_ocb_api.h"
83#endif
84
Nachiket Kukadee2c9a742019-01-08 16:21:04 +053085#ifdef WLAN_FEATURE_NAN
Qiwei Cai770c90f2018-09-17 19:17:13 +080086#include "wmi_unified_nan_api.h"
87#endif
88
89#ifdef CONVERGED_P2P_ENABLE
90#include <wmi_unified_p2p_api.h>
91#endif
92
93#ifdef WMI_ROAM_SUPPORT
94#include "wmi_unified_roam_api.h"
95#endif
96
97#ifdef WMI_CONCURRENCY_SUPPORT
98#include "wmi_unified_concurrency_api.h"
99#endif
100
101#ifdef WMI_STA_SUPPORT
102#include "wmi_unified_sta_api.h"
103#endif
104
Govind Singh236fc202016-03-09 14:32:57 +0530105typedef qdf_nbuf_t wmi_buf_t;
106#define wmi_buf_data(_buf) qdf_nbuf_data(_buf)
107
108#define WMI_LOGD(args ...) \
109 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_DEBUG, ## args)
110#define WMI_LOGI(args ...) \
111 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_INFO, ## args)
112#define WMI_LOGW(args ...) \
113 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_WARN, ## args)
114#define WMI_LOGE(args ...) \
115 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, ## args)
116#define WMI_LOGP(args ...) \
117 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_FATAL, ## args)
118
Sourav Mohapatra9a6ee7d2019-02-08 17:50:49 +0530119/* Number of bits to shift to combine 32 bit integer to 64 bit */
120#define WMI_LOWER_BITS_SHIFT_32 0x20
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800121
Arif Hussainc5da01e2018-03-01 14:40:59 -0800122#define PHYERROR_MAX_BUFFER_LENGTH 0x7F000000
123
Kiran Venkatappab5c5b532017-02-10 16:57:59 +0530124struct wmi_soc;
Srinivas Girigowdaaafe28e2018-02-15 14:30:05 -0800125struct policy_mgr_dual_mac_config;
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800126/**
Harprit Chhabada71c98462018-12-26 14:10:39 -0800127 * struct wmi_rx_ops - handle to wmi rx ops
128 * @scn_handle: handle to scn
129 * @ev: event buffer
130 * @rx_ctx: rx execution context
Govind Singh01dd33e2016-02-04 18:42:30 +0530131 * @wma_process_fw_event_handler_cbk: generic event handler callback
132 */
Govind Singhe9cda9a2016-03-09 11:34:12 +0530133struct wmi_rx_ops {
Govind Singh3f302ec2016-03-09 12:03:29 +0530134
Harprit Chhabada71c98462018-12-26 14:10:39 -0800135 int (*wma_process_fw_event_handler_cbk)(ol_scn_t scn_handle,
136 void *ev,
137 uint8_t rx_ctx);
Govind Singh01dd33e2016-02-04 18:42:30 +0530138};
139
140/**
141 * enum wmi_target_type - type of supported wmi command
142 * @WMI_TLV_TARGET: tlv based target
143 * @WMI_NON_TLV_TARGET: non-tlv based target
144 *
145 */
146enum wmi_target_type {
147 WMI_TLV_TARGET,
Pratik Gandhi6c8fdba2018-01-30 19:05:41 +0530148 WMI_NON_TLV_TARGET,
149 WMI_MAX_TARGET_TYPE
Govind Singh01dd33e2016-02-04 18:42:30 +0530150};
151
152/**
Govind Singh3f302ec2016-03-09 12:03:29 +0530153 * enum wmi_rx_exec_ctx - wmi rx execution context
154 * @WMI_RX_WORK_CTX: work queue context execution provided by WMI layer
155 * @WMI_RX_UMAC_CTX: execution context provided by umac layer
156 *
157 */
158enum wmi_rx_exec_ctx {
159 WMI_RX_WORK_CTX,
160 WMI_RX_UMAC_CTX
161};
162
163/**
Chaithanya Garrepalli830d5852017-12-01 14:55:26 +0530164 * struct wmi_unified_attach_params - wmi init parameters
Surya Prakash4e517d72019-04-29 10:13:44 +0530165 * @osdev: NIC device
166 * @target_type: type of supported wmi command
167 * @use_cookie: flag to indicate cookie based allocation
168 * @is_async_ep: queueing interrupt or non-interrupt endpoint
169 * @rx_ops: handle to wmi ops
170 * @psoc: objmgr psoc
171 * @max_commands: max commands
172 * @soc_id: SoC device instance id
Chaithanya Garrepalli830d5852017-12-01 14:55:26 +0530173 */
174struct wmi_unified_attach_params {
175 osdev_t osdev;
176 enum wmi_target_type target_type;
177 bool use_cookie;
phadimane5a330a2018-11-13 12:04:07 +0530178 bool is_async_ep;
Chaithanya Garrepalli830d5852017-12-01 14:55:26 +0530179 struct wmi_rx_ops *rx_ops;
180 struct wlan_objmgr_psoc *psoc;
181 uint16_t max_commands;
c_priysb214c242018-06-12 16:53:51 +0530182 uint32_t soc_id;
Chaithanya Garrepalli830d5852017-12-01 14:55:26 +0530183};
184
185/**
186 * attach for unified WMI
187 *
188 * @param scn_handle : handle to SCN.
189 * @param params : attach params for WMI
190 *
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800191 */
192void *wmi_unified_attach(void *scn_handle,
Chaithanya Garrepalli830d5852017-12-01 14:55:26 +0530193 struct wmi_unified_attach_params *params);
Mukul Sharma45223f32017-01-30 19:55:40 +0530194
Govind Singh01dd33e2016-02-04 18:42:30 +0530195
Sandeep Puligillaac71f152016-06-13 15:42:55 -0700196
Sandeep Puligilla489c7192016-07-19 13:20:57 -0700197/**
198 * wmi_mgmt_cmd_record() - Wrapper function for mgmt command logging macro
199 *
200 * @wmi_handle: wmi handle
201 * @cmd: mgmt command
202 * @header: pointer to 802.11 header
203 * @vdev_id: vdev id
204 * @chanfreq: channel frequency
205 *
206 * Return: none
207 */
Himanshu Agarwal810141a2016-07-19 15:41:51 +0530208void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd,
Sandeep Puligilla489c7192016-07-19 13:20:57 -0700209 void *header, uint32_t vdev_id, uint32_t chanfreq);
Sandeep Puligillaac71f152016-06-13 15:42:55 -0700210
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800211/**
212 * detach for unified WMI
213 *
214 * @param wmi_handle : handle to WMI.
215 * @return void.
216 */
217void wmi_unified_detach(struct wmi_unified *wmi_handle);
218
gaurank kathpalia1435fba2018-02-21 18:58:29 +0530219/**
220 * API to sync time between host and firmware
221 *
Himanshu Batra9173c912019-06-20 12:14:43 +0530222 * @wmi_handle: handle to WMI.
223 *
224 * Return: none
gaurank kathpalia1435fba2018-02-21 18:58:29 +0530225 */
Himanshu Batra9173c912019-06-20 12:14:43 +0530226void wmi_send_time_stamp_sync_cmd_tlv(wmi_unified_t wmi_handle);
gaurank kathpalia1435fba2018-02-21 18:58:29 +0530227
Xun Luo9a863a42015-11-10 08:24:45 -0800228void
229wmi_unified_remove_work(struct wmi_unified *wmi_handle);
230
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800231/**
232 * generic function to allocate WMI buffer
233 *
234 * @param wmi_handle : handle to WMI.
235 * @param len : length of the buffer
236 * @return wmi_buf_t.
237 */
Shiva Krishna Pittalab1554312018-04-02 17:23:42 +0530238#ifdef NBUF_MEMORY_DEBUG
Arif Hussain61847a92018-08-09 16:11:14 -0700239#define wmi_buf_alloc(h, l) wmi_buf_alloc_debug(h, l, __func__, __LINE__)
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800240wmi_buf_t
Debasis Das78495ce2018-04-04 17:17:55 +0530241wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint32_t len,
Arif Hussain61847a92018-08-09 16:11:14 -0700242 const char *func_name, uint32_t line_num);
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800243#else
Arif Hussain58189eb2018-07-19 14:15:36 -0700244/**
245 * wmi_buf_alloc() - generic function to allocate WMI buffer
246 * @wmi_handle: handle to WMI.
247 * @len: length of the buffer
248 *
249 * Return: return wmi_buf_t or null if memory alloc fails
250 */
251#define wmi_buf_alloc(wmi_handle, len) \
252 wmi_buf_alloc_fl(wmi_handle, len, __func__, __LINE__)
253
254wmi_buf_t wmi_buf_alloc_fl(wmi_unified_t wmi_handle, uint32_t len,
255 const char *func, uint32_t line);
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800256#endif
257
258/**
259 * generic function frees WMI net buffer
260 *
261 * @param net_buf : Pointer ot net_buf to be freed
262 */
263void wmi_buf_free(wmi_buf_t net_buf);
264
265/**
Arif Hussainffcaef42018-07-19 15:05:16 -0700266 * wmi_unified_cmd_send() - generic function to send unified WMI command
267 * @wmi_handle: handle to WMI.
268 * @buf: wmi command buffer
269 * @buflen: wmi command buffer length
270 * @cmd_id: WMI cmd id
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800271 *
Arif Hussainffcaef42018-07-19 15:05:16 -0700272 * Note, it is NOT safe to access buf after calling this function!
273 *
274 * Return: QDF_STATUS
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800275 */
Arif Hussainffcaef42018-07-19 15:05:16 -0700276#define wmi_unified_cmd_send(wmi_handle, buf, buflen, cmd_id) \
277 wmi_unified_cmd_send_fl(wmi_handle, buf, buflen, \
278 cmd_id, __func__, __LINE__)
279
Houston Hoffmane007aed2016-09-27 23:29:49 -0700280QDF_STATUS
Arif Hussainffcaef42018-07-19 15:05:16 -0700281wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf,
282 uint32_t buflen, uint32_t cmd_id,
283 const char *func, uint32_t line);
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800284
285/**
Soumya Bhat8b71edb2017-03-22 14:41:01 +0530286 * wmi_unified_register_event() - WMI event handler
287 * registration function for converged components
288 *
289 * @wmi_handle: handle to WMI.
290 * @event_id: WMI event ID
291 * @handler_func: Event handler call back function
292 *
293 * @return 0 on success and -ve on failure.
294 */
295int
296wmi_unified_register_event(wmi_unified_t wmi_handle,
297 uint32_t event_id,
298 wmi_unified_event_handler handler_func);
299
300/**
Govind Singh3f302ec2016-03-09 12:03:29 +0530301 * wmi_unified_register_event_handler() - WMI event handler
302 * registration function
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800303 *
Govind Singh3f302ec2016-03-09 12:03:29 +0530304 * @wmi_handle: handle to WMI.
305 * @event_id: WMI event ID
306 * @handler_func: Event handler call back function
307 * @rx_ctx: rx event processing context
308 *
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800309 * @return 0 on success and -ve on failure.
310 */
311int
312wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
Mukul Sharma396cef72017-11-03 19:26:54 +0530313 wmi_conv_event_id event_id,
Govind Singh3f302ec2016-03-09 12:03:29 +0530314 wmi_unified_event_handler handler_func,
315 uint8_t rx_ctx);
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800316
317/**
Soumya Bhat169eff12017-03-27 12:26:56 +0530318 * WMI event handler unregister function for converged componets
319 *
320 * @param wmi_handle : handle to WMI.
321 * @param event_id : WMI event ID
322 * @return 0 on success and -ve on failure.
323 */
324int
325wmi_unified_unregister_event(wmi_unified_t wmi_handle,
326 uint32_t event_id);
327
328/**
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800329 * WMI event handler unregister function
330 *
331 * @param wmi_handle : handle to WMI.
332 * @param event_id : WMI event ID
333 * @return 0 on success and -ve on failure.
334 */
335int
336wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
Mukul Sharma396cef72017-11-03 19:26:54 +0530337 wmi_conv_event_id event_id);
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800338
339/**
340 * request wmi to connet its htc service.
341 * @param wmi_handle : handle to WMI.
Govind Singha5e18c42016-04-15 13:58:27 +0530342 * @param htc_handle : handle to HTC.
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800343 * @return void
344 */
Kiran Venkatappab5c5b532017-02-10 16:57:59 +0530345QDF_STATUS
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800346wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle,
347 void *htc_handle);
348
349/*
350 * WMI API to verify the host has enough credits to suspend
Govind Singha5e18c42016-04-15 13:58:27 +0530351 * @param wmi_handle : handle to WMI.
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800352 */
353
354int wmi_is_suspend_ready(wmi_unified_t wmi_handle);
355
356/**
Govind Singha5e18c42016-04-15 13:58:27 +0530357 * WMI API to get updated host_credits
358 * @param wmi_handle : handle to WMI.
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800359 */
360
361int wmi_get_host_credits(wmi_unified_t wmi_handle);
362
363/**
Govind Singha5e18c42016-04-15 13:58:27 +0530364 * WMI API to get WMI Pending Commands in the HTC queue
365 * @param wmi_handle : handle to WMI.
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800366 */
367
368int wmi_get_pending_cmds(wmi_unified_t wmi_handle);
369
370/**
Govind Singha5e18c42016-04-15 13:58:27 +0530371 * WMI API to set target suspend state
372 * @param wmi_handle : handle to WMI.
373 * @param val : suspend state boolean
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800374 */
Houston Hoffmanc5141b02015-11-18 02:36:30 -0800375void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val);
376
Govind Singha5e18c42016-04-15 13:58:27 +0530377/**
Ajit Pal Singheb5bf8c2019-03-28 19:23:40 +0530378 * wmi_is_target_suspended() - WMI API to check target suspend state
379 * @wmi_handle: handle to WMI.
380 *
381 * WMI API to check target suspend state
382 *
383 * Return: true if target is suspended, else false.
384 */
385bool wmi_is_target_suspended(struct wmi_unified *wmi_handle);
386
387/**
Sarada Prasanna Garnayak6249b432017-01-05 19:30:07 +0530388 * WMI API to set bus suspend state
389 * @param wmi_handle: handle to WMI.
390 * @param val: suspend state boolean
391 */
392void wmi_set_is_wow_bus_suspended(wmi_unified_t wmi_handle, A_BOOL val);
393
394/**
395 * WMI API to set crash injection state
396 * @param wmi_handle: handle to WMI.
397 * @param val: crash injection state boolean
398 */
399void wmi_tag_crash_inject(wmi_unified_t wmi_handle, A_BOOL flag);
400
401/**
Ravi Kumar Bokka0090e222016-11-09 18:07:56 +0530402 * WMI API to set target assert
403 * @param wmi_handle: handle to WMI.
404 * @param val: target assert config value.
405 *
406 * Return: none.
407 */
408void wmi_set_tgt_assert(wmi_unified_t wmi_handle, bool val);
409
410/**
Govind Singha5e18c42016-04-15 13:58:27 +0530411 * generic function to block unified WMI command
412 * @param wmi_handle : handle to WMI.
413 * @return 0 on success and -ve on failure.
414 */
415int
416wmi_stop(wmi_unified_t wmi_handle);
417
418/**
419 * API to flush all the previous packets associated with the wmi endpoint
420 *
421 * @param wmi_handle : handle to WMI.
422 */
423void
424wmi_flush_endpoint(wmi_unified_t wmi_handle);
425
426/**
Kiran Venkatappa8dfac072017-05-10 16:24:51 +0530427 * wmi_pdev_id_conversion_enable() - API to enable pdev_id conversion in WMI
428 * By default pdev_id conversion is not done in WMI.
429 * This API can be used enable conversion in WMI.
430 * @param wmi_handle : handle to WMI
431 * Return none
432 */
433void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle);
434
435/**
Govind Singha5e18c42016-04-15 13:58:27 +0530436 * API to handle wmi rx event after UMAC has taken care of execution
437 * context
438 *
439 * @param wmi_handle : handle to WMI.
440 * @param evt_buf : wmi event buffer
441 */
442void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
Houston Hoffmanc5141b02015-11-18 02:36:30 -0800443#ifdef FEATURE_RUNTIME_PM
444void
445wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val);
446bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle);
447#else
448static inline void
449wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val)
450{
451 return;
452}
453static inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle)
454{
455 return false;
456}
457#endif
458
Kiran Venkatappab5c5b532017-02-10 16:57:59 +0530459void *wmi_unified_get_soc_handle(struct wmi_unified *wmi_handle);
460
461void *wmi_unified_get_pdev_handle(struct wmi_soc *soc, uint32_t pdev_idx);
462
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800463/**
Govind Singh236fc202016-03-09 14:32:57 +0530464 * UMAC Callback to process fw event.
Govind Singha5e18c42016-04-15 13:58:27 +0530465 * @param wmi_handle : handle to WMI.
466 * @param evt_buf : wmi event buffer
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800467 */
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -0800468void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
469uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530470
Himanshu Batra9173c912019-06-20 12:14:43 +0530471/**
472 * wmi_unified_vdev_create_send() - send VDEV create command to fw
473 * @wmi_handle: wmi handle
474 * @param: pointer to hold vdev create parameter
475 * @macaddr: vdev mac address
476 *
477 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
478 */
479QDF_STATUS wmi_unified_vdev_create_send(wmi_unified_t wmi_handle,
480 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
481 struct vdev_create_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530482
Himanshu Batra9173c912019-06-20 12:14:43 +0530483/**
484 * wmi_unified_vdev_delete_send() - send VDEV delete command to fw
485 * @wmi_handle: wmi handle
486 * @if_id: vdev id
487 *
488 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
489 */
490QDF_STATUS wmi_unified_vdev_delete_send(wmi_unified_t wmi_handle,
491 uint8_t if_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530492
Ashish Kumar Dhanotiyac4fd2712018-11-08 21:35:46 +0530493/**
494 * wmi_unified_vdev_nss_chain_params_send() - send VDEV nss chain params to fw
495 * @wmi_handle: wmi handle
496 * @vdev_id: vdev id
497 * @nss_chains_user_cfg: user configured params to send
498 *
499 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
500 */
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530501QDF_STATUS
502wmi_unified_vdev_nss_chain_params_send(
503 wmi_unified_t wmi_handle,
504 uint8_t vdev_id,
505 struct vdev_nss_chains *nss_chains_user_cfg);
Ashish Kumar Dhanotiyac4fd2712018-11-08 21:35:46 +0530506
Chaithanya Garrepallib265cca2018-01-18 14:19:41 +0530507/**
Himanshu Batra9173c912019-06-20 12:14:43 +0530508 * wmi_unified_vdev_stop_send() - send vdev stop command to fw
509 * @wmi_handle: wmi handle
510 * @vdev_id: vdev id
Chaithanya Garrepallib265cca2018-01-18 14:19:41 +0530511 *
512 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
513 */
Himanshu Batra9173c912019-06-20 12:14:43 +0530514QDF_STATUS wmi_unified_vdev_stop_send(wmi_unified_t wmi_handle,
515 uint8_t vdev_id);
516
517/**
518 * wmi_unified_vdev_up_send() - send vdev up command in fw
519 * @wmi_handle: wmi handle
520 * @bssid: bssid
521 * @params: pointer to hold vdev up parameter
522 *
523 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
524 */
525QDF_STATUS wmi_unified_vdev_up_send(wmi_unified_t wmi_handle,
526 uint8_t bssid[QDF_MAC_ADDR_SIZE],
527 struct vdev_up_params *params);
528
529/**
530 * wmi_unified_vdev_down_send() - send vdev down command to fw
531 * @wmi_handle: wmi handle
532 * @vdev_id: vdev id
533 *
534 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
535 */
536QDF_STATUS wmi_unified_vdev_down_send(wmi_unified_t wmi_handle,
537 uint8_t vdev_id);
538
539/**
540 * wmi_unified_vdev_start_send() - send vdev start command to fw
541 * @wmi_handle: wmi handle
542 * @vdev_id: vdev id
543 *
544 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
545 */
546QDF_STATUS wmi_unified_vdev_start_send(wmi_unified_t wmi_handle,
547 struct vdev_start_params *req);
548
549/**
550 * wmi_unified_vdev_set_nac_rssi_send() - send NAC_RSSI command to fw
551 * @wmi_handle: handle to WMI
552 * @req: pointer to hold nac rssi request data
553 *
554 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
555 */
556QDF_STATUS
557wmi_unified_vdev_set_nac_rssi_send(wmi_unified_t wmi_handle,
558 struct vdev_scan_nac_rssi_params *req);
Himanshu Agarwal915c2702016-03-09 16:49:38 +0530559
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530560/**
561 * wmi_unified_hidden_ssid_vdev_restart_send() - restart vdev to set hidden ssid
562 * @wmi_handle: wmi handle
563 * @restart_params: vdev restart params
564 *
565 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
566 */
567QDF_STATUS
568wmi_unified_hidden_ssid_vdev_restart_send(
569 wmi_unified_t wmi_handle,
Himanshu Agarwal915c2702016-03-09 16:49:38 +0530570 struct hidden_ssid_vdev_restart_params *restart_params);
571
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530572/**
573 * wmi_unified_vdev_set_param_send() - WMI vdev set parameter function
574 * @wmi_handle: handle to WMI.
575 * @macaddr: MAC address
576 * @param: pointer to hold vdev set parameter
577 *
578 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
579 */
580QDF_STATUS
581wmi_unified_vdev_set_param_send(wmi_unified_t wmi_handle,
Govind Singhe9cda9a2016-03-09 11:34:12 +0530582 struct vdev_set_params *param);
583
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530584/**
585 * wmi_unified_sifs_trigger_send() - WMI vdev sifs trigger parameter function
586 * @wmi_handle: handle to WMI.
587 * @param: pointer to hold sifs trigger parameter
588 *
589 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
590 */
591QDF_STATUS wmi_unified_sifs_trigger_send(wmi_unified_t wmi_handle,
narayana566dce2018-07-01 21:59:41 +0530592 struct sifs_trigger_param *param);
593
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530594/**
595 * wmi_unified_peer_delete_send() - send PEER delete command to fw
596 * @wmi_handle: wmi handle
597 * @peer_addr: peer mac addr
598 * @vdev_id: vdev id
599 *
600 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
601 */
602QDF_STATUS
603wmi_unified_peer_delete_send(wmi_unified_t wmi_handle,
604 uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
605 uint8_t vdev_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530606
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530607/**
608 * wmi_unified_peer_flush_tids_send() - flush peer tids packets in fw
609 * @wmi_handle: wmi handle
610 * @peer_addr: peer mac address
611 * @param: pointer to hold peer flush tid parameter
612 *
613 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
614 */
615QDF_STATUS
616wmi_unified_peer_flush_tids_send(wmi_unified_t wmi_handle,
617 uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
618 struct peer_flush_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530619
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530620/**
Naga8e517222019-06-24 17:05:45 +0530621 * wmi_unified_peer_delete_all_send() - send PEER delete all command to fw
622 * @wmi_hdl: wmi handle
623 * @param: pointer to hold peer delete all parameters
624 *
625 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
626 */
627QDF_STATUS wmi_unified_peer_delete_all_send(
628 wmi_unified_t wmi_hdl,
629 struct peer_delete_all_params *param);
630
631/**
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530632 * wmi_set_peer_param() - set peer parameter in fw
633 * @wmi_handle: wmi handle
634 * @peer_addr: peer mac address
635 * @param: pointer to hold peer set parameter
636 *
637 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
638 */
639QDF_STATUS
640wmi_set_peer_param_send(wmi_unified_t wmi_handle,
641 uint8_t peer_addr[QDF_MAC_ADDR_SIZE],
642 struct peer_set_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530643
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530644/**
645 * wmi_unified_peer_create_send() - send peer create command to fw
646 * @wmi_handle: wmi handle
647 * @peer_addr: peer mac address
648 * @peer_type: peer type
649 * @vdev_id: vdev id
650 *
651 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
652 */
653QDF_STATUS wmi_unified_peer_create_send(wmi_unified_t wmi_handle,
Govind Singhe9cda9a2016-03-09 11:34:12 +0530654 struct peer_create_params *param);
655
Anirban Sirkhell0f2677d2018-12-21 12:06:49 +0530656QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle,
Srinivas Girigowda2751b6d2019-02-27 12:28:13 -0800657 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
Anirban Sirkhell0f2677d2018-12-21 12:06:49 +0530658 struct stats_request_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530659
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530660/**
661 * wmi_unified_green_ap_ps_send() - enable green ap powersave command
662 * @wmi_handle: wmi handle
663 * @value: value
664 * @pdev_id: pdev id to have radio context
665 *
666 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
667 */
668QDF_STATUS wmi_unified_green_ap_ps_send(wmi_unified_t wmi_handle,
Himanshu Agarwalb3c81ac2018-01-10 14:21:53 +0530669 uint32_t value, uint8_t pdev_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530670
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530671/**
672 * wmi_unified_wow_enable_send() - WMI wow enable function
673 * @wmi_handle: handle to WMI.
674 * @param: pointer to hold wow enable parameter
675 * @mac_id: radio context
676 *
677 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
678 */
679QDF_STATUS wmi_unified_wow_enable_send(wmi_unified_t wmi_handle,
680 struct wow_cmd_params *param,
681 uint8_t mac_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530682
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530683/**
684 * wmi_unified_wow_wakeup_send() - WMI wow wakeup function
685 * @wmi_handle: handle to WMI.
686 *
687 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
688 */
689QDF_STATUS wmi_unified_wow_wakeup_send(wmi_unified_t wmi_handle);
Jeff Johnson589ca092016-10-07 13:03:02 -0700690
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530691/**
692 * wmi_unified_wow_add_wakeup_event_send() - WMI wow wakeup function
693 * @wmi_handle: handle to WMI.
694 * @param: pointer to wow wakeup event parameter structure
695 *
696 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
697 */
698QDF_STATUS
699wmi_unified_wow_add_wakeup_event_send(wmi_unified_t wmi_handle,
700 struct wow_add_wakeup_params *param);
Jeff Johnson589ca092016-10-07 13:03:02 -0700701
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530702/**
703 * wmi_unified_wow_add_wakeup_pattern_send() - WMI wow wakeup pattern function
704 * @wmi_handle: handle to WMI.
705 * @param: pointer to wow wakeup pattern parameter structure
706 *
707 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
708 */
709QDF_STATUS
710wmi_unified_wow_add_wakeup_pattern_send(
711 wmi_unified_t wmi_handle,
Jeff Johnson589ca092016-10-07 13:03:02 -0700712 struct wow_add_wakeup_pattern_params *param);
713
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530714/**
715 * wmi_unified_wow_remove_wakeup_pattern_send() - wow wakeup pattern function
716 * @wmi_handle: handle to WMI.
717 * @param: pointer to wow wakeup pattern parameter structure
718 *
719 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
720 */
721QDF_STATUS
722wmi_unified_wow_remove_wakeup_pattern_send(
723 wmi_unified_t wmi_handle,
Jeff Johnson589ca092016-10-07 13:03:02 -0700724 struct wow_remove_wakeup_pattern_params *param);
725
Vevek Venkatesan02c91642019-06-04 16:36:41 +0530726/**
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530727 * wmi_unified_packet_log_enable_send() - WMI request stats function
728 * @wmi_handle : handle to WMI.
729 * @PKTLOG_EVENT : PKTLOG Event
730 * @mac_id : MAC id corresponds to pdev id
Vevek Venkatesan02c91642019-06-04 16:36:41 +0530731 *
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530732 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
Vevek Venkatesan02c91642019-06-04 16:36:41 +0530733 */
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530734QDF_STATUS
735wmi_unified_packet_log_enable_send(wmi_unified_t wmi_handle,
736 WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT,
737 uint8_t mac_id);
Keyur Parekhc28f8392018-11-21 02:50:56 -0800738
739/**
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530740 * wmi_unified_peer_based_pktlog_send() - WMI request enable peer
741 * based filtering
742 * @wmi_handle: handle to WMI.
743 * @macaddr: PEER mac address to be filtered
744 * @mac_id: Mac id
745 * @enb_dsb: Enable or Disable peer based pktlog
746 * filtering
Keyur Parekhc28f8392018-11-21 02:50:56 -0800747 *
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530748 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
Keyur Parekhc28f8392018-11-21 02:50:56 -0800749 */
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530750QDF_STATUS wmi_unified_peer_based_pktlog_send(wmi_unified_t wmi_handle,
Keyur Parekhc28f8392018-11-21 02:50:56 -0800751 uint8_t *macaddr,
752 uint8_t mac_id,
753 uint8_t enb_dsb);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530754
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530755/**
756 * wmi_unified_packet_log_disable__send() - WMI pktlog disable function
757 * @wmi_handle: handle to WMI.
758 * @PKTLOG_EVENT: packet log event
759 *
760 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
761 */
762QDF_STATUS wmi_unified_packet_log_disable_send(wmi_unified_t wmi_handle,
763 uint8_t mac_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530764
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530765/**
766 * wmi_unified_suspend_send() - WMI suspend function
767 * @wmi_handle: handle to WMI.
768 * @param: pointer to hold suspend parameter
769 * @mac_id: radio context
770 *
771 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
772 */
773QDF_STATUS wmi_unified_suspend_send(wmi_unified_t wmi_handle,
774 struct suspend_params *param,
775 uint8_t mac_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530776
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530777/**
778 * wmi_unified_resume_send - WMI resume function
779 * @wmi_handle : handle to WMI.
780 * @mac_id: radio context
781 *
782 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
783 */
784QDF_STATUS wmi_unified_resume_send(wmi_unified_t wmi_handle,
785 uint8_t mac_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530786
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530787/**
788 * wmi_unified_pdev_param_send() - set pdev parameters
789 * @wmi_handle: wmi handle
790 * @param: pointer to pdev parameter
791 * @mac_id: radio context
792 *
793 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures,
794 * errno on failure
795 */
Govind Singh236fc202016-03-09 14:32:57 +0530796QDF_STATUS
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530797wmi_unified_pdev_param_send(wmi_unified_t wmi_handle,
798 struct pdev_params *param,
799 uint8_t mac_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530800
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530801/**
802 * wmi_unified_beacon_tmpl_send_cmd() - WMI beacon send function
803 * @wmi_handle: handle to WMI.
804 * @macaddr: MAC address
805 * @param: pointer to hold beacon send cmd parameter
806 *
807 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
808 */
809QDF_STATUS
810wmi_unified_beacon_tmpl_send_cmd(wmi_unified_t wmi_handle,
811 struct beacon_tmpl_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +0530812
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530813/**
814 * wmi_unified_peer_assoc_send() - WMI peer assoc function
815 * @wmi_handle: handle to WMI.
816 * @macaddr: MAC address
817 * @param: pointer to peer assoc parameter
818 *
819 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
820 */
821QDF_STATUS wmi_unified_peer_assoc_send(wmi_unified_t wmi_handle,
822 struct peer_assoc_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +0530823
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530824/**
825 * wmi_unified_sta_ps_cmd_send() - set sta powersave parameters
826 * @wmi_handle: wmi handle
827 * @peer_addr: peer mac address
828 * @param: pointer to sta_ps parameter structure
829 *
830 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
831 */
832QDF_STATUS wmi_unified_sta_ps_cmd_send(wmi_unified_t wmi_handle,
833 struct sta_ps_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530834
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530835/**
836 * wmi_unified_ap_ps_cmd_send() - set ap powersave parameters
837 * @wmi_handle: wmi handle
838 * @peer_addr: peer mac address
839 * @param: pointer to ap_ps parameter structure
840 *
841 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
842 */
843QDF_STATUS wmi_unified_ap_ps_cmd_send(wmi_unified_t wmi_handle,
844 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
845 struct ap_ps_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530846
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530847/**
848 * wmi_unified_scan_start_cmd_send() - WMI scan start function
849 * @wmi_handle: handle to WMI.
850 * @macaddr: MAC address
851 * @param: pointer to hold scan start cmd parameter
852 *
853 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
854 */
855QDF_STATUS
856wmi_unified_scan_start_cmd_send(wmi_unified_t wmi_handle,
Om Prakash Tripathi89db19b2017-02-25 15:53:30 +0530857 struct scan_req_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530858
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530859/**
860 * wmi_unified_scan_stop_cmd_send() - WMI scan start function
861 * @wmi_handle: handle to WMI.
862 * @macaddr: MAC address
863 * @param: pointer to hold scan start cmd parameter
864 *
865 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
866 */
867QDF_STATUS
868wmi_unified_scan_stop_cmd_send(wmi_unified_t wmi_handle,
869 struct scan_cancel_param *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530870
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530871/**
872 * wmi_unified_scan_chan_list_cmd_send() - WMI scan channel list function
873 * @wmi_handle: handle to WMI.
874 * @macaddr: MAC address
875 * @param: pointer to hold scan channel list parameter
876 *
877 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
878 */
879QDF_STATUS
880wmi_unified_scan_chan_list_cmd_send(wmi_unified_t wmi_handle,
881 struct scan_chan_list_params *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530882
883
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530884/**
885 * wmi_crash_inject() - inject fw crash
886 * @wmi_handle: wmi handle
887 * @param: ponirt to crash inject parameter structure
888 *
889 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
890 */
891QDF_STATUS wmi_crash_inject(wmi_unified_t wmi_handle,
892 struct crash_inject *param);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530893
Akshay Kosigif0c668f2019-06-12 12:10:12 +0530894/**
895 * wmi_unified_pdev_utf_cmd() - send utf command to fw
896 * @wmi_handle: wmi handle
897 * @param: pointer to pdev_utf_params
898 * @mac_id: mac id to have radio context
899 *
900 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
901 */
902QDF_STATUS wmi_unified_pdev_utf_cmd_send(wmi_unified_t wmi_handle,
903 struct pdev_utf_params *param,
904 uint8_t mac_id);
Govind Singhe9cda9a2016-03-09 11:34:12 +0530905
Wen Gong583a3b12018-04-20 16:56:28 +0800906#ifdef FEATURE_FW_LOG_PARSING
Akshay Kosigic36e3542019-06-13 11:37:51 +0530907/**
908 * wmi_unified_dbglog_cmd_send() - set debug log level
909 * @wmi_handle: handle to WMI.
910 * @param: pointer to hold dbglog level parameter
911 *
912 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
913 */
914QDF_STATUS wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle,
Wen Gong583a3b12018-04-20 16:56:28 +0800915 struct dbglog_params *param);
916#else
917static inline QDF_STATUS
Akshay Kosigic36e3542019-06-13 11:37:51 +0530918wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle,
Wen Gong583a3b12018-04-20 16:56:28 +0800919 struct dbglog_params *param)
920{
921 return QDF_STATUS_SUCCESS;
922}
923#endif
Govind Singhe9cda9a2016-03-09 11:34:12 +0530924
Akshay Kosigic36e3542019-06-13 11:37:51 +0530925/**
926 * wmi_mgmt_unified_cmd_send() - management cmd over wmi layer
927 * @wmi_handle: handle to WMI.
928 * @param: pointer to hold mgmt cmd parameter
929 *
930 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
931 */
932QDF_STATUS wmi_mgmt_unified_cmd_send(wmi_unified_t wmi_handle,
933 struct wmi_mgmt_params *param);
Govind Singh12438e62016-02-26 18:09:36 +0530934
Akshay Kosigic36e3542019-06-13 11:37:51 +0530935/**
936 * wmi_offchan_data_tx_cmd_send() - Send offchan data tx cmd over wmi layer
937 * @wmi_handle: handle to WMI.
938 * @param: pointer to hold offchan data cmd parameter
939 *
940 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
941 */
942QDF_STATUS wmi_offchan_data_tx_cmd_send(
943 wmi_unified_t wmi_handle,
944 struct wmi_offchan_data_tx_params *param);
Kiran Venkatappafa59ee72017-03-19 22:58:09 +0530945
Akshay Kosigic36e3542019-06-13 11:37:51 +0530946/**
947 * wmi_unified_modem_power_state() - set modem power state to fw
948 * @wmi_handle: wmi handle
949 * @param_value: parameter value
950 *
951 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
952 */
953QDF_STATUS wmi_unified_modem_power_state(wmi_unified_t wmi_handle,
954 uint32_t param_value);
Govind Singh12438e62016-02-26 18:09:36 +0530955
Akshay Kosigic36e3542019-06-13 11:37:51 +0530956/**
957 * wmi_unified_set_sta_ps_mode() - set sta powersave params in fw
958 * @wmi_handle: wmi handle
959 * @vdev_id: vdev id
960 * @val: value
961 *
962 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
963 */
964QDF_STATUS wmi_unified_set_sta_ps_mode(wmi_unified_t wmi_handle,
965 uint32_t vdev_id,
966 uint8_t val);
967
968/**
969 * wmi_unified_set_sta_uapsd_auto_trig_cmd() - set uapsd auto trigger command
970 * @wmi_handle: wmi handle
971 * @param: uapsd cmd parameter strcture
972 *
973 * This function sets the trigger
974 * uapsd params such as service interval, delay interval
975 * and suspend interval which will be used by the firmware
976 * to send trigger frames periodically when there is no
977 * traffic on the transmit side.
978 *
979 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
980 */
Govind Singh236fc202016-03-09 14:32:57 +0530981QDF_STATUS
Akshay Kosigic36e3542019-06-13 11:37:51 +0530982wmi_unified_set_sta_uapsd_auto_trig_cmd(wmi_unified_t wmi_handle,
983 struct sta_uapsd_trig_params *param);
Govind Singh12438e62016-02-26 18:09:36 +0530984
Akshay Kosigic36e3542019-06-13 11:37:51 +0530985/**
986 * wmi_get_temperature() - get pdev temperature req
987 * @wmi_handle: wmi handle
988 *
989 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
990 */
991QDF_STATUS wmi_unified_get_temperature(wmi_unified_t wmi_handle);
Govind Singh12438e62016-02-26 18:09:36 +0530992
Akshay Kosigic36e3542019-06-13 11:37:51 +0530993/**
994 * wmi_set_smps_params() - set smps params
995 * @wmi_handle: wmi handle
996 * @vdev_id: vdev id
997 * @value: value
998 *
999 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
1000 */
1001QDF_STATUS wmi_unified_set_smps_params(wmi_unified_t wmi_handle,
1002 uint8_t vdev_id,
1003 int value);
Govind Singh12438e62016-02-26 18:09:36 +05301004
Akshay Kosigic36e3542019-06-13 11:37:51 +05301005/**
1006 * wmi_set_mimops() - set MIMO powersave
1007 * @wmi_handle: wmi handle
1008 * @vdev_id: vdev id
1009 * @value: value
1010 *
1011 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure.
1012 */
1013QDF_STATUS wmi_unified_set_mimops(wmi_unified_t wmi_handle,
1014 uint8_t vdev_id, int value);
Govind Singhd0fd7262016-03-01 15:30:53 +05301015
Akshay Kosigic36e3542019-06-13 11:37:51 +05301016/**
1017 * wmi_unified_lro_config_cmd() - process the LRO config command
1018 * @wmi_handle: Pointer to wmi handle
1019 * @wmi_lro_cmd: Pointer to LRO configuration parameters
1020 *
1021 * This function sends down the LRO configuration parameters to
1022 * the firmware to enable LRO, sets the TCP flags and sets the
1023 * seed values for the toeplitz hash generation
1024 *
1025 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1026 */
1027QDF_STATUS
1028wmi_unified_lro_config_cmd(wmi_unified_t wmi_handle,
1029 struct wmi_lro_config_cmd_t *wmi_lro_cmd);
Govind Singh86b28182016-03-01 15:54:59 +05301030
Akshay Kosigic36e3542019-06-13 11:37:51 +05301031/**
1032 * wmi_unified_set_thermal_mgmt_cmd() - set thermal mgmt command to fw
1033 * @wmi_handle: Pointer to wmi handle
1034 * @thermal_info: Thermal command information
1035 *
1036 * This function sends the thermal management command
1037 * to the firmware
1038 *
1039 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1040 */
1041QDF_STATUS
1042wmi_unified_set_thermal_mgmt_cmd(wmi_unified_t wmi_handle,
1043 struct thermal_cmd_params *thermal_info);
Govind Singh86b28182016-03-01 15:54:59 +05301044
Akshay Kosigic36e3542019-06-13 11:37:51 +05301045/**
1046 * wmi_unified_peer_rate_report_cmd() - process the peer rate report command
1047 * @wmi_handle: Pointer to wmi handle
1048 * @rate_report_params: Pointer to peer rate report parameters
1049 *
1050 *
1051 * Return: QDF_STATUS_SUCCESS for success otherwise failure
1052 */
1053QDF_STATUS
1054wmi_unified_peer_rate_report_cmd(
1055 wmi_unified_t wmi_handle,
Poddar, Siddarth1f21bbb2016-04-28 15:49:11 +05301056 struct wmi_peer_rate_report_params *rate_report_params);
1057
Akshay Kosigic36e3542019-06-13 11:37:51 +05301058/**
1059 * wmi_unified_process_update_edca_param() - update EDCA params
1060 * @wmi_handle: wmi handle
1061 * @vdev_id: vdev id.
1062 * @mu_edca_param: mu_edca_param.
1063 * @wmm_vparams: edca parameters
1064 *
1065 * This function updates EDCA parameters to the target
1066 *
1067 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1068 */
1069QDF_STATUS
1070wmi_unified_process_update_edca_param(
1071 wmi_unified_t wmi_handle,
1072 uint8_t vdev_id,
1073 bool mu_edca_param,
1074 struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
Govind Singhfef95e22016-03-07 14:24:22 +05301075
Akshay Kosigic36e3542019-06-13 11:37:51 +05301076/**
1077 * wmi_unified_probe_rsp_tmpl_send_cmd() - send probe response template to fw
1078 * @wmi_handle: wmi handle
1079 * @vdev_id: vdev id
1080 * @probe_rsp_info: probe response info
1081 *
1082 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1083 */
1084QDF_STATUS
1085wmi_unified_probe_rsp_tmpl_send_cmd(
1086 wmi_unified_t wmi_handle,
1087 uint8_t vdev_id,
1088 struct wmi_probe_resp_params *probe_rsp_info);
Govind Singhfef95e22016-03-07 14:24:22 +05301089
Akshay Kosigic36e3542019-06-13 11:37:51 +05301090/**
1091 * wmi_unified_setup_install_key_cmd - send key to install to fw
1092 * @wmi_handle: wmi handle
1093 * @key_params: key parameters
1094 *
1095 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1096 */
1097QDF_STATUS
1098wmi_unified_setup_install_key_cmd(wmi_unified_t wmi_handle,
1099 struct set_key_params *key_params);
Himanshu Agarwala41da1d2016-03-09 18:49:18 +05301100
Akshay Kosigic36e3542019-06-13 11:37:51 +05301101/**
1102 * wmi_unified_p2p_go_set_beacon_ie_cmd() - set beacon IE for p2p go
1103 * @wmi_handle: wmi handle
1104 * @vdev_id: vdev id
1105 * @p2p_ie: p2p IE
1106 *
1107 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1108 */
1109QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(wmi_unified_t wmi_hdl,
1110 uint32_t vdev_id,
1111 uint8_t *p2p_ie);
Govind Singhfef95e22016-03-07 14:24:22 +05301112
Akshay Kosigic36e3542019-06-13 11:37:51 +05301113/**
1114 * wmi_unified_scan_probe_setoui_cmd() - set scan probe OUI
1115 * @wmi_handle: wmi handle
1116 * @psetoui: OUI parameters
1117 *
1118 * set scan probe OUI parameters in firmware
1119 *
1120 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1121 */
1122QDF_STATUS wmi_unified_scan_probe_setoui_cmd(wmi_unified_t wmi_handle,
1123 struct scan_mac_oui *psetoui);
Govind Singhfef95e22016-03-07 14:24:22 +05301124
Sravan Kumar Kairamea66b682018-02-15 23:28:34 +05301125#ifdef IPA_OFFLOAD
Akshay Kosigic36e3542019-06-13 11:37:51 +05301126/** wmi_unified_ipa_offload_control_cmd() - ipa offload control parameter
1127 * @wmi_handle: wmi handle
1128 * @ipa_offload: ipa offload control parameter
1129 *
1130 * Returns: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures,
1131 * error number otherwise
1132 */
1133QDF_STATUS
1134wmi_unified_ipa_offload_control_cmd(
1135 wmi_unified_t wmi_handle,
Sravan Kumar Kairamea66b682018-02-15 23:28:34 +05301136 struct ipa_uc_offload_control_params *ipa_offload);
1137#endif
Govind Singhfef95e22016-03-07 14:24:22 +05301138
Akshay Kosigic36e3542019-06-13 11:37:51 +05301139/**
1140 * wmi_unified_pno_stop_cmd() - PNO stop request
1141 * @wmi_handle: wmi handle
1142 * @vdev_id: vdev id
1143 *
1144 * This function request FW to stop ongoing PNO operation.
1145 *
1146 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1147 */
1148QDF_STATUS wmi_unified_pno_stop_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id);
Govind Singhfef95e22016-03-07 14:24:22 +05301149
Govind Singha5e18c42016-04-15 13:58:27 +05301150#ifdef FEATURE_WLAN_SCAN_PNO
Akshay Kosigic36e3542019-06-13 11:37:51 +05301151/**
1152 * wmi_unified_pno_start_cmd() - PNO start request
1153 * @wmi_handle: wmi handle
1154 * @pno: PNO request
1155 *
1156 * This function request FW to start PNO request.
1157 * Request: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1158 */
1159QDF_STATUS wmi_unified_pno_start_cmd(wmi_unified_t wmi_handle,
1160 struct pno_scan_req_params *pno);
Govind Singha5e18c42016-04-15 13:58:27 +05301161#endif
Govind Singhfef95e22016-03-07 14:24:22 +05301162
Akshay Kosigic36e3542019-06-13 11:37:51 +05301163/**
1164 * wmi_unified_nlo_mawc_cmd() - NLO MAWC cmd configuration
1165 * @wmi_handle: wmi handle
1166 * @params: Configuration parameters
1167 *
1168 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1169 */
1170QDF_STATUS wmi_unified_nlo_mawc_cmd(wmi_unified_t wmi_handle,
1171 struct nlo_mawc_params *params);
Varun Reddy Yeturu34a37462017-07-24 16:11:22 -07001172
Jeff Johnson012467b2019-03-04 14:25:10 -08001173#ifdef WLAN_FEATURE_LINK_LAYER_STATS
1174/**
1175 * wmi_unified_process_ll_stats_clear_cmd() - clear link layer stats
1176 * @wmi_handle: wmi handle
1177 * @clear_req: ll stats clear request command params
1178 *
1179 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1180 */
1181QDF_STATUS wmi_unified_process_ll_stats_clear_cmd(wmi_unified_t wmi_handle,
1182 const struct ll_stats_clear_params *clear_req);
Govind Singhfef95e22016-03-07 14:24:22 +05301183
Jeff Johnson012467b2019-03-04 14:25:10 -08001184/**
1185 * wmi_unified_process_ll_stats_set_cmd() - link layer stats set request
1186 * @wmi_handle: wmi handle
1187 * @set_req: ll stats set request command params
1188 *
1189 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1190 */
1191QDF_STATUS wmi_unified_process_ll_stats_set_cmd(wmi_unified_t wmi_handle,
1192 const struct ll_stats_set_params *set_req);
Govind Singhfef95e22016-03-07 14:24:22 +05301193
Jeff Johnson012467b2019-03-04 14:25:10 -08001194/**
1195 * wmi_unified_process_ll_stats_get_cmd() - link layer stats get request
1196 * @wmi_handle: wmi handle
1197 * @get_req: ll stats get request command params
1198 *
1199 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1200 */
1201QDF_STATUS wmi_unified_process_ll_stats_get_cmd(wmi_unified_t wmi_handle,
1202 const struct ll_stats_get_params *get_req);
1203#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
Govind Singhfef95e22016-03-07 14:24:22 +05301204
Padma, Santhosh Kumar6d2e8622017-03-21 19:09:35 +05301205/**
1206 * wmi_unified_congestion_request_cmd() - send request to fw to get CCA
Akshay Kosigic36e3542019-06-13 11:37:51 +05301207 * @wmi_handle: wma handle
Padma, Santhosh Kumar6d2e8622017-03-21 19:09:35 +05301208 * @vdev_id: vdev id
1209 *
1210 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1211 */
Akshay Kosigic36e3542019-06-13 11:37:51 +05301212QDF_STATUS wmi_unified_congestion_request_cmd(wmi_unified_t wmi_handle,
1213 uint8_t vdev_id);
Padma, Santhosh Kumar6d2e8622017-03-21 19:09:35 +05301214
Akshay Kosigic36e3542019-06-13 11:37:51 +05301215/**
1216 * wmi_unified_snr_request_cmd() - send request to fw to get RSSI stats
1217 * @wmi_handle: wmi handle
1218 * @rssi_req: get RSSI request
1219 *
1220 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1221 */
1222QDF_STATUS wmi_unified_snr_request_cmd(wmi_unified_t wmi_handle);
Govind Singh25729ce2016-03-07 15:33:31 +05301223
Akshay Kosigic36e3542019-06-13 11:37:51 +05301224/**
1225 * wmi_unified_snr_cmd() - get RSSI from fw
1226 * @wmi_handle: wmi handle
1227 * @vdev_id: vdev id
1228 *
1229 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1230 */
1231QDF_STATUS wmi_unified_snr_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id);
Govind Singh25729ce2016-03-07 15:33:31 +05301232
Jeff Johnson6a00f1e2019-01-15 12:08:41 -08001233/**
1234 * wmi_unified_link_status_req_cmd() - process link status request from UMAC
1235 * @wmi_handle: wmi handle
1236 * @params: get link status params
1237 *
1238 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1239 */
1240QDF_STATUS wmi_unified_link_status_req_cmd(wmi_unified_t wmi_handle,
1241 struct link_status_params *params);
Govind Singh25729ce2016-03-07 15:33:31 +05301242
Himanshu Agarwalb3c81ac2018-01-10 14:21:53 +05301243#ifdef WLAN_SUPPORT_GREEN_AP
Akshay Kosigic36e3542019-06-13 11:37:51 +05301244/**
1245 * wmi_unified_egap_conf_params_cmd() - send wmi cmd of egap config params
1246 * @wmi_handle: wmi handler
1247 * @egap_params: pointer to egap_params
1248 *
1249 * Return: 0 for success, otherwise appropriate error code
1250 */
1251QDF_STATUS
1252wmi_unified_egap_conf_params_cmd(
1253 wmi_unified_t wmi_handle,
Himanshu Agarwalb3c81ac2018-01-10 14:21:53 +05301254 struct wlan_green_ap_egap_params *egap_params);
Govind Singha5e18c42016-04-15 13:58:27 +05301255#endif
Govind Singh25729ce2016-03-07 15:33:31 +05301256
Akshay Kosigic36e3542019-06-13 11:37:51 +05301257/**
1258 * wmi_unified_csa_offload_enable() - send CSA offload enable command
1259 * @wmi_handle: wmi handle
1260 * @vdev_id: vdev id
1261 *
1262 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1263 */
1264QDF_STATUS wmi_unified_csa_offload_enable(wmi_unified_t wmi_handle,
1265 uint8_t vdev_id);
Govind Singh25729ce2016-03-07 15:33:31 +05301266
Naveen Rawat11d82032017-05-13 15:56:57 -07001267#ifdef WLAN_FEATURE_CIF_CFR
1268/**
1269 * wmi_unified_oem_dma_ring_cfg() - configure OEM DMA rings
1270 * @wmi_handle: wmi handle
1271 * @data_len: len of dma cfg req
1272 * @data: dma cfg req
1273 *
1274 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1275 */
Akshay Kosigic36e3542019-06-13 11:37:51 +05301276QDF_STATUS
1277wmi_unified_oem_dma_ring_cfg(wmi_unified_t wmi_handle,
1278 wmi_oem_dma_ring_cfg_req_fixed_param *cfg);
Naveen Rawat11d82032017-05-13 15:56:57 -07001279#endif
1280
Akshay Kosigic36e3542019-06-13 11:37:51 +05301281/**
Paul Zhang5e9e4542019-06-23 20:14:54 +08001282 * wmi_unified_start_oem_data_cmd() - start oem data request to target
Akshay Kosigic36e3542019-06-13 11:37:51 +05301283 * @wmi_handle: wmi handle
Paul Zhang5e9e4542019-06-23 20:14:54 +08001284 * @data_len: the length of @data
1285 * @data: the pointer to data buf
1286 *
1287 * This is legacy api for oem data request, using wmi command
1288 * WMI_OEM_REQ_CMDID.
Akshay Kosigic36e3542019-06-13 11:37:51 +05301289 *
1290 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1291 */
1292QDF_STATUS wmi_unified_start_oem_data_cmd(wmi_unified_t wmi_handle,
1293 uint32_t data_len,
1294 uint8_t *data);
Govind Singh25729ce2016-03-07 15:33:31 +05301295
Paul Zhang5e9e4542019-06-23 20:14:54 +08001296#ifdef FEATURE_OEM_DATA
1297/**
1298 * wmi_unified_start_oemv2_data_cmd() - start oem data cmd to target
1299 * @wmi_handle: wmi handle
1300 * @params: oem data params
1301 *
1302 * This is common api for oem data, using wmi command WMI_OEM_DATA_CMDID.
1303 *
1304 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1305 */
1306QDF_STATUS wmi_unified_start_oemv2_data_cmd(wmi_unified_t wmi_handle,
1307 struct oem_data *params);
1308#endif
1309
Akshay Kosigic36e3542019-06-13 11:37:51 +05301310/**
1311 * wmi_unified_dfs_phyerr_filter_offload_en_cmd() - enable dfs phyerr filter
1312 * @wmi_handle: wmi handle
1313 * @dfs_phyerr_filter_offload: is dfs phyerr filter offload
1314 *
1315 * Send WMI_DFS_PHYERR_FILTER_ENA_CMDID or
1316 * WMI_DFS_PHYERR_FILTER_DIS_CMDID command
1317 * to firmware based on phyerr filtering
1318 * offload status.
1319 *
1320 * Return: 1 success, 0 failure
1321 */
1322QDF_STATUS
1323wmi_unified_dfs_phyerr_filter_offload_en_cmd(wmi_unified_t wmi_handle,
1324 bool dfs_phyerr_filter_offload);
Govind Singh25729ce2016-03-07 15:33:31 +05301325
Vevek Venkatesan02c91642019-06-04 16:36:41 +05301326#if !defined(REMOVE_PKT_LOG) && defined(FEATURE_PKTLOG)
Akshay Kosigic36e3542019-06-13 11:37:51 +05301327/**
1328 * wmi_unified_pktlog_wmi_send_cmd() - send pktlog event command to target
1329 * @wmi_handle: wmi handle
1330 * @pktlog_event: pktlog event
1331 * @cmd_id: pktlog cmd id
1332 * @user_triggered: user triggered input for PKTLOG enable mode
1333 *
1334 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1335 */
1336QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(wmi_unified_t wmi_handle,
1337 WMI_PKTLOG_EVENT pktlog_event,
1338 uint32_t cmd_id,
1339 uint8_t user_triggered);
Govind Singha5e18c42016-04-15 13:58:27 +05301340#endif
Govind Singh25729ce2016-03-07 15:33:31 +05301341
Akshay Kosigic36e3542019-06-13 11:37:51 +05301342/**
1343 * wmi_unified_stats_ext_req_cmd() - request ext stats from fw
1344 * @wmi_handle: wmi handle
1345 * @preq: stats ext params
1346 *
1347 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1348 */
1349QDF_STATUS wmi_unified_stats_ext_req_cmd(wmi_unified_t wmi_handle,
1350 struct stats_ext_params *preq);
Govind Singh25729ce2016-03-07 15:33:31 +05301351
Akshay Kosigic36e3542019-06-13 11:37:51 +05301352/**
1353 * wmi_unified_process_dhcpserver_offload_cmd() - enable DHCP server offload
1354 * @wmi_handle: wmi handle
1355 * @pDhcpSrvOffloadInfo: DHCP server offload info
1356 *
1357 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1358 */
1359QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(
1360 wmi_unified_t wmi_handle,
1361 struct dhcp_offload_info_params *params);
Govind Singh25729ce2016-03-07 15:33:31 +05301362
Akshay Kosigic36e3542019-06-13 11:37:51 +05301363/**
1364 * wmi_unified_send_regdomain_info_to_fw_cmd() - send regdomain info to fw
1365 * @wmi_handle: wmi handle
1366 * @reg_dmn: reg domain
1367 * @regdmn2G: 2G reg domain
1368 * @regdmn5G: 5G reg domain
1369 * @ctl2G: 2G test limit
1370 * @ctl5G: 5G test limit
1371 *
1372 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1373 */
1374QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(wmi_unified_t wmi_handle,
1375 uint32_t reg_dmn,
1376 uint16_t regdmn2G,
1377 uint16_t regdmn5G,
1378 uint8_t ctl2G,
1379 uint8_t ctl5G);
Govind Singh25729ce2016-03-07 15:33:31 +05301380
Akshay Kosigic36e3542019-06-13 11:37:51 +05301381QDF_STATUS
1382wmi_unified_process_fw_mem_dump_cmd(wmi_unified_t wmi_hdl,
1383 struct fw_dump_req_param *mem_dump_req);
Govind Singh25729ce2016-03-07 15:33:31 +05301384
Akshay Kosigic36e3542019-06-13 11:37:51 +05301385/**
1386 * wmi_unified_cfg_action_frm_tb_ppdu_cmd()-send action frame TB PPDU cfg to FW
1387 * @wmi_handle: Pointer to WMi handle
1388 * @cfg_info: Pointer to cfg msg
1389 *
1390 * This function sends action frame TB PPDU cfg to firmware
1391 *
1392 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1393 *
1394 */
1395QDF_STATUS
1396wmi_unified_cfg_action_frm_tb_ppdu_cmd(
1397 wmi_unified_t wmi_handle,
1398 struct cfg_action_frm_tb_ppdu_param *cfg_info);
Kiran Kumar Lokere7ec46592018-09-27 23:05:33 -07001399
Akshay Kosigic36e3542019-06-13 11:37:51 +05301400/**
1401 * wmi_unified_save_fw_version_cmd() - save fw version
1402 * @wmi_handle: pointer to wmi handle
1403 * @evt_buf: Event buffer
1404 *
1405 *
1406 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1407 *
1408 */
1409QDF_STATUS wmi_unified_save_fw_version_cmd(wmi_unified_t wmi_handle,
1410 void *evt_buf);
Govind Singhb75690a2016-03-07 16:30:32 +05301411
Akshay Kosigic36e3542019-06-13 11:37:51 +05301412/**
1413 * wmi_unified_log_supported_evt_cmd() - Enable/Disable FW diag/log events
1414 * @wmi_handle: wmi handle
1415 * @event: Event received from FW
1416 * @len: Length of the event
1417 *
1418 * Enables the low frequency events and disables the high frequency
1419 * events. Bit 17 indicates if the event if low/high frequency.
1420 * 1 - high frequency, 0 - low frequency
1421 *
1422 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures
1423 */
1424QDF_STATUS wmi_unified_log_supported_evt_cmd(wmi_unified_t wmi_handle,
1425 uint8_t *event,
1426 uint32_t len);
Govind Singha2e792e2016-03-07 16:45:38 +05301427
Akshay Kosigic36e3542019-06-13 11:37:51 +05301428/**
1429 * wmi_unified_enable_specific_fw_logs_cmd() - Start/Stop logging of diag log id
1430 * @wmi_handle: wmi handle
1431 * @start_log: Start logging related parameters
1432 *
1433 * Send the command to the FW based on which specific logging of diag
1434 * event/log id can be started/stopped
1435 *
1436 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1437 */
1438QDF_STATUS
1439wmi_unified_enable_specific_fw_logs_cmd(wmi_unified_t wmi_handle,
1440 struct wmi_wifi_start_log *start_log);
Govind Singha2e792e2016-03-07 16:45:38 +05301441
Akshay Kosigic36e3542019-06-13 11:37:51 +05301442/**
1443 * wmi_unified_flush_logs_to_fw_cmd() - Send log flush command to FW
1444 * @wmi_handle: WMI handle
1445 *
1446 * This function is used to send the flush command to the FW,
1447 * that will flush the fw logs that are residue in the FW
1448 *
1449 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1450 */
1451QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(wmi_unified_t wmi_handle);
Govind Singha2e792e2016-03-07 16:45:38 +05301452
Akshay Kosigic36e3542019-06-13 11:37:51 +05301453/**
1454 * wmi_unified_unit_test_cmd() - send unit test command to fw.
1455 * @wmi_handle: wmi handle
1456 * @wmi_utest: unit test command
1457 *
1458 * This function send unit test command to fw.
1459 *
1460 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1461 */
1462QDF_STATUS wmi_unified_unit_test_cmd(wmi_unified_t wmi_handle,
1463 struct wmi_unit_test_cmd *wmi_utest);
Govind Singha2e792e2016-03-07 16:45:38 +05301464
Nachiket Kukadeb29adc42018-05-25 14:52:55 +05301465#ifdef FEATURE_WLAN_APF
Dustin Brown4191d4a2017-01-13 15:24:07 -08001466/**
Nachiket Kukadea52b8182018-05-22 12:17:15 +05301467 * wmi_unified_set_active_apf_mode_cmd() - config active APF mode in FW
Nachiket Kukadeb29adc42018-05-25 14:52:55 +05301468 * @wmi: the WMI handle
Dustin Brown4191d4a2017-01-13 15:24:07 -08001469 * @vdev_id: the Id of the vdev to apply the configuration to
Nachiket Kukadea52b8182018-05-22 12:17:15 +05301470 * @ucast_mode: the active APF mode to configure for unicast packets
1471 * @mcast_bcast_mode: the active APF mode to configure for multicast/broadcast
Dustin Brown4191d4a2017-01-13 15:24:07 -08001472 * packets
1473 */
Nachiket Kukadea52b8182018-05-22 12:17:15 +05301474QDF_STATUS
Nachiket Kukadeb29adc42018-05-25 14:52:55 +05301475wmi_unified_set_active_apf_mode_cmd(wmi_unified_t wmi, uint8_t vdev_id,
Nachiket Kukadea52b8182018-05-22 12:17:15 +05301476 enum wmi_host_active_apf_mode ucast_mode,
1477 enum wmi_host_active_apf_mode
1478 mcast_bcast_mode);
Dustin Brown4191d4a2017-01-13 15:24:07 -08001479
Nachiket Kukadeb29adc42018-05-25 14:52:55 +05301480/**
1481 * wmi_unified_send_apf_enable_cmd() - send apf enable/disable cmd
1482 * @wmi: wmi handle
1483 * @vdev_id: VDEV id
1484 * @enable: true: enable, false: disable
1485 *
1486 * This function passes the apf enable command to fw
1487 *
1488 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1489 */
1490QDF_STATUS wmi_unified_send_apf_enable_cmd(wmi_unified_t wmi,
1491 uint32_t vdev_id, bool enable);
1492
1493/**
1494 * wmi_unified_send_apf_write_work_memory_cmd() - send cmd to write into the APF
1495 * work memory.
1496 * @wmi: wmi handle
1497 * @write_params: parameters and buffer pointer for the write
1498 *
1499 * This function passes the write apf work mem command to fw
1500 *
1501 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1502 */
1503QDF_STATUS wmi_unified_send_apf_write_work_memory_cmd(wmi_unified_t wmi,
1504 struct wmi_apf_write_memory_params *write_params);
1505
1506/**
1507 * wmi_unified_send_apf_read_work_memory_cmd() - send cmd to read part of APF
1508 * work memory
1509 * @wmi: wmi handle
1510 * @read_params: contains relative address and length to read from
1511 *
1512 * This function passes the read apf work mem command to fw
1513 *
1514 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1515 */
1516QDF_STATUS wmi_unified_send_apf_read_work_memory_cmd(wmi_unified_t wmi,
1517 struct wmi_apf_read_memory_params *read_params);
1518
1519/**
1520 * wmi_extract_apf_read_memory_resp_event() - exctract read mem resp event
1521 * @wmi: wmi handle
1522 * @evt_buf: Pointer to the event buffer
1523 * @resp: pointer to memory to extract event parameters into
1524 *
1525 * This function exctracts read mem response event into the given structure ptr
1526 *
1527 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1528 */
1529QDF_STATUS
1530wmi_extract_apf_read_memory_resp_event(wmi_unified_t wmi, void *evt_buf,
1531 struct wmi_apf_read_memory_resp_event_params
1532 *read_mem_evt);
1533#endif /* FEATURE_WLAN_APF */
1534
Himanshu Batra9173c912019-06-20 12:14:43 +05301535/**
1536 * wmi_send_get_user_position_cmd() - send get user position command to fw
1537 * @wmi_handle: wmi handle
1538 * @value: user pos value
1539 *
1540 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1541 */
1542QDF_STATUS
1543wmi_send_get_user_position_cmd(wmi_unified_t wmi_handle, uint32_t value);
Govind Singha5e18c42016-04-15 13:58:27 +05301544
Jeevan Kukkallie48dc352017-06-16 18:07:28 +05301545/**
Himanshu Batra9173c912019-06-20 12:14:43 +05301546 * wmi_send_get_peer_mumimo_tx_count_cmd() - send get mumio tx count
1547 * command to fw
1548 * @wmi_handle: wmi handle
1549 * @value: user pos value
Jeevan Kukkallie48dc352017-06-16 18:07:28 +05301550 *
Himanshu Batra9173c912019-06-20 12:14:43 +05301551 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
Jeevan Kukkallie48dc352017-06-16 18:07:28 +05301552 */
Himanshu Batra9173c912019-06-20 12:14:43 +05301553QDF_STATUS
1554wmi_send_get_peer_mumimo_tx_count_cmd(wmi_unified_t wmi_handle,
1555 uint32_t value);
Jeevan Kukkallie48dc352017-06-16 18:07:28 +05301556
Himanshu Batra9173c912019-06-20 12:14:43 +05301557/**
1558 * wmi_send_reset_peer_mumimo_tx_count_cmd() - send reset peer mumimo
1559 * tx count to fw
1560 * @wmi_handle: wmi handle
1561 * @value: reset tx count value
1562 *
1563 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1564 */
1565QDF_STATUS
1566wmi_send_reset_peer_mumimo_tx_count_cmd(wmi_unified_t wmi_handle,
1567 uint32_t value);
Jeevan Kukkallie48dc352017-06-16 18:07:28 +05301568
Himanshu Batra9173c912019-06-20 12:14:43 +05301569/*
1570 * wmi_unified_send_btcoex_wlan_priority_cmd() - send btcoex priority commands
1571 * @wmi_handle: wmi handle
1572 * @param: wmi btcoex cfg params
1573 *
1574 * Send WMI_BTCOEX_CFG_CMDID parameters to fw.
1575 *
1576 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
1577 */
1578QDF_STATUS
1579wmi_unified_send_btcoex_wlan_priority_cmd(wmi_unified_t wmi_handle,
1580 struct btcoex_cfg_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301581
Himanshu Batra9173c912019-06-20 12:14:43 +05301582/**
1583 * wmi_unified_send_btcoex_duty_cycle_cmd() - send btcoex duty cycle commands
1584 * @wmi_handle: wmi handle
1585 * @param: wmi btcoex cfg params
1586 *
1587 * Send WMI_BTCOEX_CFG_CMDID parameters to fw.
1588 *
1589 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
1590 */
1591QDF_STATUS
1592wmi_unified_send_btcoex_duty_cycle_cmd(wmi_unified_t wmi_handle,
1593 struct btcoex_cfg_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301594
Himanshu Batra9173c912019-06-20 12:14:43 +05301595/**
1596 * wmi_unified_send_coex_ver_cfg_cmd() - send coex ver cfg command
1597 * @wmi_handle: wmi handle
1598 * @param: wmi coex ver cfg params
1599 *
1600 * Send WMI_COEX_VERSION_CFG_CMID parameters to fw.
1601 *
1602 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
1603 */
1604QDF_STATUS
1605wmi_unified_send_coex_ver_cfg_cmd(wmi_unified_t wmi_handle,
1606 coex_ver_cfg_t *param);
1607
1608/**
1609 * wmi_unified_send_coex_config_cmd() - send coex ver cfg command
1610 * @wmi_handle: wmi handle
1611 * @param: wmi coex cfg cmd params
1612 *
1613 * Send WMI_COEX_CFG_CMD parameters to fw.
1614 *
1615 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
1616 */
1617QDF_STATUS
1618wmi_unified_send_coex_config_cmd(wmi_unified_t wmi_handle,
1619 struct coex_config_params *param);
1620
1621/**
1622 * wmi_unified_pdev_fips_cmd_send() - WMI pdev fips cmd function
1623 * @wmi_handle: handle to WMI.
1624 * @param: pointer to hold pdev fips param
1625 *
1626 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1627 */
1628QDF_STATUS
1629wmi_unified_pdev_fips_cmd_send(wmi_unified_t wmi_handle,
1630 struct fips_params *param);
1631
1632/**
1633 * wmi_unified_wlan_profile_enable_cmd_send() - WMI wlan profile enable
1634 * cmd function
1635 * @wmi_handle: handle to WMI.
1636 * @param: pointer to hold wlan profile param
1637 *
1638 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1639 */
1640QDF_STATUS
1641wmi_unified_wlan_profile_enable_cmd_send(wmi_unified_t wmi_handle,
1642 struct wlan_profile_params *param);
1643
1644/**
1645 * wmi_unified_wlan_profile_trigger_cmd_send() - WMI wlan profile trigger
1646 * cmd function
1647 * @wmi_handle: handle to WMI.
1648 * @param: pointer to hold wlan profile param
1649 *
1650 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1651 */
1652QDF_STATUS
1653wmi_unified_wlan_profile_trigger_cmd_send(wmi_unified_t wmi_handle,
1654 struct wlan_profile_params *param);
1655
1656/**
1657 * wmi_unified_set_chan_cmd_send() - WMI set channel cmd function
1658 * @wmi_handle: handle to WMI.
1659 * @param: pointer to hold channel param
1660 *
1661 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1662 */
1663QDF_STATUS
1664wmi_unified_set_chan_cmd_send(wmi_unified_t wmi_handle,
1665 struct channel_param *param);
1666
1667/**
1668 * wmi_unified_set_ratepwr_table_cmd_send() - WMI ratepwr table cmd function
1669 * @wmi_handle: handle to WMI.
1670 * @param: pointer to hold ratepwr table param
1671 *
1672 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1673 */
1674QDF_STATUS
1675wmi_unified_set_ratepwr_table_cmd_send(wmi_unified_t wmi_handle,
1676 struct ratepwr_table_params *param);
1677
1678/**
1679 * wmi_unified_get_ratepwr_table_cmd_send() - WMI ratepwr table cmd function
1680 * @wmi_handle: handle to WMI.
1681 *
1682 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1683 */
1684QDF_STATUS wmi_unified_get_ratepwr_table_cmd_send(wmi_unified_t wmi_handle);
1685
1686/**
1687 * wmi_unified_set_ratepwr_chainmsk_cmd_send() - WMI ratepwr
1688 * chainmsk cmd function
1689 * @wmi_handle: handle to WMI.
1690 * @param: pointer to hold ratepwr chainmsk param
1691 *
1692 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1693 */
1694QDF_STATUS
1695wmi_unified_set_ratepwr_chainmsk_cmd_send(wmi_unified_t wmi_handle,
1696 struct ratepwr_chainmsk_params
1697 *param);
1698
1699/**
1700 * wmi_unified_set_macaddr_cmd_send() - WMI set macaddr cmd function
1701 * @wmi_handle: handle to WMI.
1702 * @param: pointer to hold macaddr param
1703 *
1704 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1705 */
1706QDF_STATUS wmi_unified_set_macaddr_cmd_send(wmi_unified_t wmi_handle,
1707 struct macaddr_params *param);
1708
1709/**
1710 * wmi_unified_pdev_scan_start_cmd_send() - WMI pdev scan start cmd function
1711 * @wmi_handle: handle to WMI.
1712 *
1713 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1714 */
1715QDF_STATUS wmi_unified_pdev_scan_start_cmd_send(wmi_unified_t wmi_handle);
1716
1717/**
1718 * wmi_unified_pdev_scan_end_cmd_send() - WMI pdev scan end cmd function
1719 * @wmi_handle: handle to WMI.
1720 *
1721 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1722 */
1723QDF_STATUS wmi_unified_pdev_scan_end_cmd_send(wmi_unified_t wmi_handle);
1724
1725/**
1726 * wmi_unified_set_acparams_cmd_send() - WMI set acparams cmd function
1727 * @wmi_handle: handle to WMI.
1728 * @param: pointer to hold acparams param
1729 *
1730 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1731 */
1732QDF_STATUS
1733wmi_unified_set_acparams_cmd_send(wmi_unified_t wmi_handle,
1734 struct acparams_params *param);
1735
1736/**
1737 * wmi_unified_set_vap_dscp_tid_map_cmd_send() - WMI set vap dscp
1738 * tid map cmd function
1739 * @wmi_handle: handle to WMI.
1740 * @param: pointer to hold dscp param
1741 *
1742 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1743 */
1744QDF_STATUS
1745wmi_unified_set_vap_dscp_tid_map_cmd_send(
1746 wmi_unified_t wmi_handle,
1747 struct vap_dscp_tid_map_params *param);
1748
1749/**
1750 * wmi_unified_proxy_ast_reserve_cmd_send() - WMI proxy ast
1751 * reserve cmd function
1752 * @wmi_handle: handle to WMI.
1753 * @param: pointer to hold ast param
1754 *
1755 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1756 */
1757QDF_STATUS
1758wmi_unified_proxy_ast_reserve_cmd_send(wmi_unified_t wmi_handle,
1759 struct proxy_ast_reserve_params *param);
1760
1761/**
1762 * wmi_unified_set_bridge_mac_addr_cmd_send() - WMI set bridge mac
1763 * addr cmd function
1764 * @wmi_handle: handle to WMI.
1765 * @param: pointer to hold bridge mac addr param
1766 *
1767 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1768 */
1769QDF_STATUS wmi_unified_set_bridge_mac_addr_cmd_send(
1770 wmi_unified_t wmi_handle,
1771 struct set_bridge_mac_addr_params *param);
1772
1773/**
1774 * wmi_unified_phyerr_enable_cmd_send() - WMI phyerr enable cmd function
1775 * @wmi_handle: handle to WMI.
1776 * @param: pointer to hold phyerr enable param
1777 *
1778 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1779 */
1780QDF_STATUS wmi_unified_phyerr_enable_cmd_send(wmi_unified_t wmi_handle);
1781
1782/**
1783 * wmi_unified_phyerr_disable_cmd_send() - WMI phyerr disable cmd function
1784 * @wmi_handle: handle to WMI.
1785 * @param: pointer to hold phyerr disable param
1786 *
1787 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1788 */
1789QDF_STATUS wmi_unified_phyerr_disable_cmd_send(wmi_unified_t wmi_handle);
Govind Singha5e18c42016-04-15 13:58:27 +05301790
Himanshu Batra29bc9912019-06-20 12:19:39 +05301791/**
1792 * wmi_unified_smart_ant_enable_tx_feedback_cmd_send() -
1793 * WMI set tx antenna function
1794 * @wmi_handle: handle to WMI.
1795 * @param: pointer to hold antenna param
1796 *
1797 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1798 */
1799QDF_STATUS wmi_unified_smart_ant_enable_tx_feedback_cmd_send(
1800 wmi_unified_t wmi_handle,
Govind Singha5e18c42016-04-15 13:58:27 +05301801 struct smart_ant_enable_tx_feedback_params *param);
1802
Himanshu Batra29bc9912019-06-20 12:19:39 +05301803/**
1804 * wmi_unified_vdev_spectral_configure_cmd_send() -
1805 * WMI set spectral config function
1806 * @wmi_handle: handle to WMI.
1807 * @param: pointer to hold spectral config param
1808 *
1809 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1810 */
1811QDF_STATUS wmi_unified_vdev_spectral_configure_cmd_send(
1812 wmi_unified_t wmi_handle,
1813 struct vdev_spectral_configure_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301814
Himanshu Batra29bc9912019-06-20 12:19:39 +05301815/**
1816 * wmi_unified_vdev_spectral_enable_cmd_send() - WMI enable spectral function
1817 * @wmi_handle: handle to WMI.
1818 * @param: pointer to hold enable spectral param
1819 *
1820 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1821 */
1822QDF_STATUS wmi_unified_vdev_spectral_enable_cmd_send(
1823 wmi_unified_t wmi_handle,
1824 struct vdev_spectral_enable_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301825
Himanshu Batra9173c912019-06-20 12:14:43 +05301826/**
1827 * wmi_unified_bss_chan_info_request_cmd_send() - WMI bss chan info
1828 * request function
1829 * @wmi_handle: handle to WMI.
1830 * @param: pointer to hold chan info param
1831 *
1832 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1833 */
1834QDF_STATUS wmi_unified_bss_chan_info_request_cmd_send(
1835 wmi_unified_t wmi_handle,
1836 struct bss_chan_info_request_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301837
Himanshu Batra29bc9912019-06-20 12:19:39 +05301838/**
1839 * wmi_unified_thermal_mitigation_param_cmd_send() -
1840 * WMI thermal mitigation function
1841 * @wmi_handle: handle to WMI.
1842 * @param: pointer to hold thermal mitigation param
1843 *
1844 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1845 */
1846QDF_STATUS wmi_unified_thermal_mitigation_param_cmd_send(
1847 wmi_unified_t wmi_handle,
1848 struct thermal_mitigation_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301849
Himanshu Batra29bc9912019-06-20 12:19:39 +05301850/**
1851 * wmi_unified_vdev_set_fwtest_param_cmd_send() - WMI set fwtest function
1852 * @wmi_handle: handle to WMI.
1853 * @param: pointer to hold fwtest param
1854 *
1855 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1856 */
1857QDF_STATUS wmi_unified_vdev_set_fwtest_param_cmd_send(
1858 wmi_unified_t wmi_handle,
1859 struct set_fwtest_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301860
Sathish Kumarfd134e42017-11-08 14:49:58 +05301861/**
1862 * wmi_unified_vdev_set_custom_aggr_size_cmd_send() - WMI set custom aggr
1863 * size command
Himanshu Batra29bc9912019-06-20 12:19:39 +05301864 * @wmi_handle: handle to WMI.
1865 * @param: pointer to hold custom aggr size param
Sathish Kumarfd134e42017-11-08 14:49:58 +05301866 *
Himanshu Batra29bc9912019-06-20 12:19:39 +05301867 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
Sathish Kumarfd134e42017-11-08 14:49:58 +05301868 */
Himanshu Batra29bc9912019-06-20 12:19:39 +05301869QDF_STATUS wmi_unified_vdev_set_custom_aggr_size_cmd_send(
1870 wmi_unified_t wmi_handle,
1871 struct set_custom_aggr_size_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301872
Venkateswara Swamy Bandaru3ef18442017-12-22 17:16:19 +05301873/**
1874 * wmi_unified_vdev_set_qdepth_thresh_cmd_send() - WMI set qdepth threshold
Himanshu Batra29bc9912019-06-20 12:19:39 +05301875 * @wmi_handle: handle to WMI.
1876 * @param: pointer to hold set qdepth thresh param
Venkateswara Swamy Bandaru3ef18442017-12-22 17:16:19 +05301877 *
Himanshu Batra29bc9912019-06-20 12:19:39 +05301878 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
Venkateswara Swamy Bandaru3ef18442017-12-22 17:16:19 +05301879 */
Himanshu Batra29bc9912019-06-20 12:19:39 +05301880QDF_STATUS wmi_unified_vdev_set_qdepth_thresh_cmd_send(
1881 wmi_unified_t wmi_handle,
1882 struct set_qdepth_thresh_params *param);
Venkateswara Swamy Bandaru3ef18442017-12-22 17:16:19 +05301883
Himanshu Batra9173c912019-06-20 12:14:43 +05301884/**
1885 * wmi_unified_pdev_set_regdomain_params_cmd_send() - WMI set regdomain
1886 * function
1887 * @wmi_handle: handle to WMI.
1888 * @param: pointer to hold regdomain param
1889 *
1890 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1891 */
1892QDF_STATUS wmi_unified_pdev_set_regdomain_cmd_send(
1893 wmi_unified_t wmi_handle,
1894 struct pdev_set_regdomain_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301895
Himanshu Batra9173c912019-06-20 12:14:43 +05301896/**
1897 * wmi_unified_set_beacon_filter_cmd_send() - WMI set beacon filter function
1898 * @wmi_handle: handle to WMI.
1899 * @param: pointer to hold beacon filter param
1900 *
1901 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1902 */
1903QDF_STATUS wmi_unified_set_beacon_filter_cmd_send(
1904 wmi_unified_t wmi_handle,
1905 struct set_beacon_filter_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301906
Himanshu Batra9173c912019-06-20 12:14:43 +05301907/**
1908 * wmi_unified_remove_beacon_filter_cmd_send() - WMI set beacon filter function
1909 * @wmi_handle: handle to WMI.
1910 * @param: pointer to hold beacon filter param
1911 *
1912 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1913 */
1914QDF_STATUS wmi_unified_remove_beacon_filter_cmd_send(
1915 wmi_unified_t wmi_handle,
1916 struct remove_beacon_filter_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301917
Himanshu Batra9173c912019-06-20 12:14:43 +05301918/**
1919 * wmi_unified_addba_clearresponse_cmd_send() - WMI addba resp cmd function
1920 * @wmi_handle: handle to WMI.
1921 * @macaddr: MAC address
1922 * @param: pointer to hold addba resp parameter
1923 *
1924 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1925 */
1926QDF_STATUS wmi_unified_addba_clearresponse_cmd_send(
1927 wmi_unified_t wmi_handle,
1928 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1929 struct addba_clearresponse_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301930
Himanshu Batra9173c912019-06-20 12:14:43 +05301931/**
1932 * wmi_unified_addba_send_cmd_send() - WMI addba send function
1933 * @wmi_handle: handle to WMI.
1934 * @macaddr: MAC address
1935 * @param: pointer to hold addba parameter
1936 *
1937 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1938 */
1939QDF_STATUS
1940wmi_unified_addba_send_cmd_send(wmi_unified_t wmi_handle,
Srinivas Girigowda2751b6d2019-02-27 12:28:13 -08001941 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
Govind Singha5e18c42016-04-15 13:58:27 +05301942 struct addba_send_params *param);
1943
Himanshu Batra9173c912019-06-20 12:14:43 +05301944/**
1945 * wmi_unified_delba_send_cmd_send() - WMI delba cmd function
1946 * @wmi_handle: handle to WMI.
1947 * @macaddr: MAC address
1948 * @param: pointer to hold delba parameter
1949 *
1950 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1951 */
1952QDF_STATUS
1953wmi_unified_delba_send_cmd_send(wmi_unified_t wmi_handle,
Srinivas Girigowda2751b6d2019-02-27 12:28:13 -08001954 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
Govind Singha5e18c42016-04-15 13:58:27 +05301955 struct delba_send_params *param);
1956
Himanshu Batra9173c912019-06-20 12:14:43 +05301957/**
1958 * wmi_unified_addba_setresponse_cmd_send() - WMI addba set resp cmd function
1959 * @wmi_handle: handle to WMI.
1960 * @macaddr: MAC address
1961 * @param: pointer to hold addba set resp parameter
1962 *
1963 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1964 */
1965QDF_STATUS
1966wmi_unified_addba_setresponse_cmd_send(wmi_unified_t wmi_handle,
1967 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1968 struct addba_setresponse_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301969
Himanshu Batra9173c912019-06-20 12:14:43 +05301970/**
1971 * wmi_unified_singleamsdu_cmd_send() - WMI singleamsdu function
1972 * @wmi_handle: handle to WMI.
1973 * @macaddr: MAC address
1974 * @param: pointer to hold singleamsdu parameter
1975 *
1976 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1977 */
1978QDF_STATUS
1979wmi_unified_singleamsdu_cmd_send(wmi_unified_t wmi_handle,
1980 uint8_t macaddr[QDF_MAC_ADDR_SIZE],
1981 struct singleamsdu_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301982
Himanshu Batra9173c912019-06-20 12:14:43 +05301983/**
1984 * wmi_unified_mu_scan_cmd_send() - WMI set mu scan function
1985 * @wmi_handle: handle to WMI.
1986 * @param: pointer to hold mu scan param
1987 *
1988 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1989 */
1990QDF_STATUS
1991wmi_unified_mu_scan_cmd_send(wmi_unified_t wmi_handle,
1992 struct mu_scan_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05301993
Himanshu Batra9173c912019-06-20 12:14:43 +05301994/**
1995 * wmi_unified_lteu_config_cmd_send() - WMI set mu scan function
1996 * @wmi_handle: handle to WMI.
1997 * @param: pointer to hold mu scan param
1998 *
1999 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2000 */
2001QDF_STATUS
2002wmi_unified_lteu_config_cmd_send(wmi_unified_t wmi_handle,
2003 struct lteu_config_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302004
Himanshu Batra9173c912019-06-20 12:14:43 +05302005/**
2006 * wmi_unified_set_psmode_cmd_send() - WMI set mu scan function
2007 * @wmi_handle: handle to WMI.
2008 * @param: pointer to hold mu scan param
2009 *
2010 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2011 */
2012QDF_STATUS
2013wmi_unified_set_psmode_cmd_send(wmi_unified_t wmi_handle,
Govind Singha5e18c42016-04-15 13:58:27 +05302014 struct set_ps_mode_params *param);
2015
Himanshu Batra9173c912019-06-20 12:14:43 +05302016/**
2017 * wmi_unified_init_cmd_send() - send initialization cmd to fw
2018 * @wmi_handle: wmi handle
2019 * @param: pointer to wmi init param
2020 *
2021 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2022 */
2023QDF_STATUS
2024wmi_unified_init_cmd_send(wmi_unified_t wmi_handle,
2025 struct wmi_init_cmd_param *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302026
2027bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id);
2028
Kiran Venkatappa482bc5e2017-09-01 17:02:34 +05302029/**
2030 * wmi_save_service_bitmap() - save service bitmap
2031 * @wmi_handle: wmi handle
Himanshu Batra9173c912019-06-20 12:14:43 +05302032 * @evt_buf: pointer to event buffer
2033 * @bitmap_buf: bitmap buffer
Kiran Venkatappa482bc5e2017-09-01 17:02:34 +05302034 *
2035 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
2036 */
Himanshu Batra9173c912019-06-20 12:14:43 +05302037QDF_STATUS wmi_save_service_bitmap(wmi_unified_t wmi_handle, void *evt_buf,
Rajeev Kumar22d1abf2017-02-12 02:12:17 -08002038 void *bitmap_buf);
Govind Singha5e18c42016-04-15 13:58:27 +05302039
Kiran Venkatappa482bc5e2017-09-01 17:02:34 +05302040/**
2041 * wmi_save_ext_service_bitmap() - save extended service bitmap
2042 * @wmi_handle: wmi handle
Himanshu Batra29bc9912019-06-20 12:19:39 +05302043 * @evt_buf: pointer to event buffer
Kiran Venkatappa482bc5e2017-09-01 17:02:34 +05302044 *
2045 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
2046 */
Himanshu Batra29bc9912019-06-20 12:19:39 +05302047QDF_STATUS wmi_save_ext_service_bitmap(wmi_unified_t wmi_handle, void *evt_buf,
2048 void *bitmap_buf);
Kiran Venkatappa482bc5e2017-09-01 17:02:34 +05302049
Himanshu Batra29bc9912019-06-20 12:19:39 +05302050/**
2051 * wmi_save_fw_version() - Save fw version
2052 * @wmi_handle: wmi handle
2053 * @evt_buf: pointer to event buffer
2054 *
2055 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2056 */
2057QDF_STATUS wmi_save_fw_version(wmi_unified_t wmi_handle, void *evt_buf);
Govind Singha5e18c42016-04-15 13:58:27 +05302058
Himanshu Batra29bc9912019-06-20 12:19:39 +05302059/**
2060 * wmi_get_target_cap_from_service_ready() - extract service ready event
2061 * @wmi_handle: wmi handle
2062 * @evt_buf: pointer to received event buffer
2063 * @ev: pointer to hold target capability information extracted from even
2064 *
2065 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2066 */
2067QDF_STATUS wmi_get_target_cap_from_service_ready(
2068 wmi_unified_t wmi_handle, void *evt_buf,
2069 struct wlan_psoc_target_capability_info *ev);
Govind Singha5e18c42016-04-15 13:58:27 +05302070
Himanshu Batra29bc9912019-06-20 12:19:39 +05302071/**
2072 * wmi_extract_hal_reg_cap() - extract HAL registered capabilities
2073 * @wmi_handle: wmi handle
2074 * @evt_buf: Pointer to event buffer
2075 * @hal_reg_cap: pointer to hold HAL reg capabilities
2076 *
2077 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2078 */
2079QDF_STATUS
2080wmi_extract_hal_reg_cap(wmi_unified_t wmi_handle, void *evt_buf,
Rajeev Kumard7673a32017-02-03 00:39:49 -08002081 struct wlan_psoc_hal_reg_capability *hal_reg_cap);
Govind Singha5e18c42016-04-15 13:58:27 +05302082
Himanshu Batra29bc9912019-06-20 12:19:39 +05302083/**
2084 * wmi_extract_host_mem_req_from_service_ready() - Extract host memory
2085 * request event
2086 * @wmi_handle: wmi handle
2087 * @evt_buf: pointer to event buffer
2088 * @num_entries: pointer to hold number of entries requested
2089 *
2090 * Return: Number of entries requested
2091 */
2092host_mem_req *wmi_extract_host_mem_req_from_service_ready(
2093 wmi_unified_t wmi_handle,
2094 void *evt_buf, uint8_t *num_entries);
Govind Singha5e18c42016-04-15 13:58:27 +05302095
Himanshu Batra29bc9912019-06-20 12:19:39 +05302096/**
2097 * wmi_ready_extract_init_status() - Extract init status from ready event
2098 * @wmi_handle: wmi handle
2099 * @ev: Pointer to event buffer
2100 *
2101 * Return: ready status
2102 */
2103uint32_t wmi_ready_extract_init_status(wmi_unified_t wmi_handle, void *ev);
Govind Singha5e18c42016-04-15 13:58:27 +05302104
Himanshu Batra29bc9912019-06-20 12:19:39 +05302105/**
2106 * wmi_ready_extract_mac_addr() - extract mac address from ready event
2107 * @wmi_handle: wmi handle
2108 * @ev: pointer to event buffer
2109 * @macaddr: Pointer to hold MAC address
2110 *
2111 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2112 */
2113QDF_STATUS wmi_ready_extract_mac_addr(wmi_unified_t wmi_handle,
2114 void *ev, uint8_t *macaddr);
Govind Singha5e18c42016-04-15 13:58:27 +05302115
Himanshu Batra29bc9912019-06-20 12:19:39 +05302116/**
2117 * wmi_ready_extract_mac_addr() - extract MAC address list from ready event
2118 * @wmi_handle: wmi handle
2119 * @ev: pointer to event buffer
2120 * @num_mac_addr: Pointer to number of entries
2121 *
2122 * Return: address to start of mac addr list
2123 */
2124wmi_host_mac_addr
2125*wmi_ready_extract_mac_addr_list(wmi_unified_t wmi_handle, void *ev,
2126 uint8_t *num_mac_addr);
Manoj Ekbote7c2444c2017-07-09 23:28:56 -07002127
Kiran Venkatappa276e8d52017-11-10 20:50:12 +05302128/**
2129 * wmi_extract_ready_params() - Extract data from ready event apart from
2130 * status, macaddr and version.
2131 * @wmi_handle: Pointer to WMI handle.
2132 * @evt_buf: Pointer to Ready event buffer.
2133 * @ev_param: Pointer to host defined struct to copy the data from event.
2134 *
2135 * Return: QDF_STATUS_SUCCESS on success.
2136 */
Himanshu Batra29bc9912019-06-20 12:19:39 +05302137QDF_STATUS wmi_extract_ready_event_params(
2138 wmi_unified_t wmi_handle, void *evt_buf,
2139 struct wmi_host_ready_ev_param *ev_param);
Kiran Venkatappa276e8d52017-11-10 20:50:12 +05302140
Himanshu Batra29bc9912019-06-20 12:19:39 +05302141/**
2142 * wmi_extract_fw_version() - extract fw version
2143 * @wmi_handle: wmi handle
2144 * @ev: pointer to event buffer
2145 * @fw_ver: Pointer to hold fw version
2146 *
2147 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2148 */
2149QDF_STATUS wmi_extract_fw_version(wmi_unified_t wmi_handle, void *ev,
2150 struct wmi_host_fw_ver *fw_ver);
Govind Singha5e18c42016-04-15 13:58:27 +05302151
Himanshu Batra29bc9912019-06-20 12:19:39 +05302152/**
2153 * wmi_extract_fw_abi_version() - extract fw abi version
2154 * @wmi_handle: wmi handle
2155 * @ev: Pointer to event buffer
2156 * @fw_ver: Pointer to hold fw abi version
2157 *
2158 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2159 */
2160QDF_STATUS wmi_extract_fw_abi_version(wmi_unified_t wmi_handle, void *ev,
2161 struct wmi_host_fw_abi_ver *fw_ver);
Govind Singha5e18c42016-04-15 13:58:27 +05302162
Himanshu Batra29bc9912019-06-20 12:19:39 +05302163/**
2164 * wmi_check_and_update_fw_version() - Ready and fw version check
2165 * @wmi_handle: wmi handle
2166 * @ev: pointer to event buffer
2167 *
2168 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2169 */
2170QDF_STATUS wmi_check_and_update_fw_version(wmi_unified_t wmi_handle, void *ev);
Govind Singha5e18c42016-04-15 13:58:27 +05302171
Himanshu Batra29bc9912019-06-20 12:19:39 +05302172/**
2173 * wmi_extract_dbglog_data_len() - extract debuglog data length
2174 * @wmi_handle: wmi handle
2175 * @evt_b: pointer to event buffer
2176 * @len: length of buffer
2177 *
2178 * Return: length
2179 */
2180uint8_t *wmi_extract_dbglog_data_len(wmi_unified_t wmi_handle,
2181 void *evt_b, uint32_t *len);
Govind Singha5e18c42016-04-15 13:58:27 +05302182
Himanshu Batra29bc9912019-06-20 12:19:39 +05302183/**
2184 * wmi_send_ext_resource_config() - send extended resource configuration
2185 * @wmi_handle: wmi handle
2186 * @ext_cfg: pointer to extended resource configuration
2187 *
2188 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2189 */
2190QDF_STATUS wmi_send_ext_resource_config(wmi_unified_t wmi_handle,
2191 wmi_host_ext_resource_config *ext_cfg);
Govind Singha5e18c42016-04-15 13:58:27 +05302192
Himanshu Batra29bc9912019-06-20 12:19:39 +05302193/**
2194 * wmi_unified_rtt_meas_req_test_cmd_send() - WMI rtt meas req test function
2195 * @wmi_handle: handle to WMI.
2196 * @param: pointer to hold rtt meas req test param
2197 *
2198 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2199 */
2200QDF_STATUS
2201wmi_unified_rtt_meas_req_test_cmd_send(wmi_unified_t wmi_handle,
2202 struct rtt_meas_req_test_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302203
Himanshu Batra29bc9912019-06-20 12:19:39 +05302204/**
2205 * wmi_unified_rtt_meas_req_cmd_send() - WMI rtt meas req function
2206 * @wmi_handle: handle to WMI.
2207 * @param: pointer to hold rtt meas req param
2208 *
2209 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2210 */
2211QDF_STATUS
2212wmi_unified_rtt_meas_req_cmd_send(wmi_unified_t wmi_handle,
2213 struct rtt_meas_req_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302214
Himanshu Batra29bc9912019-06-20 12:19:39 +05302215/**
2216 * wmi_unified_rtt_keepalive_req_cmd_send() - WMI rtt meas req test function
2217 * @wmi_handle: handle to WMI.
2218 * @param: pointer to hold rtt meas req test param
2219 *
2220 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2221 */
2222QDF_STATUS
2223wmi_unified_rtt_keepalive_req_cmd_send(wmi_unified_t wmi_handle,
2224 struct rtt_keepalive_req_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302225
Himanshu Batra29bc9912019-06-20 12:19:39 +05302226/**
2227 * wmi_unified_lci_set_cmd_send() - WMI lci set function
2228 * @wmi_handle: handle to WMI.
2229 * @param: pointer to hold lci param
2230 *
2231 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2232 */
2233QDF_STATUS wmi_unified_lci_set_cmd_send(wmi_unified_t wmi_handle,
2234 struct lci_set_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302235
Himanshu Batra29bc9912019-06-20 12:19:39 +05302236/**
2237 * wmi_unified_lcr_set_cmd_send() - WMI lcr set function
2238 * @wmi_handle: handle to WMI.
2239 * @param: pointer to hold lcr param
2240 *
2241 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2242 */
2243QDF_STATUS wmi_unified_lcr_set_cmd_send(wmi_unified_t wmi_handle,
2244 struct lcr_set_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302245
Himanshu Batra29bc9912019-06-20 12:19:39 +05302246/**
2247 * wmi_unified_send_periodic_chan_stats_config_cmd() - send periodic chan
2248 * stats cmd to fw
2249 * @wmi_handle: wmi handle
2250 * @param: pointer to hold periodic chan stats param
2251 *
2252 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2253 */
2254QDF_STATUS wmi_unified_send_periodic_chan_stats_config_cmd(
2255 wmi_unified_t wmi_handle,
2256 struct periodic_chan_stats_params *param);
Govind Singha5e18c42016-04-15 13:58:27 +05302257
Govind Singha5e18c42016-04-15 13:58:27 +05302258/* Extract APIs */
2259
Himanshu Batra29bc9912019-06-20 12:19:39 +05302260/**
2261 * wmi_extract_fips_event_data() - extract fips event data
2262 * @wmi_handle: wmi handle
2263 * @evt_buf: pointer to event buffer
2264 * @param: pointer to FIPS event param
2265 *
2266 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2267 */
Anirban Sirkhelld01ccdf2017-08-25 16:01:50 +05302268QDF_STATUS
Himanshu Batra29bc9912019-06-20 12:19:39 +05302269wmi_extract_fips_event_data(wmi_unified_t wmi_handle, void *evt_buf,
2270 struct wmi_host_fips_event_param *param);
2271
2272/**
2273 * wmi_extract_mgmt_rx_params() - extract management rx params from event
2274 * @wmi_handle: wmi handle
2275 * @evt_buf: pointer to event buffer
2276 * @hdr: Pointer to hold header
2277 * @bufp: Pointer to hold pointer to rx param buffer
2278 *
2279 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2280 */
2281QDF_STATUS
2282wmi_extract_mgmt_rx_params(wmi_unified_t wmi_handle, void *evt_buf,
2283 struct mgmt_rx_event_params *hdr, uint8_t **bufp);
2284
2285/**
2286 * wmi_extract_vdev_roam_param() - extract vdev roam param from event
2287 * @wmi_handle: wmi handle
2288 * @evt_buf: pointer to event buffer
2289 * @ev: Pointer to hold roam param
2290 *
2291 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2292 */
2293QDF_STATUS
2294wmi_extract_vdev_roam_param(wmi_unified_t wmi_handle, void *evt_buf,
2295 wmi_host_roam_event *ev);
2296
2297/**
2298 * wmi_extract_vdev_scan_ev_param() - extract vdev scan param from event
2299 * @wmi_handle: wmi handle
2300 * @evt_buf: pointer to event buffer
2301 * @param: Pointer to hold vdev scan param
2302 *
2303 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2304 */
2305QDF_STATUS
2306wmi_extract_vdev_scan_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
2307 struct scan_event *param);
2308
2309/**
2310 * wmi_extract_mu_ev_param() - extract mu param from event
2311 * @wmi_handle: wmi handle
2312 * @evt_buf: pointer to event buffer
2313 * @param: Pointer to hold mu report
2314 *
2315 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2316 */
2317QDF_STATUS
2318wmi_extract_mu_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
2319 wmi_host_mu_report_event *param);
2320
2321/**
2322 * wmi_extract_mu_db_entry() - extract mu db entry from event
2323 * @wmi_handle: wmi handle
2324 * @evt_buf: pointer to event buffer
2325 * @idx: index
2326 * @param: Pointer to hold mu db entry
2327 *
2328 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2329 */
2330QDF_STATUS
2331wmi_extract_mu_db_entry(wmi_unified_t wmi_handle, void *evt_buf,
2332 uint8_t idx, wmi_host_mu_db_entry *param);
2333
2334/**
2335 * wmi_extract_mumimo_tx_count_ev_param() - extract mumimo tx count from event
2336 * @wmi_handle: wmi handle
2337 * @evt_buf: pointer to event buffer
2338 * @param: Pointer to hold mumimo tx count
2339 *
2340 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2341 */
2342QDF_STATUS
2343wmi_extract_mumimo_tx_count_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
2344 wmi_host_peer_txmu_cnt_event *param);
2345
2346/**
2347 * wmi_extract_peer_gid_userpos_list_ev_param() - extract peer userpos list
2348 * from event
2349 * @wmi_handle: wmi handle
2350 * @evt_buf: pointer to event buffer
2351 * @param: Pointer to hold peer gid userposition list
2352 *
2353 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2354 */
2355QDF_STATUS
2356wmi_extract_peer_gid_userpos_list_ev_param(
2357 wmi_unified_t wmi_handle,
2358 void *evt_buf,
2359 wmi_host_peer_gid_userpos_list_event *param);
2360
2361/**
2362 * wmi_extract_esp_estimate_ev_param() - extract air time from event
2363 * @wmi_handle: wmi handle
2364 * @evt_buf: pointer to event buffer
2365 * @param: Pointer to hold esp event
2366 *
2367 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2368 */
2369QDF_STATUS
2370wmi_extract_esp_estimate_ev_param(wmi_unified_t wmi_handle, void *evt_buf,
Anirban Sirkhelld01ccdf2017-08-25 16:01:50 +05302371 struct esp_estimation_event *param);
2372
Himanshu Batra29bc9912019-06-20 12:19:39 +05302373/**
2374 * wmi_extract_gpio_input_ev_param() - extract gpio input param from event
2375 * @wmi_handle: wmi handle
2376 * @evt_buf: pointer to event buffer
2377 * @gpio_num: Pointer to hold gpio number
2378 *
2379 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2380 */
2381QDF_STATUS wmi_extract_gpio_input_ev_param(wmi_unified_t wmi_handle,
2382 void *evt_buf, uint32_t *gpio_num);
Govind Singha5e18c42016-04-15 13:58:27 +05302383
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302384/**
2385 * wmi_extract_pdev_reserve_ast_ev_param() - extract reserve ast entry
2386 * param from event
2387 * @wmi_handle: wmi handle
2388 * @evt_buf: pointer to event buffer
2389 * @param: Pointer to hold reserve ast entry param
2390 *
2391 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2392 */
2393QDF_STATUS wmi_extract_pdev_reserve_ast_ev_param(
2394 wmi_unified_t wmi_handle, void *evt_buf,
2395 struct wmi_host_proxy_ast_reserve_param *param);
2396/**
2397 * wmi_extract_pdev_generic_buffer_ev_param() - extract pdev generic buffer
2398 * from event
2399 * @wmi_handle: wmi handle
2400 * @evt_buf: pointer to event buffer
2401 * @param: Pointer to generic buffer param
2402 *
2403 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2404 */
2405QDF_STATUS wmi_extract_pdev_generic_buffer_ev_param(
2406 wmi_unified_t wmi_handle, void *evt_buf,
Govind Singha5e18c42016-04-15 13:58:27 +05302407 wmi_host_pdev_generic_buffer_event *param);
2408
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302409/**
2410 * wmi_extract_peer_ratecode_list_ev() - extract peer ratecode from event
2411 * @wmi_handle: wmi handle
2412 * @evt_buf: pointer to event buffer
2413 * @peer_mac: Pointer to hold peer mac address
2414 * @rate_cap: Pointer to hold ratecode
2415 *
2416 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2417 */
2418QDF_STATUS wmi_extract_peer_ratecode_list_ev(
2419 wmi_unified_t wmi_handle, void *evt_buf,
Govind Singha5e18c42016-04-15 13:58:27 +05302420 uint8_t *peer_mac, wmi_sa_rate_cap *rate_cap);
2421
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302422/**
2423 * wmi_extract_bcnflt_stats() - extract bcn fault stats from event
2424 * @wmi_handle: wmi handle
2425 * @evt_buf: pointer to event buffer
2426 * @index: Index into bcn fault stats
2427 * @bcnflt_stats: Pointer to hold bcn fault stats
2428 *
2429 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2430 */
2431QDF_STATUS wmi_extract_bcnflt_stats(
2432 wmi_unified_t wmi_handle, void *evt_buf,
2433 uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats);
Jeff Johnson589ca092016-10-07 13:03:02 -07002434
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302435/**
2436 * wmi_extract_rtt_hdr() - extract rtt header from event
2437 * @wmi_handle: wmi handle
2438 * @evt_buf: pointer to event buffer
2439 * @ev: Pointer to hold rtt header
2440 *
2441 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2442 */
2443QDF_STATUS wmi_extract_rtt_hdr(wmi_unified_t wmi_handle, void *evt_buf,
2444 wmi_host_rtt_event_hdr *ev);
Govind Singha5e18c42016-04-15 13:58:27 +05302445
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302446/**
2447 * wmi_extract_rtt_ev() - extract rtt event
2448 * @wmi_handle: wmi handle
2449 * @evt_buf: Pointer to event buffer
2450 * @ev: Pointer to hold rtt event
2451 * @hdump: Pointer to hold hex dump
2452 * @hdump_len: hex dump length
2453 *
2454 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2455 */
2456QDF_STATUS wmi_extract_rtt_ev(wmi_unified_t wmi_handle, void *evt_buf,
2457 wmi_host_rtt_meas_event *ev,
2458 uint8_t *hdump, uint16_t hdump_len);
Govind Singha5e18c42016-04-15 13:58:27 +05302459
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302460/**
2461 * wmi_extract_rtt_error_report_ev() - extract rtt error report from event
2462 * @wmi_handle: wmi handle
2463 * @evt_buf: pointer to event buffer
2464 * @ev: Pointer to hold rtt error report
2465 *
2466 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2467 */
2468QDF_STATUS
2469wmi_extract_rtt_error_report_ev(wmi_unified_t wmi_handle, void *evt_buf,
2470 wmi_host_rtt_error_report_event *ev);
Govind Singha5e18c42016-04-15 13:58:27 +05302471
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302472/**
2473 * wmi_extract_chan_stats() - extract chan stats from event
2474 * @wmi_handle: wmi handle
2475 * @evt_buf: pointer to event buffer
2476 * @index: Index into chan stats
2477 * @chan_stats: Pointer to hold chan stats
2478 *
2479 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2480 */
2481QDF_STATUS
2482wmi_extract_chan_stats(wmi_unified_t wmi_handle, void *evt_buf,
2483 uint32_t index, wmi_host_chan_stats *chan_stats);
Jeff Johnson589ca092016-10-07 13:03:02 -07002484
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302485/**
2486 * wmi_extract_thermal_stats() - extract thermal stats from event
2487 * @wmi_handle: wmi handle
2488 * @evt_buf: Pointer to event buffer
2489 * @temp: Pointer to hold extracted temperature
2490 * @level: Pointer to hold extracted level
2491 * @pdev_id: Pointer to hold extracted pdev_id
2492 *
2493 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2494 */
2495QDF_STATUS wmi_extract_thermal_stats(wmi_unified_t wmi_handle, void *evt_buf,
2496 uint32_t *temp, uint32_t *level,
2497 uint32_t *pdev_id);
Govind Singha5e18c42016-04-15 13:58:27 +05302498
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302499/**
2500 * wmi_extract_thermal_level_stats() - extract thermal level stats from
2501 * event
2502 * @wmi_handle: wmi handle
2503 * @evt_buf: pointer to event buffer
2504 * @idx: Index to level stats
2505 * @levelcount: Pointer to hold levelcount
2506 * @dccount: Pointer to hold dccount
2507 *
2508 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2509 */
2510QDF_STATUS
2511wmi_extract_thermal_level_stats(wmi_unified_t wmi_handle, void *evt_buf,
2512 uint8_t idx, uint32_t *levelcount,
2513 uint32_t *dccount);
Govind Singha5e18c42016-04-15 13:58:27 +05302514
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302515/**
2516 * wmi_extract_comb_phyerr() - extract comb phy error from event
2517 * @wmi_handle: wmi handle
2518 * @evt_buf: pointer to event buffer
2519 * @datalen: data length of event buffer
2520 * @buf_offset: Pointer to hold value of current event buffer offset
2521 * post extraction
2522 * @phyerr: Pointer to hold phyerr
2523 *
2524 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2525 */
2526QDF_STATUS
2527wmi_extract_comb_phyerr(wmi_unified_t wmi_handle, void *evt_buf,
Govind Singha5e18c42016-04-15 13:58:27 +05302528 uint16_t datalen, uint16_t *buf_offset,
2529 wmi_host_phyerr_t *phyerr);
2530
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302531/**
2532 * wmi_extract_single_phyerr() - extract single phy error from event
2533 * @wmi_handle: wmi handle
2534 * @evt_buf: pointer to event buffer
2535 * @datalen: data length of event buffer
2536 * @buf_offset: Pointer to hold value of current event buffer offset
2537 * post extraction
2538 * @phyerr: Pointer to hold phyerr
2539 *
2540 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2541 */
2542QDF_STATUS
2543wmi_extract_single_phyerr(wmi_unified_t wmi_handle, void *evt_buf,
2544 uint16_t datalen, uint16_t *buf_offset,
2545 wmi_host_phyerr_t *phyerr);
Govind Singha5e18c42016-04-15 13:58:27 +05302546
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302547/**
2548 * wmi_extract_composite_phyerr() - extract composite phy error from event
2549 * @wmi_handle: wmi handle
2550 * @evt_buf: pointer to event buffer
2551 * @datalen: Length of event buffer
2552 * @phyerr: Pointer to hold phy error
2553 *
2554 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2555 */
2556QDF_STATUS
2557wmi_extract_composite_phyerr(wmi_unified_t wmi_handle, void *evt_buf,
2558 uint16_t datalen, wmi_host_phyerr_t *phyerr);
Govind Singha5e18c42016-04-15 13:58:27 +05302559
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302560/**
2561 * wmi_extract_profile_ctx() - extract profile context from event
2562 * @wmi_handle: wmi handle
2563 * @evt_buf: pointer to event buffer
2564 * @profile_ctx: Pointer to hold profile context
2565 *
2566 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2567 */
2568QDF_STATUS
2569wmi_extract_profile_ctx(wmi_unified_t wmi_handle, void *evt_buf,
Govind Singha5e18c42016-04-15 13:58:27 +05302570 wmi_host_wlan_profile_ctx_t *profile_ctx);
2571
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302572/**
2573 * wmi_extract_profile_data() - extract profile data from event
2574 * @wmi_handle: wmi handle
2575 * @evt_buf: pointer to event buffer
2576 * @idx: index of profile data
2577 * @profile_data: Pointer to hold profile data
2578 *
2579 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2580 */
2581QDF_STATUS
2582wmi_extract_profile_data(wmi_unified_t wmi_handle, void *evt_buf, uint8_t idx,
2583 wmi_host_wlan_profile_t *profile_data);
Govind Singha5e18c42016-04-15 13:58:27 +05302584
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302585/**
2586 * wmi_extract_stats_param() - extract all stats count from event
2587 * @wmi_handle: wmi handle
2588 * @evt_buf: pointer to event buffer
2589 * @stats_param: Pointer to hold stats count
2590 *
2591 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2592 */
2593QDF_STATUS
2594wmi_extract_stats_param(wmi_unified_t wmi_handle, void *evt_buf,
2595 wmi_host_stats_event *stats_param);
Govind Singha5e18c42016-04-15 13:58:27 +05302596
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302597/**
2598 * wmi_extract_pdev_stats() - extract pdev stats from event
2599 * @wmi_handle: wmi handle
2600 * @evt_buf: pointer to event buffer
2601 * @index: Index into pdev stats
2602 * @pdev_stats: Pointer to hold pdev stats
2603 *
2604 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2605 */
2606QDF_STATUS
2607wmi_extract_pdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
2608 uint32_t index, wmi_host_pdev_stats *pdev_stats);
Govind Singha5e18c42016-04-15 13:58:27 +05302609
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302610/**
2611 * extract_unit_test() - extract unit test from event
2612 * @wmi_handle: wmi handle
2613 * @evt_buf: pointer to event buffer
2614 * @unit_test: Pointer to hold unit-test header
2615 * @maxspace: The amount of space in evt_buf
2616 *
2617 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2618 */
2619QDF_STATUS
2620wmi_extract_unit_test(wmi_unified_t wmi_handle, void *evt_buf,
2621 wmi_unit_test_event *unit_test, uint32_t maxspace);
Adil Saeed Musthafa65dabe42017-08-23 17:32:11 -07002622
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302623/**
2624 * wmi_extract_pdev_ext_stats() - extract extended pdev stats from event
2625 * @wmi_handle: wmi handle
2626 * @evt_buf: pointer to event buffer
2627 * @index: Index into extended pdev stats
2628 * @pdev_ext_stats: Pointer to hold extended pdev stats
2629 *
2630 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2631 */
2632QDF_STATUS
2633wmi_extract_pdev_ext_stats(wmi_unified_t wmi_handle, void *evt_buf,
2634 uint32_t index,
2635 wmi_host_pdev_ext_stats *pdev_ext_stats);
Govind Singha5e18c42016-04-15 13:58:27 +05302636
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302637/**
2638 * wmi_extract_peer_extd_stats() - extract extended peer stats from event
2639 * @wmi_handle: wmi handle
2640 * @evt_buf: pointer to event buffer
2641 * @index: Index into extended peer stats
2642 * @peer_extd_stats: Pointer to hold extended peer stats
2643 *
2644 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2645 */
2646QDF_STATUS
2647wmi_extract_peer_extd_stats(wmi_unified_t wmi_handle, void *evt_buf,
2648 uint32_t index,
2649 wmi_host_peer_extd_stats *peer_extd_stats);
Govind Singha5e18c42016-04-15 13:58:27 +05302650
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302651/**
2652 * wmi_extract_peer_adv_stats() - extract advance (extd2) peer stats from event
2653 * @wmi_handle: wmi handle
2654 * @evt_buf: pointer to event buffer
2655 * @peer_adv_stats: Pointer to hold extended peer stats
2656 *
2657 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2658 */
2659QDF_STATUS wmi_extract_peer_adv_stats(
2660 wmi_unified_t wmi_handle, void *evt_buf,
2661 struct wmi_host_peer_adv_stats *peer_adv_stats);
Sourav Mohapatra9a6ee7d2019-02-08 17:50:49 +05302662
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302663/**
2664 * wmi_extract_bss_chan_info_event() - extract bss channel information
2665 * from event
2666 * @wmi_handle: wmi handle
2667 * @evt_buf: pointer to event buffer
2668 * @bss_chan_info: Pointer to hold bss channel information
2669 *
2670 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2671 */
2672QDF_STATUS wmi_extract_bss_chan_info_event(
2673 wmi_unified_t wmi_handle, void *evt_buf,
2674 wmi_host_pdev_bss_chan_info_event *bss_chan_info);
Govind Singha5e18c42016-04-15 13:58:27 +05302675
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302676/**
2677 * wmi_extract_peer_stats() - extract peer stats from event
2678 * @wmi_handle: wmi handle
2679 * @evt_buf: pointer to event buffer
2680 * @index: Index into peer stats
2681 * @peer_stats: Pointer to hold peer stats
2682 *
2683 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2684 */
2685QDF_STATUS
2686wmi_extract_peer_stats(wmi_unified_t wmi_handle, void *evt_buf,
2687 uint32_t index, wmi_host_peer_stats *peer_stats);
Govind Singha5e18c42016-04-15 13:58:27 +05302688
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302689/**
2690 * wmi_extract_tx_data_traffic_ctrl_ev() - extract tx data traffic control
2691 * from event
2692 * @wmi_handle: wmi handle
2693 * @evt_buf: pointer to event buffer
2694 * @ev: Pointer to hold data traffic control
2695 *
2696 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2697 */
2698QDF_STATUS
2699wmi_extract_tx_data_traffic_ctrl_ev(wmi_unified_t wmi_handle, void *evt_buf,
2700 wmi_host_tx_data_traffic_ctrl_event *ev);
Govind Singha5e18c42016-04-15 13:58:27 +05302701
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302702/**
2703 * wmi_extract_vdev_stats() - extract vdev stats from event
2704 * @wmi_handle: wmi handle
2705 * @evt_buf: pointer to event buffer
2706 * @index: Index into vdev stats
2707 * @vdev_stats: Pointer to hold vdev stats
2708 *
2709 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2710 */
2711QDF_STATUS
2712wmi_extract_vdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
2713 uint32_t index, wmi_host_vdev_stats *vdev_stats);
Govind Singha5e18c42016-04-15 13:58:27 +05302714
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302715/**
2716 * wmi_extract_per_chain_rssi_stats() - extract rssi stats from event
2717 * @wmi_handle: wmi handle
2718 * @evt_buf: pointer to event buffer
2719 * @index: Index into rssi stats
2720 * @rssi_stats: Pointer to hold rssi stats
2721 *
2722 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2723 */
2724QDF_STATUS wmi_extract_per_chain_rssi_stats(
2725 wmi_unified_t wmi_handle, void *evt_buf,
2726 uint32_t index,
2727 struct wmi_host_per_chain_rssi_stats *rssi_stats);
Naveen Rawat97a913a2018-04-12 08:17:55 -07002728
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302729/**
2730 * wmi_extract_vdev_extd_stats() - extract extended vdev stats from event
2731 * @wmi_handle: wmi handle
2732 * @evt_buf: pointer to event buffer
2733 * @index: Index into extended vdev stats
2734 * @vdev_extd_stats: Pointer to hold extended vdev stats
2735 *
2736 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2737 */
2738QDF_STATUS
2739wmi_extract_vdev_extd_stats(wmi_unified_t wmi_handle, void *evt_buf,
2740 uint32_t index,
2741 wmi_host_vdev_extd_stats *vdev_extd_stats);
Govind Singh2a56c222016-05-02 17:59:24 +05302742
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302743/**
2744 * wmi_extract_bcn_stats() - extract beacon stats from event
2745 * @wmi_handle: wmi handle
2746 * @evt_buf: pointer to event buffer
2747 * @index: Index into beacon stats
2748 * @vdev_bcn_stats: Pointer to hold beacon stats
2749 *
2750 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2751 */
2752QDF_STATUS
2753wmi_extract_bcn_stats(wmi_unified_t wmi_handle, void *evt_buf,
2754 uint32_t index, wmi_host_bcn_stats *vdev_bcn_stats);
Gurumoorthi Gnanasambandhan2b51b572017-11-06 22:04:17 +05302755
Chaithanya Garrepallib265cca2018-01-18 14:19:41 +05302756/**
2757 * wmi_extract_vdev_nac_rssi_stats() - extract NAC_RSSI stats from event
2758 * @wmi_handle: wmi handle
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302759 * @evt_buf: pointer to event buffer
2760 * @vdev_extd_stats: Pointer to hold nac rssi stats
Chaithanya Garrepallib265cca2018-01-18 14:19:41 +05302761 *
2762 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2763 */
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302764QDF_STATUS wmi_extract_vdev_nac_rssi_stats(
2765 wmi_unified_t wmi_handle, void *evt_buf,
Chaithanya Garrepallib265cca2018-01-18 14:19:41 +05302766 struct wmi_host_vdev_nac_rssi_event *vdev_nac_rssi_stats);
2767
Uraj Sasanff4f2d22018-09-20 09:39:49 +05302768/**
2769 * wmi_extract_peer_retry_stats() - extract peer retry stats from event
2770 * @wmi_handle: wmi handle
2771 * @evt_buf: pointer to event buffer
2772 * @index: Index into peer retry stats
2773 * @peer_retry_stats: Pointer to hold peer retry stats
2774 *
2775 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2776 */
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302777QDF_STATUS wmi_extract_peer_retry_stats(
2778 wmi_unified_t wmi_handle, void *evt_buf,
Uraj Sasanff4f2d22018-09-20 09:39:49 +05302779 uint32_t index, struct wmi_host_peer_retry_stats *peer_retry_stats);
2780
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302781/**
2782 * wmi_unified_send_power_dbg_cmd() - send power debug commands
2783 * @wmi_handle: wmi handle
2784 * @param: wmi power debug parameter
2785 *
2786 * Send WMI_POWER_DEBUG_CMDID parameters to fw.
2787 *
2788 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2789 */
2790QDF_STATUS wmi_unified_send_power_dbg_cmd(wmi_unified_t wmi_handle,
2791 struct wmi_power_dbg_params *param);
Sathish Kumar6938efe2017-02-27 10:35:40 +05302792
Jeff Johnson15ca1af2017-12-14 15:50:16 -08002793/**
Kabilan Kannan762ad5d2018-06-21 16:55:47 -07002794 * wmi_extract_sar_cap_service_ready_ext() - extract SAR cap from
2795 * FW service ready event
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302796 * @wmi_handle: wmi handle
Kabilan Kannan762ad5d2018-06-21 16:55:47 -07002797 * @evt_buf: event buffer received from firmware
2798 * @ext_param: extended target info
2799 *
2800 * Return: QDF_STATUS_SUCCESS for success or error code
2801 */
2802QDF_STATUS wmi_extract_sar_cap_service_ready_ext(
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302803 wmi_unified_t wmi_handle,
Kabilan Kannan762ad5d2018-06-21 16:55:47 -07002804 uint8_t *evt_buf,
2805 struct wlan_psoc_host_service_ext_param *ext_param);
2806
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302807/**
2808 * wmi_unified_fw_test_cmd() - send fw test command to fw.
2809 * @wmi_handle: wmi handle
2810 * @wmi_fwtest: fw test command
2811 *
2812 * This function sends fw test command to fw.
2813 *
2814 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2815 */
2816QDF_STATUS wmi_unified_fw_test_cmd(wmi_unified_t wmi_handle,
Anurag Chouhane6d4b282016-07-22 20:19:54 +05302817 struct set_fwtest_params *wmi_fwtest);
2818
Leo Change34fbde2016-09-28 13:43:36 -07002819QDF_STATUS wmi_unified_peer_rx_reorder_queue_setup_send(void *wmi_hdl,
2820 struct rx_reorder_queue_setup_params *param);
2821QDF_STATUS wmi_unified_peer_rx_reorder_queue_remove_send(void *wmi_hdl,
2822 struct rx_reorder_queue_remove_params *param);
Kiran Venkatappa3a415332016-08-10 23:55:40 +05302823
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302824/*
2825 * wmi_extract_service_ready_ext() - extract extended service ready
2826 * @wmi_handle: wmi handle
2827 * @param: wmi power debug parameter
2828 *
2829 *
2830 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2831 */
2832QDF_STATUS wmi_extract_service_ready_ext(
2833 wmi_unified_t wmi_handle, uint8_t *evt_buf,
Rajeev Kumard7673a32017-02-03 00:39:49 -08002834 struct wlan_psoc_host_service_ext_param *param);
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302835
2836/**
2837 * wmi_extract_hw_mode_cap_service_ready_ext() -
2838 * extract HW mode cap from service ready event
2839 * @wmi_handle: wmi handle
2840 * @evt_buf: pointer to event buffer
2841 * @hw_mode_idx: hw mode idx should be less than num_mode
2842 * @param: Pointer to hold evt buf
2843 *
2844 * Return: QDF_STATUS_SUCCESS for success or error code
2845 */
Kiran Venkatappa3a415332016-08-10 23:55:40 +05302846QDF_STATUS wmi_extract_hw_mode_cap_service_ready_ext(
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302847 wmi_unified_t wmi_handle,
Kiran Venkatappa3a415332016-08-10 23:55:40 +05302848 uint8_t *evt_buf, uint8_t hw_mode_idx,
Rajeev Kumard7673a32017-02-03 00:39:49 -08002849 struct wlan_psoc_host_hw_mode_caps *param);
Himanshu Batra6abe4be2019-06-20 12:28:26 +05302850
Kiran Venkatappa3a415332016-08-10 23:55:40 +05302851QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext(
2852 void *wmi_hdl,
Kiran Venkatappadf17b072016-12-26 15:38:06 +05302853 uint8_t *evt_buf,
2854 uint8_t hw_mode_id,
2855 uint8_t phy_id,
Rajeev Kumard7673a32017-02-03 00:39:49 -08002856 struct wlan_psoc_host_mac_phy_caps *param);
Himanshu Batra29bc9912019-06-20 12:19:39 +05302857
2858/**
2859 * wmi_extract_reg_cap_service_ready_ext() -
2860 * extract REG cap from service ready event
2861 * @wmi_handle: wmi handle
2862 * @evt_buf: pointer to event buffer
2863 * @phy_idx: phy idx should be less than num_mode
2864 * @param: Pointer to hold evt buf
2865 *
2866 * Return: QDF_STATUS_SUCCESS for success or error code
2867 */
2868QDF_STATUS
2869wmi_extract_reg_cap_service_ready_ext(
2870 wmi_unified_t wmi_handle,
Kiran Venkatappa3a415332016-08-10 23:55:40 +05302871 uint8_t *evt_buf, uint8_t phy_idx,
Rajeev Kumard7673a32017-02-03 00:39:49 -08002872 struct wlan_psoc_host_hal_reg_capabilities_ext *param);
Sathish Kumar85da7c52017-11-17 17:30:41 +05302873
2874/**
2875 * wmi_extract_dbr_ring_cap_service_ready_ext: Extract direct buffer rx
2876 * capability received through
2877 * extended service ready event
2878 * @wmi_hdl: WMI handle
2879 * @evt_buf: Event buffer
2880 * @idx: Index of the module for which capability is received
2881 * @param: Pointer to direct buffer rx ring cap struct
2882 *
2883 * Return: QDF status of operation
2884 */
2885QDF_STATUS wmi_extract_dbr_ring_cap_service_ready_ext(
2886 void *wmi_hdl,
2887 uint8_t *evt_buf, uint8_t idx,
2888 struct wlan_psoc_host_dbr_ring_caps *param);
2889
Edayilliam Jayadevd4b7e3b2018-08-09 13:50:18 +05302890/**
2891 * wmi_extract_spectral_scaling_params_service_ready_ext: Extract Spectral
2892 * scaling params received through
2893 * extended service ready event
2894 * @wmi_hdl: WMI handle
2895 * @evt_buf: Event buffer
2896 * @idx: Index
2897 * @param: Pointer to Spectral scaling params
2898 *
2899 * Return: QDF status of operation
2900 */
2901QDF_STATUS wmi_extract_spectral_scaling_params_service_ready_ext(
2902 void *wmi_hdl,
2903 uint8_t *evt_buf, uint8_t idx,
2904 struct wlan_psoc_host_spectral_scaling_params *param);
2905
Sathish Kumar3541df92017-01-24 17:51:26 +05302906QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl,
2907 uint8_t *evt_buf,
2908 struct wmi_host_pdev_utf_event *param);
Vijay Pamidipatida061162017-01-17 12:53:05 +05302909
Kiran Venkatappac1865712017-02-28 14:19:17 +05302910QDF_STATUS wmi_extract_pdev_qvit_event(void *wmi_hdl,
2911 uint8_t *evt_buf,
2912 struct wmi_host_pdev_qvit_event *param);
2913
Aditya Sathishce928dc2019-05-09 11:18:43 +05302914#ifdef WLAN_SUPPORT_RF_CHARACTERIZATION
2915/**
2916 * wmi_extract_rf_characterziation_entries - Extract RF characterization metrics
2917 * received through extended service ready event.
2918 * @wmi_hdl: WMI handle
2919 * @evt_buf: Event buffer
2920 * @rf_characterization_entries: Pointer to RF characterization metrics
2921 *
2922 * Return: QDF status of operation
2923 */
2924QDF_STATUS wmi_extract_rf_characterization_entries(wmi_unified_t wmi_hdl,
2925 uint8_t *evt_buf,
2926 struct wlan_psoc_host_rf_characterization_entry *rf_characterization_entries);
2927#endif
2928
Vikram Kandukurid4aa2772017-03-07 18:40:13 +05302929QDF_STATUS wmi_extract_chainmask_tables(void *wmi_hdl, uint8_t *evt_buf,
2930 struct wlan_psoc_host_chainmask_table *chainmask_table);
Arif Hussainfc86d5e2017-01-07 18:21:55 -08002931/**
2932 * wmi_unified_dfs_phyerr_offload_en_cmd() - enable dfs phyerr offload
2933 * @wmi_handle: wmi handle
2934 * @pdev_id: pdev id
2935 *
2936 * Return: QDF_STATUS
2937 */
2938QDF_STATUS wmi_unified_dfs_phyerr_offload_en_cmd(void *wmi_hdl,
2939 uint32_t pdev_id);
2940
2941/**
2942 * wmi_unified_dfs_phyerr_offload_dis_cmd() - disable dfs phyerr offload
2943 * @wmi_handle: wmi handle
2944 * @pdev_id: pdev id
2945 *
2946 * Return: QDF_STATUS
2947 */
2948QDF_STATUS wmi_unified_dfs_phyerr_offload_dis_cmd(void *wmi_hdl,
2949 uint32_t pdev_id);
Dustin Brown536064a2017-04-03 17:00:07 -07002950
Shaakir Mohamed9ff68da2019-02-22 11:16:16 -08002951#ifdef QCA_SUPPORT_AGILE_DFS
2952/**
2953 * wmi_unified_send_vdev_adfs_ch_cfg_cmd() - send adfs channel config command
2954 * @wmi_handle: wmi handle
2955 * @vdev_adfs_ch_cfg_params: adfs channel config params
2956 *
2957 * Return: QDF_STATUS
2958 */
2959QDF_STATUS
2960wmi_unified_send_vdev_adfs_ch_cfg_cmd(void *wmi_hdl,
2961 struct vdev_adfs_ch_cfg_params *param);
2962
2963/**
2964 * wmi_unified_send_vdev_adfs_ocac_abort_cmd() - send adfs o-cac abort command
2965 * @wmi_handle: wmi handle
2966 * @vdev_adfs_abort_params: adfs channel o-cac abort params
2967 *
2968 * Return: QDF_STATUS
2969 */
2970QDF_STATUS
2971wmi_unified_send_vdev_adfs_ocac_abort_cmd(void *wmi_hdl,
2972 struct vdev_adfs_abort_params *param);
2973#endif
2974
Kiran Kumar Lokerea8436342017-04-24 00:56:03 -07002975QDF_STATUS wmi_unified_set_country_cmd_send(void *wmi_hdl,
2976 struct set_country *param);
Rajeev Kumar Sirasanagandla66970852017-09-18 16:47:52 +05302977
2978#ifdef WLAN_FEATURE_ACTION_OUI
2979/**
2980 * wmi_unified_send_action_oui_cmd() - send action oui cmd to fw
2981 * @wmi_hdl: wma handle
2982 * @req: wmi action oui message to be send
2983 *
2984 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2985 */
2986QDF_STATUS
2987wmi_unified_send_action_oui_cmd(void *wmi_hdl,
2988 struct action_oui_request *req);
2989#endif /* WLAN_FEATURE_ACTION_OUI */
2990
Rajeev Kumar Sirasanagandlab851d102016-11-22 21:28:54 +05302991/**
2992 * wmi_unified_send_request_get_rcpi_cmd() - command to request rcpi value
2993 * @wmi_hdl: wma handle
2994 * @get_rcpi_param: rcpi params
2995 *
2996 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2997 */
2998QDF_STATUS wmi_unified_send_request_get_rcpi_cmd(void *wmi_hdl,
2999 struct rcpi_req *get_rcpi_param);
3000
3001/**
3002 * wmi_extract_rcpi_response_event - api to extract RCPI event params
3003 * @wmi_handle: wma handle
3004 * @evt_buf: pointer to event buffer
3005 * @res: pointer to hold rcpi response from firmware
3006 *
3007 * Return: QDF_STATUS_SUCCESS for successful event parse
3008 * else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
3009 */
3010QDF_STATUS wmi_extract_rcpi_response_event(void *wmi_hdl, void *evt_buf,
3011 struct rcpi_res *res);
3012
Dustin Brown536064a2017-04-03 17:00:07 -07003013#ifdef WMI_INTERFACE_EVENT_LOGGING
3014void wmi_print_cmd_log(wmi_unified_t wmi, uint32_t count,
3015 qdf_abstract_print *print, void *print_priv);
3016
3017void wmi_print_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count,
3018 qdf_abstract_print *print, void *print_priv);
3019
3020void wmi_print_mgmt_cmd_log(wmi_unified_t wmi, uint32_t count,
3021 qdf_abstract_print *print, void *print_priv);
3022
3023void wmi_print_mgmt_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count,
3024 qdf_abstract_print *print, void *print_priv);
3025
3026void wmi_print_event_log(wmi_unified_t wmi, uint32_t count,
3027 qdf_abstract_print *print, void *print_priv);
3028
3029void wmi_print_rx_event_log(wmi_unified_t wmi, uint32_t count,
3030 qdf_abstract_print *print, void *print_priv);
3031
3032void wmi_print_mgmt_event_log(wmi_unified_t wmi, uint32_t count,
3033 qdf_abstract_print *print, void *print_priv);
Kiran Kumar Lokerea8436342017-04-24 00:56:03 -07003034
Dustin Brown536064a2017-04-03 17:00:07 -07003035#endif /* WMI_INTERFACE_EVENT_LOGGING */
3036
Kiran Venkatappa084aff42017-11-08 19:32:23 +05303037/**
Rathees kumar Chinannancd61d592017-11-22 17:03:57 +05303038 * wmi_unified_send_wds_entry_list_cmd() - WMI function to get list of
3039 * wds entries from FW
Arif Hussaina9e49862017-12-27 16:23:45 -08003040 * @wmi_hdl: wmi handle
Rathees kumar Chinannancd61d592017-11-22 17:03:57 +05303041 *
3042 * Send WMI_PDEV_WDS_ENTRY_LIST_CMDID parameters to fw.
3043 *
3044 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
3045 */
3046
3047QDF_STATUS wmi_unified_send_dump_wds_table_cmd(void *wmi_hdl);
3048
3049/**
3050 * wmi_extract_wds_entry - api to extract wds entry
Arif Hussaina9e49862017-12-27 16:23:45 -08003051 * @wmi_hdl: wmi handle
Rathees kumar Chinannancd61d592017-11-22 17:03:57 +05303052 * @evt_buf: pointer to event buffer
3053 * @wds_entry: wds entry
3054 * @idx: index to point wds entry in event buffer
3055 *
3056 * Return: QDF_STATUS_SUCCESS for successful event parse
3057 * else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
3058 */
3059
3060QDF_STATUS wmi_extract_wds_entry(void *wmi_hdl, uint8_t *evt_buf,
3061 struct wdsentry *wds_entry, u_int32_t idx);
Naveen Rawat68805122017-12-14 13:24:31 -08003062
Arif Hussaina9e49862017-12-27 16:23:45 -08003063/**
3064 * wmi_unified_send_obss_detection_cfg_cmd() - WMI function to send obss
3065 * detection configuration to FW.
3066 * @wmi_hdl: wmi handle
3067 * @cfg: obss detection configuration
3068 *
3069 * Send WMI_SAP_OBSS_DETECTION_CFG_CMDID parameters to fw.
3070 *
3071 * Return: QDF_STATUS
3072 */
3073
3074QDF_STATUS wmi_unified_send_obss_detection_cfg_cmd(void *wmi_hdl,
3075 struct wmi_obss_detection_cfg_param *cfg);
Arif Hussainc116a012018-01-12 13:15:04 -08003076
3077/**
3078 * wmi_unified_extract_obss_detection_info() - WMI function to extract obss
3079 * detection info from FW.
3080 * @wmi_hdl: wmi handle
3081 * @data: event data from firmware
3082 * @info: Pointer to hold obss detection info
3083 *
3084 * This function is used to extract obss info from firmware.
3085 *
3086 * Return: QDF_STATUS
3087 */
3088
3089QDF_STATUS wmi_unified_extract_obss_detection_info(void *wmi_hdl,
3090 uint8_t *data,
3091 struct wmi_obss_detect_info
3092 *info);
3093
Himanshu Agarwalc4cec662018-01-24 22:24:17 +05303094#ifdef WLAN_SUPPORT_GREEN_AP
3095QDF_STATUS wmi_extract_green_ap_egap_status_info(
3096 void *wmi_hdl, uint8_t *evt_buf,
3097 struct wlan_green_ap_egap_status_info *egap_status_info_params);
3098#endif
3099
Vignesh Viswanathan26fc2e12018-01-18 19:06:40 +05303100/**
Rajeev Kumar Sirasanagandla61a090c2018-03-02 21:12:16 +05303101 * wmi_unified_send_roam_scan_stats_cmd() - Wrapper to request roam scan stats
3102 * @wmi_hdl: wmi handle
3103 * @params: request params
3104 *
3105 * This function is used to send the roam scan stats request command to
3106 * firmware.
3107 *
3108 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3109 */
3110QDF_STATUS
3111wmi_unified_send_roam_scan_stats_cmd(void *wmi_hdl,
3112 struct wmi_roam_scan_stats_req *params);
3113
3114/**
3115 * wmi_extract_roam_scan_stats_res_evt() - API to extract roam scan stats res
3116 * @wmi: wmi handle
3117 * @evt_buf: pointer to the event buffer
3118 * @vdev_id: output pointer to hold vdev id
3119 * @res_param: output pointer to hold extracted memory
3120 *
3121 * Return: QDF_STATUS
3122 */
3123QDF_STATUS
3124wmi_extract_roam_scan_stats_res_evt(wmi_unified_t wmi, void *evt_buf,
3125 uint32_t *vdev_id,
3126 struct wmi_roam_scan_stats_res **res_param);
Gyanranjan Hazarika584a1872018-10-04 11:26:20 -07003127
3128/**
3129 * wmi_extract_offload_bcn_tx_status_evt() - API to extract bcn tx status event
3130 * @wmi: wmi handle
3131 * @evt_buf: pointer to the event buffer
3132 * @vdev_id: output pointer to hold vdev id
3133 * @tx_status: output pointer to hold bcn tx status
3134 *
3135 * Return: QDF_STATUS
3136 */
3137QDF_STATUS
3138wmi_extract_offload_bcn_tx_status_evt(void *wmi_hdl, void *evt_buf,
3139 uint32_t *vdev_id, uint32_t *tx_status);
Naveen Rawat2a5dc612018-02-02 15:13:05 -08003140
Naveen Rawatcaca8b02018-02-02 15:18:33 -08003141/* wmi_get_ch_width_from_phy_mode() - convert phy mode to channel width
3142 * @wmi_hdl: wmi handle
3143 * @phymode: phy mode
3144 *
3145 * Return: wmi channel width
3146 */
3147wmi_host_channel_width wmi_get_ch_width_from_phy_mode(void *wmi_hdl,
3148 WMI_HOST_WLAN_PHY_MODE phymode);
3149
Naveen Rawat0e634fa2018-04-13 16:38:36 -07003150#ifdef QCA_SUPPORT_CP_STATS
3151/**
3152 * wmi_extract_cca_stats() - api to extract congestion stats from event buffer
3153 * @wmi_handle: wma handle
3154 * @evt_buf: event buffer
3155 * @datalen: length of buffer
3156 * @stats: buffer to populated after stats extraction
3157 *
3158 * Return: status of operation
3159 */
3160QDF_STATUS wmi_extract_cca_stats(wmi_unified_t wmi_handle, void *evt_buf,
3161 struct wmi_host_congestion_stats *stats);
3162#endif /* QCA_SUPPORT_CP_STATS */
3163
Shashikala Prabhu9951d562018-05-16 10:08:09 +05303164#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST)
3165/**
3166 * wmi_unified_dfs_send_avg_params_cmd() - send average radar parameters cmd.
3167 * @wmi_hdl: wmi handle
3168 * @params: radar found params
3169 *
3170 * This function passes the average radar parameters to fw
3171 *
3172 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3173 */
3174QDF_STATUS
3175wmi_unified_dfs_send_avg_params_cmd(void *wmi_hdl,
3176 struct dfs_radar_found_params *params);
3177
3178/**
3179 * wmi_extract_dfs_status_from_fw() - extract host dfs status from fw.
3180 * @wmi_hdl: wmi handle
3181 * @evt_buf: pointer to event buffer
3182 * @dfs_status_check: pointer to the host dfs status
3183 *
3184 * This function extracts the result of host dfs from fw
3185 *
3186 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3187 */
3188QDF_STATUS wmi_extract_dfs_status_from_fw(void *wmi_hdl, void *evt_buf,
3189 uint32_t *dfs_status_check);
3190#endif
c_cgodavb69942b2017-02-13 10:14:42 +05303191#ifdef OL_ATH_SMART_LOGGING
3192/**
3193 * wmi_unified_send_smart_logging_enable_cmd() - send smart logging enable cmd
3194 * @wmi_hdl: wmi handle
3195 * @params: enable/disable
3196 *
3197 * This function enables/disable the smart logging feature
3198 *
3199 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3200 */
3201QDF_STATUS wmi_unified_send_smart_logging_enable_cmd(void *wmi_hdl,
3202 uint32_t param);
3203
3204/**
3205 * wmi_unified_send_smart_logging_fatal_cmd() - send smart logging fatal cmd
3206 * @wmi_hdl: wmi handle
3207 * @param: Fatal event
3208 *
3209 * This function sends the smart log fatal events to the FW
3210 *
3211 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3212 */
3213QDF_STATUS wmi_unified_send_smart_logging_fatal_cmd
3214 (void *wmi_hdl,
3215 struct wmi_debug_fatal_events *param);
3216
3217/**
3218 * wmi_extract_smartlog_ev() - extract smartlog event info from event
3219 * @wmi_handle: wmi handle
3220 * @param evt_buf: pointer to event buffer
3221 * @param ev: Pointer to hold fatal events
3222 *
3223 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3224 */
3225QDF_STATUS wmi_extract_smartlog_ev
3226 (void *wmi_hdl, void *evt_buf,
3227 struct wmi_debug_fatal_events *ev);
Amar Singhaldbff0cc2018-06-26 16:45:54 -07003228
c_cgodavb69942b2017-02-13 10:14:42 +05303229#endif /* OL_ATH_SMART_LOGGING */
Amar Singhaldbff0cc2018-06-26 16:45:54 -07003230
Harprit Chhabada71c98462018-12-26 14:10:39 -08003231/**
3232 * wmi_process_fw_event_worker_thread_ctx() - process in worker thread context
3233 * @wmi_handle: handle to wmi
3234 * @evt_buf: pointer to event buffer
3235 *
3236 * Event process by below function will be in worker thread context.
3237 * Use this method for events which are not critical and not
3238 * handled in protocol stack.
3239 *
3240 * Return: none
3241 */
Amar Singhaldbff0cc2018-06-26 16:45:54 -07003242void wmi_process_fw_event_worker_thread_ctx(struct wmi_unified *wmi_handle,
Harprit Chhabada71c98462018-12-26 14:10:39 -08003243 void *evt_buf);
Amar Singhaldbff0cc2018-06-26 16:45:54 -07003244
Alok Singh1ae17d82018-09-20 16:07:28 +05303245/**
3246 * wmi_extract_ctl_failsafe_check_ev_param() - extract ctl failsafe
3247 * status from event
3248 * @wmi_handle: wmi handle
3249 * @param evt_buf: pointer to event buffer
3250 * @param ev: Pointer to hold ctl status
3251 *
3252 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3253 */
3254QDF_STATUS
3255wmi_extract_ctl_failsafe_check_ev_param(void *wmi_hdl,
3256 void *evt_buf,
3257 struct wmi_host_pdev_ctl_failsafe_event
3258 *param);
3259
Pratik Gandhi3bc16162018-09-17 16:47:12 +05303260#ifdef OBSS_PD
3261/**
Arif Hussaine1a66b52018-10-17 18:48:29 -07003262 * wmi_unified_send_obss_spatial_reuse_set_cmd() - send obss pd offset
Pratik Gandhi3bc16162018-09-17 16:47:12 +05303263 * @wmi_handle: wmi handle
Arif Hussaine1a66b52018-10-17 18:48:29 -07003264 * @oobss_spatial_reuse_param: Pointer to obsspd min max offset
Pratik Gandhi3bc16162018-09-17 16:47:12 +05303265 *
3266 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3267 */
3268QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_cmd(void *wmi_handle,
3269 struct wmi_host_obss_spatial_reuse_set_param *obss_spatial_reuse_param);
Arif Hussaine1a66b52018-10-17 18:48:29 -07003270
3271/**
3272 * wmi_unified_send_obss_spatial_reuse_set_def_thresh_cmd() - send def thresh
3273 * @wmi_handle: wmi handle
3274 * @thresh: Pointer to def thresh
3275 *
3276 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
3277 */
3278QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_def_thresh_cmd(void *wmi_hdl,
3279 struct wmi_host_obss_spatial_reuse_set_def_thresh *thresh);
3280
Pratik Gandhi3bc16162018-09-17 16:47:12 +05303281#endif /* OBSS_PD */
Shashikala Prabhu70da9432018-09-24 13:54:23 +05303282
3283/**
3284 * wmi_convert_pdev_id_host_to_target() - Convert pdev_id from host to target
3285 * defines. For legacy there is not conversion required. Just return pdev_id as
3286 * it is.
3287 * @wmi_hdl: wmi handle
3288 * @host_pdev_id: host pdev_id to be converted.
3289 * @target_pdev_id: Output target pdev id.
3290 *
3291 * Return: QDF_STATUS
3292 */
3293QDF_STATUS wmi_convert_pdev_id_host_to_target(void *wmi_hdl,
3294 uint32_t host_pdev_id,
3295 uint32_t *target_pdev_id);
Qiwei Cai770c90f2018-09-17 19:17:13 +08003296
3297/**
3298 * wmi_unified_send_bss_color_change_enable_cmd() - WMI function to send bss
3299 * color change enable to FW.
3300 * @wmi_hdl: wmi handle
3301 * @vdev_id: vdev ID
3302 * @enable: enable or disable color change handeling within firmware
3303 *
3304 * Send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID parameters to fw,
3305 * thereby firmware updates bss color when AP announces bss color change.
3306 *
3307 * Return: QDF_STATUS
3308 */
3309QDF_STATUS wmi_unified_send_bss_color_change_enable_cmd(void *wmi_hdl,
3310 uint32_t vdev_id,
3311 bool enable);
3312
3313/**
3314 * wmi_unified_send_obss_color_collision_cfg_cmd() - WMI function to send bss
3315 * color collision detection configuration to FW.
3316 * @wmi_hdl: wmi handle
3317 * @cfg: obss color collision detection configuration
3318 *
3319 * Send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID parameters to fw.
3320 *
3321 * Return: QDF_STATUS
3322 */
3323QDF_STATUS wmi_unified_send_obss_color_collision_cfg_cmd(void *wmi_hdl,
3324 struct wmi_obss_color_collision_cfg_param *cfg);
3325
3326/**
3327 * wmi_unified_extract_obss_color_collision_info() - WMI function to extract
3328 * obss color collision info from FW.
3329 * @wmi_hdl: wmi handle
3330 * @data: event data from firmware
3331 * @info: Pointer to hold bss color collision info
3332 *
3333 * This function is used to extract bss collision info from firmware.
3334 *
3335 * Return: QDF_STATUS
3336 */
3337QDF_STATUS wmi_unified_extract_obss_color_collision_info(void *wmi_hdl,
3338 uint8_t *data, struct wmi_obss_color_collision_info *info);
3339
Kiran Kumar Lokere25531c42018-09-19 13:48:48 -07003340#ifdef CRYPTO_SET_KEY_CONVERGED
3341/**
3342 * wlan_crypto_cipher_to_wmi_cipher() - Convert crypto cipher to WMI cipher
3343 * @crypto_cipher: cipher type in crypto format
3344 *
3345 * Return: cipher type in WMI cipher type
3346 */
3347uint8_t wlan_crypto_cipher_to_wmi_cipher(
3348 enum wlan_crypto_cipher_type crypto_cipher);
3349
3350/**
3351 * wlan_crypto_cipher_to_cdp_sec_type() - Convert crypto cipher to CDP type
3352 * @crypto_cipher: cipher type in crypto format
3353 *
3354 * Return: security type in cdp_sec_type data format type
3355 */
3356enum cdp_sec_type wlan_crypto_cipher_to_cdp_sec_type(
3357 enum wlan_crypto_cipher_type crypto_cipher);
3358
3359#endif
Abhiram Jogadenu975303c2019-01-23 11:55:10 +05303360
Arun Kumar Khandavalliac6e1262019-03-10 16:32:21 +05303361/**
3362 * wmi_unified_send_mws_coex_req_cmd() - WMI function to send coex req cmd
3363 * @wmi_hdl: wmi handle
3364 * @vdev_id: Vdev Id
3365 * @cmd_id: Coex cmd for which info is required
3366 *
3367 * Send wmi coex command to fw.
3368 *
3369 * Return: QDF_STATUS
3370 */
3371QDF_STATUS wmi_unified_send_mws_coex_req_cmd(struct wmi_unified *wmi_handle,
3372 uint32_t vdev_id, uint32_t cmd_id);
3373
Pragaspathi Thilagaraj95825152019-04-16 02:28:24 +05303374/**
3375 * wmi_unified_send_idle_trigger_monitor() - send idle trigger monitor command
3376 * @wmi_handle: WMI handle
3377 * @val: idle trigger monitor value - 1 for idle monitor on, 0 for idle monitor
3378 * off
3379 *
3380 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
3381 */
3382QDF_STATUS
3383wmi_unified_send_idle_trigger_monitor(wmi_unified_t wmi_handle, uint8_t val);
3384
Abhiram Jogadenu975303c2019-01-23 11:55:10 +05303385#ifdef WLAN_CFR_ENABLE
3386/**
3387 * wmi_unified_send_peer_cfr_capture_cmd() - WMI function to start CFR capture
3388 * for a peer
3389 * @wmi_hdl: WMI handle
3390 * @param: configuration params for capture
3391 *
3392 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
3393 */
3394QDF_STATUS
3395wmi_unified_send_peer_cfr_capture_cmd(void *wmi_hdl,
3396 struct peer_cfr_params *param);
Abhiram Jogadenuc5281452019-02-14 16:21:09 +05303397/**
3398 * wmi_extract_cfr_peer_tx_event_param() - WMI function to extract cfr tx event
3399 * for a peer
3400 * @wmi_hdl: WMI handle
3401 * @evt_buf: Buffer holding event data
3402 * @peer_tx_event: pointer to hold tx event data
3403 *
3404 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
3405 */
3406QDF_STATUS
3407wmi_extract_cfr_peer_tx_event_param(void *wmi_hdl, void *evt_buf,
3408 wmi_cfr_peer_tx_event_param *peer_tx_event);
Pragaspathi Thilagaraj95825152019-04-16 02:28:24 +05303409
Abhiram Jogadenu975303c2019-01-23 11:55:10 +05303410#endif /* WLAN_CFR_ENABLE */
Abhiram Jogadenu94748b32019-06-04 16:46:34 +05303411
3412#ifdef WIFI_POS_CONVERGED
3413/**
3414 * wmi_extract_oem_response_param() - WMI function to extract OEM response param
3415 * @wmi_hdl: WMI handle
3416 * @resp_buf: Buffer holding response data
3417 * @oem_resp_param: zero-filled structure pointer to hold oem response data
3418 *
3419 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code.
3420 */
3421QDF_STATUS
3422wmi_extract_oem_response_param(wmi_unified_t wmi_hdl, void *resp_buf,
3423 struct wmi_oem_response_param *oem_resp_param);
3424#endif /* WIFI_POS_CONVERGED */
Prakash Dhavalid5c9f1c2015-11-08 19:04:44 -08003425#endif /* _WMI_UNIFIED_API_H_ */