blob: 18734843bdadf1c55818ebfd53c5da43fbf130d0 [file] [log] [blame]
Govind Singhd475ea92016-03-06 19:55:02 +05301/*
Naveen Rawat79a787c2017-12-14 13:24:31 -08002 * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
Govind Singhd475ea92016-03-06 19:55:02 +05303 *
Govind Singhd475ea92016-03-06 19:55:02 +05304 * 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 Singh6ad6ada2016-02-04 18:42:30 +053020 * This file contains the API definitions for the Unified Wireless Module
21 * Interface (WMI).
Govind Singhd475ea92016-03-06 19:55:02 +053022 */
23
24#ifndef _WMI_UNIFIED_API_H_
25#define _WMI_UNIFIED_API_H_
26
27#include <osdep.h>
Himanshu Agarwal56c292f2016-07-19 15:41:51 +053028#ifdef CONFIG_MCL
Govind Singhd475ea92016-03-06 19:55:02 +053029#include "wmi.h"
Himanshu Agarwal56c292f2016-07-19 15:41:51 +053030#endif
Govind Singhd475ea92016-03-06 19:55:02 +053031#include "htc_api.h"
Govind Singh3ddda1f2016-03-09 11:34:12 +053032#include "wmi_unified_param.h"
Srinivas Pitla83aad502018-01-08 16:55:36 +053033#include "service_ready_param.h"
Mukul Sharma36d159b2017-01-30 19:55:40 +053034#include "wlan_objmgr_psoc_obj.h"
Himanshu Agarwal53d526b2017-01-05 14:23:18 +053035#include "wlan_mgmt_txrx_utils_api.h"
Wu Gao2a3bc052018-05-17 16:14:00 +080036#ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
Mukul Sharmaba196f52017-02-25 01:50:47 +053037#include "wmi_unified_pmo_api.h"
38#endif
Wu Gao07ba6b42017-03-13 20:17:34 +080039#ifdef CONVERGED_P2P_ENABLE
40#include "wlan_p2p_public_struct.h"
41#endif
Om Prakash Tripathi91452bf2017-02-25 15:53:30 +053042#include "wlan_scan_public_structs.h"
Nachiket Kukadea6ffaab2017-12-15 12:36:58 +053043#ifdef WLAN_FEATURE_DISA
44#include "wlan_disa_public_struct.h"
45#endif
Rajeev Kumar Sirasanagandla9d7a69f2017-09-18 16:47:52 +053046#ifdef WLAN_FEATURE_ACTION_OUI
47#include "wlan_action_oui_public_struct.h"
48#endif
Naveen Rawat79a787c2017-12-14 13:24:31 -080049#ifdef WLAN_FEATURE_NAN_CONVERGENCE
50#include "nan_public_structs.h"
51#endif
Himanshu Agarwal0d578ff2018-01-10 14:21:53 +053052#ifdef WLAN_SUPPORT_GREEN_AP
53#include "wlan_green_ap_api.h"
54#endif
Zhang Qian74a66aa2018-01-05 16:50:53 +080055#ifdef WLAN_FEATURE_DSRC
56#include "wlan_ocb_public_structs.h"
57#endif
Kiran Venkatappa2d881fd2018-02-05 10:56:43 +053058#ifdef WLAN_SUPPORT_TWT
59#include "wmi_unified_twt_param.h"
60#include "wmi_unified_twt_api.h"
61#endif
Naveen Rawat79a787c2017-12-14 13:24:31 -080062
Wen Gong5b1429d2018-05-18 16:03:41 +080063#ifdef FEATURE_WLAN_EXTSCAN
64#include "wmi_unified_extscan_api.h"
65#endif
66
Sravan Kumar Kairamdcb5f802018-02-15 23:28:34 +053067#ifdef IPA_OFFLOAD
68#include "wlan_ipa_public_struct.h"
69#endif
70
Govind Singhd7468a52016-03-09 14:32:57 +053071typedef qdf_nbuf_t wmi_buf_t;
72#define wmi_buf_data(_buf) qdf_nbuf_data(_buf)
73
74#define WMI_LOGD(args ...) \
75 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_DEBUG, ## args)
76#define WMI_LOGI(args ...) \
77 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_INFO, ## args)
78#define WMI_LOGW(args ...) \
79 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_WARN, ## args)
80#define WMI_LOGE(args ...) \
81 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, ## args)
82#define WMI_LOGP(args ...) \
83 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_FATAL, ## args)
84
Govind Singhd7468a52016-03-09 14:32:57 +053085
Govind Singhd475ea92016-03-06 19:55:02 +053086
Arif Hussainf6b0c992018-03-01 14:40:59 -080087#define PHYERROR_MAX_BUFFER_LENGTH 0x7F000000
88
Kiran Venkatappa929dd292017-02-10 16:57:59 +053089struct wmi_soc;
Srinivas Girigowdac461aef2018-02-15 14:30:05 -080090struct policy_mgr_dual_mac_config;
Govind Singhd475ea92016-03-06 19:55:02 +053091/**
Govind Singh6ad6ada2016-02-04 18:42:30 +053092 * struct wmi_ops - service callbacks to upper layer
93 * @service_ready_cbk: service ready callback
94 * @service_ready_ext_cbk: service ready ext callback
95 * @ready_cbk: ready calback
96 * @wma_process_fw_event_handler_cbk: generic event handler callback
97 */
Govind Singh3ddda1f2016-03-09 11:34:12 +053098struct wmi_rx_ops {
Govind Singh4ec6ff92016-03-09 12:03:29 +053099
Govind Singh6ad6ada2016-02-04 18:42:30 +0530100 int (*wma_process_fw_event_handler_cbk)(void *ctx,
Govind Singh4ec6ff92016-03-09 12:03:29 +0530101 void *ev, uint8_t rx_ctx);
Govind Singh6ad6ada2016-02-04 18:42:30 +0530102};
103
104/**
105 * enum wmi_target_type - type of supported wmi command
106 * @WMI_TLV_TARGET: tlv based target
107 * @WMI_NON_TLV_TARGET: non-tlv based target
108 *
109 */
110enum wmi_target_type {
111 WMI_TLV_TARGET,
Pratik Gandhi073fa002018-01-30 19:05:41 +0530112 WMI_NON_TLV_TARGET,
113 WMI_MAX_TARGET_TYPE
Govind Singh6ad6ada2016-02-04 18:42:30 +0530114};
115
116/**
Govind Singh4ec6ff92016-03-09 12:03:29 +0530117 * enum wmi_rx_exec_ctx - wmi rx execution context
118 * @WMI_RX_WORK_CTX: work queue context execution provided by WMI layer
119 * @WMI_RX_UMAC_CTX: execution context provided by umac layer
120 *
121 */
122enum wmi_rx_exec_ctx {
123 WMI_RX_WORK_CTX,
124 WMI_RX_UMAC_CTX
125};
126
127/**
Chaithanya Garrepalli09744012017-12-01 14:55:26 +0530128 * struct wmi_unified_attach_params - wmi init parameters
129 * @param osdev : NIC device
Govind Singh89727882016-04-15 13:58:27 +0530130 * @param target_type : type of supported wmi command
131 * @param use_cookie : flag to indicate cookie based allocation
132 * @param ops : handle to wmi ops
Mukul Sharma36d159b2017-01-30 19:55:40 +0530133 * @psoc : objmgr psoc
Chaithanya Garrepalli09744012017-12-01 14:55:26 +0530134 * @max_commands : max commands
135 */
136struct wmi_unified_attach_params {
137 osdev_t osdev;
138 enum wmi_target_type target_type;
139 bool use_cookie;
140 struct wmi_rx_ops *rx_ops;
141 struct wlan_objmgr_psoc *psoc;
142 uint16_t max_commands;
c_priyscc79b352018-06-12 16:53:51 +0530143 uint32_t soc_id;
Chaithanya Garrepalli09744012017-12-01 14:55:26 +0530144};
145
146/**
147 * attach for unified WMI
148 *
149 * @param scn_handle : handle to SCN.
150 * @param params : attach params for WMI
151 *
Govind Singhd475ea92016-03-06 19:55:02 +0530152 */
153void *wmi_unified_attach(void *scn_handle,
Chaithanya Garrepalli09744012017-12-01 14:55:26 +0530154 struct wmi_unified_attach_params *params);
Mukul Sharma36d159b2017-01-30 19:55:40 +0530155
Govind Singh6ad6ada2016-02-04 18:42:30 +0530156
Sandeep Puligilla38a294f2016-06-13 15:42:55 -0700157
Sandeep Puligilla20fb76b2016-07-19 13:20:57 -0700158/**
159 * wmi_mgmt_cmd_record() - Wrapper function for mgmt command logging macro
160 *
161 * @wmi_handle: wmi handle
162 * @cmd: mgmt command
163 * @header: pointer to 802.11 header
164 * @vdev_id: vdev id
165 * @chanfreq: channel frequency
166 *
167 * Return: none
168 */
Himanshu Agarwal56c292f2016-07-19 15:41:51 +0530169void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd,
Sandeep Puligilla20fb76b2016-07-19 13:20:57 -0700170 void *header, uint32_t vdev_id, uint32_t chanfreq);
Sandeep Puligilla38a294f2016-06-13 15:42:55 -0700171
Govind Singhd475ea92016-03-06 19:55:02 +0530172/**
173 * detach for unified WMI
174 *
175 * @param wmi_handle : handle to WMI.
176 * @return void.
177 */
178void wmi_unified_detach(struct wmi_unified *wmi_handle);
179
gaurank kathpaliaa2a2c712018-02-21 18:58:29 +0530180/**
181 * API to sync time between host and firmware
182 *
183 * @param wmi_handle : handle to WMI.
184 * @return void.
185 */
186void wmi_send_time_stamp_sync_cmd_tlv(void *wmi_hdl);
187
Govind Singhd475ea92016-03-06 19:55:02 +0530188void
189wmi_unified_remove_work(struct wmi_unified *wmi_handle);
190
191/**
192 * generic function to allocate WMI buffer
193 *
194 * @param wmi_handle : handle to WMI.
195 * @param len : length of the buffer
196 * @return wmi_buf_t.
197 */
Shiva Krishna Pittala92416432018-04-02 17:23:42 +0530198#ifdef NBUF_MEMORY_DEBUG
Govind Singhd475ea92016-03-06 19:55:02 +0530199#define wmi_buf_alloc(h, l) wmi_buf_alloc_debug(h, l, __FILE__, __LINE__)
200wmi_buf_t
Debasis Das9d1359f2018-04-04 17:17:55 +0530201wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint32_t len,
Govind Singhd475ea92016-03-06 19:55:02 +0530202 uint8_t *file_name, uint32_t line_num);
203#else
Arif Hussain7aee5442018-07-19 14:15:36 -0700204/**
205 * wmi_buf_alloc() - generic function to allocate WMI buffer
206 * @wmi_handle: handle to WMI.
207 * @len: length of the buffer
208 *
209 * Return: return wmi_buf_t or null if memory alloc fails
210 */
211#define wmi_buf_alloc(wmi_handle, len) \
212 wmi_buf_alloc_fl(wmi_handle, len, __func__, __LINE__)
213
214wmi_buf_t wmi_buf_alloc_fl(wmi_unified_t wmi_handle, uint32_t len,
215 const char *func, uint32_t line);
Govind Singhd475ea92016-03-06 19:55:02 +0530216#endif
217
218/**
219 * generic function frees WMI net buffer
220 *
221 * @param net_buf : Pointer ot net_buf to be freed
222 */
223void wmi_buf_free(wmi_buf_t net_buf);
224
225/**
Arif Hussain6acb51f2018-07-19 15:05:16 -0700226 * wmi_unified_cmd_send() - generic function to send unified WMI command
227 * @wmi_handle: handle to WMI.
228 * @buf: wmi command buffer
229 * @buflen: wmi command buffer length
230 * @cmd_id: WMI cmd id
Govind Singhd475ea92016-03-06 19:55:02 +0530231 *
Arif Hussain6acb51f2018-07-19 15:05:16 -0700232 * Note, it is NOT safe to access buf after calling this function!
233 *
234 * Return: QDF_STATUS
Govind Singhd475ea92016-03-06 19:55:02 +0530235 */
Arif Hussain6acb51f2018-07-19 15:05:16 -0700236#define wmi_unified_cmd_send(wmi_handle, buf, buflen, cmd_id) \
237 wmi_unified_cmd_send_fl(wmi_handle, buf, buflen, \
238 cmd_id, __func__, __LINE__)
239
Houston Hoffman09f96f92016-09-27 23:29:49 -0700240QDF_STATUS
Arif Hussain6acb51f2018-07-19 15:05:16 -0700241wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf,
242 uint32_t buflen, uint32_t cmd_id,
243 const char *func, uint32_t line);
Govind Singhd475ea92016-03-06 19:55:02 +0530244
245/**
Soumya Bhat49a84812017-03-22 14:41:01 +0530246 * wmi_unified_register_event() - WMI event handler
247 * registration function for converged components
248 *
249 * @wmi_handle: handle to WMI.
250 * @event_id: WMI event ID
251 * @handler_func: Event handler call back function
252 *
253 * @return 0 on success and -ve on failure.
254 */
255int
256wmi_unified_register_event(wmi_unified_t wmi_handle,
257 uint32_t event_id,
258 wmi_unified_event_handler handler_func);
259
260/**
Govind Singh4ec6ff92016-03-09 12:03:29 +0530261 * wmi_unified_register_event_handler() - WMI event handler
262 * registration function
Govind Singhd475ea92016-03-06 19:55:02 +0530263 *
Govind Singh4ec6ff92016-03-09 12:03:29 +0530264 * @wmi_handle: handle to WMI.
265 * @event_id: WMI event ID
266 * @handler_func: Event handler call back function
267 * @rx_ctx: rx event processing context
268 *
Govind Singhd475ea92016-03-06 19:55:02 +0530269 * @return 0 on success and -ve on failure.
270 */
271int
272wmi_unified_register_event_handler(wmi_unified_t wmi_handle,
Mukul Sharma6faf5a82017-11-03 19:26:54 +0530273 wmi_conv_event_id event_id,
Govind Singh4ec6ff92016-03-09 12:03:29 +0530274 wmi_unified_event_handler handler_func,
275 uint8_t rx_ctx);
Govind Singhd475ea92016-03-06 19:55:02 +0530276
277/**
Soumya Bhat070cd052017-03-27 12:26:56 +0530278 * WMI event handler unregister function for converged componets
279 *
280 * @param wmi_handle : handle to WMI.
281 * @param event_id : WMI event ID
282 * @return 0 on success and -ve on failure.
283 */
284int
285wmi_unified_unregister_event(wmi_unified_t wmi_handle,
286 uint32_t event_id);
287
288/**
Govind Singhd475ea92016-03-06 19:55:02 +0530289 * WMI event handler unregister function
290 *
291 * @param wmi_handle : handle to WMI.
292 * @param event_id : WMI event ID
293 * @return 0 on success and -ve on failure.
294 */
295int
296wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle,
Mukul Sharma6faf5a82017-11-03 19:26:54 +0530297 wmi_conv_event_id event_id);
Govind Singhd475ea92016-03-06 19:55:02 +0530298
299/**
300 * request wmi to connet its htc service.
301 * @param wmi_handle : handle to WMI.
Govind Singh89727882016-04-15 13:58:27 +0530302 * @param htc_handle : handle to HTC.
Govind Singhd475ea92016-03-06 19:55:02 +0530303 * @return void
304 */
Kiran Venkatappa929dd292017-02-10 16:57:59 +0530305QDF_STATUS
Govind Singhd475ea92016-03-06 19:55:02 +0530306wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle,
307 void *htc_handle);
308
309/*
310 * WMI API to verify the host has enough credits to suspend
Govind Singh89727882016-04-15 13:58:27 +0530311 * @param wmi_handle : handle to WMI.
Govind Singhd475ea92016-03-06 19:55:02 +0530312 */
313
314int wmi_is_suspend_ready(wmi_unified_t wmi_handle);
315
316/**
Govind Singh89727882016-04-15 13:58:27 +0530317 * WMI API to get updated host_credits
318 * @param wmi_handle : handle to WMI.
Govind Singhd475ea92016-03-06 19:55:02 +0530319 */
320
321int wmi_get_host_credits(wmi_unified_t wmi_handle);
322
323/**
Govind Singh89727882016-04-15 13:58:27 +0530324 * WMI API to get WMI Pending Commands in the HTC queue
325 * @param wmi_handle : handle to WMI.
Govind Singhd475ea92016-03-06 19:55:02 +0530326 */
327
328int wmi_get_pending_cmds(wmi_unified_t wmi_handle);
329
330/**
Govind Singh89727882016-04-15 13:58:27 +0530331 * WMI API to set target suspend state
332 * @param wmi_handle : handle to WMI.
333 * @param val : suspend state boolean
Govind Singhd475ea92016-03-06 19:55:02 +0530334 */
Govind Singhd475ea92016-03-06 19:55:02 +0530335void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val);
336
Govind Singh89727882016-04-15 13:58:27 +0530337/**
Sarada Prasanna Garnayakd49444c2017-01-05 19:30:07 +0530338 * WMI API to set bus suspend state
339 * @param wmi_handle: handle to WMI.
340 * @param val: suspend state boolean
341 */
342void wmi_set_is_wow_bus_suspended(wmi_unified_t wmi_handle, A_BOOL val);
343
344/**
345 * WMI API to set crash injection state
346 * @param wmi_handle: handle to WMI.
347 * @param val: crash injection state boolean
348 */
349void wmi_tag_crash_inject(wmi_unified_t wmi_handle, A_BOOL flag);
350
351/**
Ravi Kumar Bokkadf1f3ea2016-11-09 18:07:56 +0530352 * WMI API to set target assert
353 * @param wmi_handle: handle to WMI.
354 * @param val: target assert config value.
355 *
356 * Return: none.
357 */
358void wmi_set_tgt_assert(wmi_unified_t wmi_handle, bool val);
359
360/**
Govind Singh89727882016-04-15 13:58:27 +0530361 * generic function to block unified WMI command
362 * @param wmi_handle : handle to WMI.
363 * @return 0 on success and -ve on failure.
364 */
365int
366wmi_stop(wmi_unified_t wmi_handle);
367
368/**
369 * API to flush all the previous packets associated with the wmi endpoint
370 *
371 * @param wmi_handle : handle to WMI.
372 */
373void
374wmi_flush_endpoint(wmi_unified_t wmi_handle);
375
376/**
Kiran Venkatappa49341042017-05-10 16:24:51 +0530377 * wmi_pdev_id_conversion_enable() - API to enable pdev_id conversion in WMI
378 * By default pdev_id conversion is not done in WMI.
379 * This API can be used enable conversion in WMI.
380 * @param wmi_handle : handle to WMI
381 * Return none
382 */
383void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle);
384
385/**
Govind Singh89727882016-04-15 13:58:27 +0530386 * API to handle wmi rx event after UMAC has taken care of execution
387 * context
388 *
389 * @param wmi_handle : handle to WMI.
390 * @param evt_buf : wmi event buffer
391 */
392void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
Govind Singhd475ea92016-03-06 19:55:02 +0530393#ifdef FEATURE_RUNTIME_PM
394void
395wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val);
396bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle);
397#else
398static inline void
399wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val)
400{
401 return;
402}
403static inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle)
404{
405 return false;
406}
407#endif
408
Kiran Venkatappa929dd292017-02-10 16:57:59 +0530409void *wmi_unified_get_soc_handle(struct wmi_unified *wmi_handle);
410
411void *wmi_unified_get_pdev_handle(struct wmi_soc *soc, uint32_t pdev_idx);
412
Govind Singhd475ea92016-03-06 19:55:02 +0530413/**
Govind Singhd7468a52016-03-09 14:32:57 +0530414 * UMAC Callback to process fw event.
Govind Singh89727882016-04-15 13:58:27 +0530415 * @param wmi_handle : handle to WMI.
416 * @param evt_buf : wmi event buffer
Govind Singhd475ea92016-03-06 19:55:02 +0530417 */
Govind Singhd475ea92016-03-06 19:55:02 +0530418void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf);
419uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle);
Govind Singh3ddda1f2016-03-09 11:34:12 +0530420
421
Govind Singhd7468a52016-03-09 14:32:57 +0530422QDF_STATUS wmi_unified_vdev_create_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530423 uint8_t macaddr[IEEE80211_ADDR_LEN],
424 struct vdev_create_params *param);
425
Govind Singhd7468a52016-03-09 14:32:57 +0530426QDF_STATUS wmi_unified_vdev_delete_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530427 uint8_t if_id);
428
Govind Singhd7468a52016-03-09 14:32:57 +0530429QDF_STATUS wmi_unified_vdev_stop_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530430 uint8_t vdev_id);
431
Govind Singhd7468a52016-03-09 14:32:57 +0530432QDF_STATUS wmi_unified_vdev_up_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530433 uint8_t bssid[IEEE80211_ADDR_LEN],
434 struct vdev_up_params *params);
435
Govind Singhd7468a52016-03-09 14:32:57 +0530436QDF_STATUS wmi_unified_vdev_down_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530437 uint8_t vdev_id);
438
Himanshu Agarwal7e4f4bc2016-03-09 16:49:38 +0530439QDF_STATUS wmi_unified_vdev_start_send(void *wmi_hdl,
440 struct vdev_start_params *req);
Chaithanya Garrepalli140a0532018-01-18 14:19:41 +0530441/**
442 * wmi_unified_vdev_set_nac_rssi_send() - send NAC_RSSI command to fw
443 * @param wmi_handle : handle to WMI
444 * @param req : pointer to hold nac rssi request data
445 *
446 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
447 */
448QDF_STATUS wmi_unified_vdev_set_nac_rssi_send(void *wmi_hdl,
449 struct vdev_scan_nac_rssi_params *req);
Himanshu Agarwal7e4f4bc2016-03-09 16:49:38 +0530450
451QDF_STATUS wmi_unified_hidden_ssid_vdev_restart_send(void *wmi_hdl,
452 struct hidden_ssid_vdev_restart_params *restart_params);
453
Govind Singhd7468a52016-03-09 14:32:57 +0530454QDF_STATUS wmi_unified_vdev_set_param_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530455 struct vdev_set_params *param);
456
Govind Singhd7468a52016-03-09 14:32:57 +0530457QDF_STATUS wmi_unified_peer_delete_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530458 uint8_t
459 peer_addr[IEEE80211_ADDR_LEN],
460 uint8_t vdev_id);
461
Govind Singhd7468a52016-03-09 14:32:57 +0530462QDF_STATUS wmi_unified_peer_flush_tids_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530463 uint8_t peer_addr[IEEE80211_ADDR_LEN],
464 struct peer_flush_params *param);
465
Govind Singhd7468a52016-03-09 14:32:57 +0530466QDF_STATUS wmi_set_peer_param_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530467 uint8_t peer_addr[IEEE80211_ADDR_LEN],
468 struct peer_set_params *param);
469
Govind Singhd7468a52016-03-09 14:32:57 +0530470QDF_STATUS wmi_unified_peer_create_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530471 struct peer_create_params *param);
472
Govind Singhd7468a52016-03-09 14:32:57 +0530473QDF_STATUS wmi_unified_stats_request_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530474 uint8_t macaddr[IEEE80211_ADDR_LEN],
475 struct stats_request_params *param);
476
Govind Singhd7468a52016-03-09 14:32:57 +0530477QDF_STATUS wmi_unified_green_ap_ps_send(void *wmi_hdl,
Himanshu Agarwal0d578ff2018-01-10 14:21:53 +0530478 uint32_t value, uint8_t pdev_id);
Govind Singh3ddda1f2016-03-09 11:34:12 +0530479
Will Huang5325c7c2017-11-17 13:19:16 +0800480#ifdef FEATURE_WLAN_D0WOW
481QDF_STATUS wmi_unified_d0wow_enable_send(void *wmi_hdl,
482 uint8_t mac_id);
483QDF_STATUS wmi_unified_d0wow_disable_send(void *wmi_hdl,
484 uint8_t mac_id);
485#endif
Govind Singh3ddda1f2016-03-09 11:34:12 +0530486
Govind Singhd7468a52016-03-09 14:32:57 +0530487QDF_STATUS wmi_unified_wow_enable_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530488 struct wow_cmd_params *param,
489 uint8_t mac_id);
490
Jeff Johnson6b8bda42016-10-07 13:03:02 -0700491QDF_STATUS wmi_unified_wow_wakeup_send(void *wmi_hdl);
492
493QDF_STATUS wmi_unified_wow_add_wakeup_event_send(void *wmi_hdl,
494 struct wow_add_wakeup_params *param);
495
496QDF_STATUS wmi_unified_wow_add_wakeup_pattern_send(void *wmi_hdl,
497 struct wow_add_wakeup_pattern_params *param);
498
499QDF_STATUS wmi_unified_wow_remove_wakeup_pattern_send(void *wmi_hdl,
500 struct wow_remove_wakeup_pattern_params *param);
501
Kiran Venkatappa9da7e042016-08-09 22:52:35 +0530502#ifndef CONFIG_MCL
Govind Singh89727882016-04-15 13:58:27 +0530503QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl,
Keyur Parekh483138e2017-05-07 08:54:47 -0700504 WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, uint8_t mac_id);
Govind Singh89727882016-04-15 13:58:27 +0530505#else
Govind Singhd7468a52016-03-09 14:32:57 +0530506QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530507 uint8_t macaddr[IEEE80211_ADDR_LEN],
508 struct packet_enable_params *param);
Govind Singh89727882016-04-15 13:58:27 +0530509#endif
Govind Singh3ddda1f2016-03-09 11:34:12 +0530510
Keyur Parekh483138e2017-05-07 08:54:47 -0700511QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl, uint8_t mac_id);
Govind Singh3ddda1f2016-03-09 11:34:12 +0530512
Govind Singhd7468a52016-03-09 14:32:57 +0530513QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530514 struct suspend_params *param,
515 uint8_t mac_id);
516
Govind Singhd7468a52016-03-09 14:32:57 +0530517QDF_STATUS wmi_unified_resume_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530518 uint8_t mac_id);
519
Govind Singhd7468a52016-03-09 14:32:57 +0530520QDF_STATUS
Govind Singh3ddda1f2016-03-09 11:34:12 +0530521wmi_unified_pdev_param_send(void *wmi_hdl,
522 struct pdev_params *param,
523 uint8_t mac_id);
524
Govind Singh89727882016-04-15 13:58:27 +0530525QDF_STATUS wmi_unified_beacon_tmpl_send_cmd(void *wmi_hdl,
526 struct beacon_tmpl_params *param);
527
528
Govind Singhd7468a52016-03-09 14:32:57 +0530529QDF_STATUS wmi_unified_beacon_send_cmd(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530530 struct beacon_params *param);
531
Govind Singhd7468a52016-03-09 14:32:57 +0530532QDF_STATUS wmi_unified_peer_assoc_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530533 struct peer_assoc_params *param);
534
Govind Singhd7468a52016-03-09 14:32:57 +0530535QDF_STATUS wmi_unified_sta_ps_cmd_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530536 struct sta_ps_params *param);
537
Govind Singhd7468a52016-03-09 14:32:57 +0530538QDF_STATUS wmi_unified_ap_ps_cmd_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530539 uint8_t macaddr[IEEE80211_ADDR_LEN],
540 struct ap_ps_params *param);
541
Govind Singhd7468a52016-03-09 14:32:57 +0530542QDF_STATUS wmi_unified_scan_start_cmd_send(void *wmi_hdl,
Om Prakash Tripathi91452bf2017-02-25 15:53:30 +0530543 struct scan_req_params *param);
Govind Singh3ddda1f2016-03-09 11:34:12 +0530544
Govind Singhd7468a52016-03-09 14:32:57 +0530545QDF_STATUS wmi_unified_scan_stop_cmd_send(void *wmi_hdl,
Om Prakash Tripathi91452bf2017-02-25 15:53:30 +0530546 struct scan_cancel_param *param);
Govind Singh3ddda1f2016-03-09 11:34:12 +0530547
Govind Singhd7468a52016-03-09 14:32:57 +0530548QDF_STATUS wmi_unified_scan_chan_list_cmd_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530549 struct scan_chan_list_params *param);
550
551
Govind Singhd7468a52016-03-09 14:32:57 +0530552QDF_STATUS wmi_crash_inject(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530553 struct crash_inject *param);
554
Govind Singhd7468a52016-03-09 14:32:57 +0530555QDF_STATUS wmi_unified_pdev_utf_cmd_send(void *wmi_hdl,
Govind Singh3ddda1f2016-03-09 11:34:12 +0530556 struct pdev_utf_params *param,
557 uint8_t mac_id);
558
Wen Gong59d1dbe2018-04-20 16:56:28 +0800559#ifdef FEATURE_FW_LOG_PARSING
Govind Singhd7468a52016-03-09 14:32:57 +0530560QDF_STATUS wmi_unified_dbglog_cmd_send(void *wmi_hdl,
Wen Gong59d1dbe2018-04-20 16:56:28 +0800561 struct dbglog_params *param);
562#else
563static inline QDF_STATUS
564wmi_unified_dbglog_cmd_send(void *wmi_hdl,
565 struct dbglog_params *param)
566{
567 return QDF_STATUS_SUCCESS;
568}
569#endif
Govind Singh3ddda1f2016-03-09 11:34:12 +0530570
Govind Singhd7468a52016-03-09 14:32:57 +0530571QDF_STATUS wmi_mgmt_unified_cmd_send(void *wmi_hdl,
Govind Singh50988cc2016-02-26 18:09:36 +0530572 struct wmi_mgmt_params *param);
573
Kiran Venkatappa25c47022017-03-19 22:58:09 +0530574QDF_STATUS wmi_offchan_data_tx_cmd_send(void *wmi_hdl,
575 struct wmi_offchan_data_tx_params *param);
576
Govind Singhd7468a52016-03-09 14:32:57 +0530577QDF_STATUS wmi_unified_modem_power_state(void *wmi_hdl,
Govind Singh50988cc2016-02-26 18:09:36 +0530578 uint32_t param_value);
579
Govind Singhd7468a52016-03-09 14:32:57 +0530580QDF_STATUS wmi_unified_set_sta_ps_mode(void *wmi_hdl,
Govind Singh50988cc2016-02-26 18:09:36 +0530581 uint32_t vdev_id, uint8_t val);
Govind Singhd7468a52016-03-09 14:32:57 +0530582QDF_STATUS
Govind Singh50988cc2016-02-26 18:09:36 +0530583wmi_unified_set_sta_uapsd_auto_trig_cmd(void *wmi_hdl,
584 struct sta_uapsd_trig_params *param);
585
Govind Singhd7468a52016-03-09 14:32:57 +0530586QDF_STATUS wmi_unified_get_temperature(void *wmi_hdl);
Govind Singh50988cc2016-02-26 18:09:36 +0530587
Govind Singhd7468a52016-03-09 14:32:57 +0530588QDF_STATUS wmi_unified_set_p2pgo_oppps_req(void *wmi_hdl,
Govind Singh50988cc2016-02-26 18:09:36 +0530589 struct p2p_ps_params *oppps);
590
Govind Singhd7468a52016-03-09 14:32:57 +0530591QDF_STATUS wmi_unified_set_p2pgo_noa_req_cmd(void *wmi_hdl,
Govind Singh50988cc2016-02-26 18:09:36 +0530592 struct p2p_ps_params *noa);
593
Wu Gao07ba6b42017-03-13 20:17:34 +0800594#ifdef CONVERGED_P2P_ENABLE
Rachit Kankane54c543f2018-07-31 16:26:38 +0530595#ifdef FEATURE_P2P_LISTEN_OFFLOAD
Wu Gao07ba6b42017-03-13 20:17:34 +0800596QDF_STATUS wmi_unified_p2p_lo_start_cmd(void *wmi_hdl,
597 struct p2p_lo_start *param);
598
599QDF_STATUS wmi_unified_p2p_lo_stop_cmd(void *wmi_hdl, uint8_t vdev_id);
600#endif
Rachit Kankane54c543f2018-07-31 16:26:38 +0530601#endif
Wu Gao07ba6b42017-03-13 20:17:34 +0800602
Govind Singhd7468a52016-03-09 14:32:57 +0530603QDF_STATUS wmi_unified_set_smps_params(void *wmi_hdl, uint8_t vdev_id,
Govind Singh50988cc2016-02-26 18:09:36 +0530604 int value);
605
Govind Singhd7468a52016-03-09 14:32:57 +0530606QDF_STATUS wmi_unified_set_mimops(void *wmi_hdl, uint8_t vdev_id, int value);
Govind Singhe7b800c2016-03-01 15:30:53 +0530607
Zhang Qian74a66aa2018-01-05 16:50:53 +0800608#ifdef WLAN_FEATURE_DSRC
609/**
610 * wmi_unified_ocb_start_timing_advert() - start sending the timing
611 * advertisement frames on a channel
612 * @wmi_handle: pointer to the wmi handle
613 * @timing_advert: pointer to the timing advertisement struct
614 *
615 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
616 */
617QDF_STATUS wmi_unified_ocb_start_timing_advert(struct wmi_unified *wmi_handle,
Govind Singhe7b800c2016-03-01 15:30:53 +0530618 struct ocb_timing_advert_param *timing_advert);
619
Zhang Qian74a66aa2018-01-05 16:50:53 +0800620/**
621 * wmi_unified_ocb_stop_timing_advert() - stop sending the timing
622 * advertisement frames on a channel
623 * @wmi_handle: pointer to the wmi handle
624 * @timing_advert: pointer to the timing advertisement struct
625 *
626 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
627 */
628QDF_STATUS wmi_unified_ocb_stop_timing_advert(struct wmi_unified *wmi_handle,
Govind Singhe7b800c2016-03-01 15:30:53 +0530629 struct ocb_timing_advert_param *timing_advert);
630
Zhang Qian74a66aa2018-01-05 16:50:53 +0800631/**
632 * wmi_unified_ocb_set_config() - send the OCB config to the FW
633 * @wmi_handle: pointer to the wmi handle
634 * @config: the OCB configuration
635 *
636 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures
637 */
638QDF_STATUS wmi_unified_ocb_set_config(struct wmi_unified *wmi_handle,
639 struct ocb_config *config);
Govind Singhe7b800c2016-03-01 15:30:53 +0530640
Zhang Qian74a66aa2018-01-05 16:50:53 +0800641/**
642 * wmi_unified_ocb_get_tsf_timer() - get ocb tsf timer val
643 * @wmi_handle: pointer to the wmi handle
644 * @req: request for tsf timer
645 *
646 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
647 */
648QDF_STATUS wmi_unified_ocb_get_tsf_timer(struct wmi_unified *wmi_handle,
649 struct ocb_get_tsf_timer_param *req);
650
651/**
652 * wmi_unified_ocb_set_utc_time_cmd() - get ocb tsf timer val
653 * @wmi_handle: pointer to the wmi handle
654 * @vdev_id: vdev id
655 *
656 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
657 */
658QDF_STATUS wmi_unified_ocb_set_utc_time_cmd(struct wmi_unified *wmi_handle,
659 struct ocb_utc_param *utc);
660
661/**
662 * wmi_unified_dcc_get_stats_cmd() - get the DCC channel stats
663 * @wmi_handle: pointer to the wmi handle
664 * @get_stats_param: pointer to the dcc stats
665 *
666 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
667 */
668QDF_STATUS wmi_unified_dcc_get_stats_cmd(struct wmi_unified *wmi_handle,
669 struct ocb_dcc_get_stats_param *get_stats_param);
670
671/**
672 * wmi_unified_dcc_clear_stats() - command to clear the DCC stats
673 * @wmi_handle: pointer to the wmi handle
674 * @clear_stats_param: parameters to the command
675 *
676 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
677 */
678QDF_STATUS wmi_unified_dcc_clear_stats(struct wmi_unified *wmi_handle,
679 struct ocb_dcc_clear_stats_param *clear_stats_param);
680
681/**
682 * wmi_unified_dcc_update_ndl() - command to update the NDL data
683 * @wmi_handle: pointer to the wmi handle
684 * @update_ndl_param: pointer to the request parameters
685 *
686 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures
687 */
688QDF_STATUS wmi_unified_dcc_update_ndl(struct wmi_unified *wmi_handle,
689 struct ocb_dcc_update_ndl_param *update_ndl_param);
690
691/**
692 * wmi_extract_ocb_set_channel_config_resp() - extract status from wmi event
693 * @wmi_handle: wmi handle
694 * @evt_buf: pointer to event buffer
695 * @status: status buffer
696 *
697 * Return: QDF_STATUS_SUCCESS on success
698 */
699QDF_STATUS
700wmi_extract_ocb_set_channel_config_resp(struct wmi_unified *wmi_handle,
701 void *evt_buf,
702 uint32_t *status);
703
704/**
705 * wmi_extract_ocb_tsf_timer() - extract tsf timer from wmi event
706 * @wmi_handle: wmi handle
707 * @evt_buf: pointer to event buffer
708 * @resp: tsf timer
709 *
710 * Return: QDF_STATUS_SUCCESS on success
711 */
712QDF_STATUS wmi_extract_ocb_tsf_timer(struct wmi_unified *wmi_handle,
713 void *evt_buf,
714 struct ocb_get_tsf_timer_response *resp);
715
716/**
717 * wmi_extract_dcc_update_ndl_resp() - extract NDL update from wmi event
718 * @wmi_handle: wmi handle
719 * @evt_buf: pointer to event buffer
720 * @resp: ndl update status
721 *
722 * Return: QDF_STATUS_SUCCESS on success
723 */
724QDF_STATUS wmi_extract_dcc_update_ndl_resp(struct wmi_unified *wmi_handle,
725 void *evt_buf, struct ocb_dcc_update_ndl_response *resp);
726
727/**
728 * wmi_extract_dcc_stats() - extract DCC stats from wmi event
729 * @wmi_handle: wmi handle
730 * @evt_buf: pointer to event buffer
731 * @resp: DCC stats
732 *
733 * Since length of the response is variable, response buffer will be allocated.
734 * The caller must free the response buffer.
735 *
736 * Return: QDF_STATUS_SUCCESS on success
737 */
738QDF_STATUS wmi_extract_dcc_stats(struct wmi_unified *wmi_handle,
739 void *evt_buf,
740 struct ocb_dcc_get_stats_response **response);
741#endif
Govind Singhe7b800c2016-03-01 15:30:53 +0530742
Govind Singhd7468a52016-03-09 14:32:57 +0530743QDF_STATUS wmi_unified_lro_config_cmd(void *wmi_hdl,
Govind Singh9bad0002016-03-01 15:54:59 +0530744 struct wmi_lro_config_cmd_t *wmi_lro_cmd);
745
Govind Singhd7468a52016-03-09 14:32:57 +0530746QDF_STATUS wmi_unified_set_thermal_mgmt_cmd(void *wmi_hdl,
Govind Singh9bad0002016-03-01 15:54:59 +0530747 struct thermal_cmd_params *thermal_info);
748
Poddar, Siddarth794b9962016-04-28 15:49:11 +0530749QDF_STATUS wmi_unified_peer_rate_report_cmd(void *wmi_hdl,
750 struct wmi_peer_rate_report_params *rate_report_params);
751
Govind Singhd7468a52016-03-09 14:32:57 +0530752QDF_STATUS wmi_unified_set_mcc_channel_time_quota_cmd
Govind Singh9bad0002016-03-01 15:54:59 +0530753 (void *wmi_hdl,
754 uint32_t adapter_1_chan_freq,
755 uint32_t adapter_1_quota, uint32_t adapter_2_chan_freq);
756
Govind Singhd7468a52016-03-09 14:32:57 +0530757QDF_STATUS wmi_unified_set_mcc_channel_time_latency_cmd
Govind Singh9bad0002016-03-01 15:54:59 +0530758 (void *wmi_hdl,
759 uint32_t mcc_channel_freq, uint32_t mcc_channel_time_latency);
760
Govind Singhd7468a52016-03-09 14:32:57 +0530761QDF_STATUS wmi_unified_set_enable_disable_mcc_adaptive_scheduler_cmd(
Govind Singh608e8892016-04-16 19:24:23 -0700762 void *wmi_hdl, uint32_t mcc_adaptive_scheduler,
763 uint32_t pdev_id);
Govind Singhae855362016-03-07 14:24:22 +0530764
Kiran Venkatappa9da7e042016-08-09 22:52:35 +0530765#ifdef CONFIG_MCL
Govind Singhd7468a52016-03-09 14:32:57 +0530766QDF_STATUS wmi_unified_bcn_buf_ll_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530767 wmi_bcn_send_from_host_cmd_fixed_param *param);
Govind Singh89727882016-04-15 13:58:27 +0530768#endif
Govind Singhae855362016-03-07 14:24:22 +0530769
Govind Singhd7468a52016-03-09 14:32:57 +0530770QDF_STATUS wmi_unified_set_sta_sa_query_param_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530771 uint8_t vdev_id, uint32_t max_retries,
772 uint32_t retry_interval);
773
774
Govind Singhd7468a52016-03-09 14:32:57 +0530775QDF_STATUS wmi_unified_set_sta_keep_alive_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530776 struct sta_params *params);
777
Govind Singhd7468a52016-03-09 14:32:57 +0530778QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id,
Govind Singhae855362016-03-07 14:24:22 +0530779 struct wmi_gtx_config *gtx_info);
780
Govind Singhd7468a52016-03-09 14:32:57 +0530781QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl,
Kiran Kumar Lokereaf132c12018-04-06 16:56:47 -0700782 uint8_t vdev_id, bool mu_edca_param,
Vikram Kandukurid2e75802017-06-01 16:47:51 +0530783 struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]);
Govind Singhae855362016-03-07 14:24:22 +0530784
Govind Singhd7468a52016-03-09 14:32:57 +0530785QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530786 uint8_t vdev_id,
Krunal Soni36f17d42017-11-14 15:42:48 -0800787 struct wmi_probe_resp_params *probe_rsp_info);
Govind Singhae855362016-03-07 14:24:22 +0530788
Himanshu Agarwal9efd9bf2016-03-09 18:49:18 +0530789QDF_STATUS wmi_unified_setup_install_key_cmd(void *wmi_hdl,
790 struct set_key_params *key_params);
791
Nachiket Kukadee42cd4b2017-12-20 17:28:29 +0530792#ifdef WLAN_FEATURE_DISA
793/**
794 * wmi_unified_encrypt_decrypt_send_cmd() - send encryptdecrypt cmd to fw
795 * @wmi_hdl: wmi handle
796 * @params: encrypt/decrypt params
797 *
798 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
799 */
Padma, Santhosh Kumar73524052016-09-11 18:24:59 +0530800QDF_STATUS wmi_unified_encrypt_decrypt_send_cmd(void *wmi_hdl,
Nachiket Kukadee42cd4b2017-12-20 17:28:29 +0530801 struct disa_encrypt_decrypt_req_params *params);
802
803/**
804 * wmi_extract_encrypt_decrypt_resp_params() -
805 * extract encrypt decrypt resp params from event buffer
806 * @wmi_handle: wmi handle
807 * @evt_buf: pointer to event buffer
808 * @resp: encrypt decrypt resp params
809 *
810 * Return: QDF_STATUS_SUCCESS for success or error code
811 */
812QDF_STATUS wmi_extract_encrypt_decrypt_resp_params(void *wmi_hdl,
813 uint8_t *evt_buf,
814 struct disa_encrypt_decrypt_resp_params *resp);
815#endif
Padma, Santhosh Kumar73524052016-09-11 18:24:59 +0530816
Govind Singhd7468a52016-03-09 14:32:57 +0530817QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(void *wmi_hdl,
Vivek73465282018-03-22 23:27:21 +0530818 uint32_t vdev_id, uint8_t *p2p_ie);
Govind Singhae855362016-03-07 14:24:22 +0530819
820
Govind Singhd7468a52016-03-09 14:32:57 +0530821QDF_STATUS wmi_unified_set_gateway_params_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530822 struct gateway_update_req_param *req);
823
Govind Singhd7468a52016-03-09 14:32:57 +0530824QDF_STATUS wmi_unified_set_rssi_monitoring_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530825 struct rssi_monitor_param *req);
826
Govind Singhd7468a52016-03-09 14:32:57 +0530827QDF_STATUS wmi_unified_scan_probe_setoui_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530828 struct scan_mac_oui *psetoui);
829
Kiran Venkatappa9da7e042016-08-09 22:52:35 +0530830#ifdef CONFIG_MCL
Himanshu Agarwal5f2d0482016-03-09 15:25:44 +0530831QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(void *wmi_hdl,
832 wmi_start_scan_cmd_fixed_param *scan_cmd_fp,
833 struct roam_offload_scan_params *roam_req);
Govind Singh89727882016-04-15 13:58:27 +0530834#endif
Himanshu Agarwal5f2d0482016-03-09 15:25:44 +0530835
Varun Reddy Yeturu4cae4292017-07-20 09:45:01 -0700836/**
837 * wmi_unified_roam_mawc_params_cmd() - configure roaming MAWC parameters
838 * @wmi_hdl: wmi handle
839 * @params: Parameters to be configured
840 *
841 * Pass the MAWC(Motion Aided wireless connectivity) related roaming
842 * parameters from the host to the target
843 *
844 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
845 */
846QDF_STATUS wmi_unified_roam_mawc_params_cmd(void *wmi_hdl,
847 struct wmi_mawc_roam_params *params);
848
Himanshu Agarwal5f2d0482016-03-09 15:25:44 +0530849QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(void *wmi_hdl,
850 struct roam_offload_scan_rssi_params *roam_req);
851
852QDF_STATUS wmi_unified_roam_scan_filter_cmd(void *wmi_hdl,
853 struct roam_scan_filter_params *roam_req);
854
Sravan Kumar Kairamdcb5f802018-02-15 23:28:34 +0530855#ifdef IPA_OFFLOAD
Govind Singhd7468a52016-03-09 14:32:57 +0530856QDF_STATUS wmi_unified_ipa_offload_control_cmd(void *wmi_hdl,
Sravan Kumar Kairamdcb5f802018-02-15 23:28:34 +0530857 struct ipa_uc_offload_control_params *ipa_offload);
858#endif
Govind Singhae855362016-03-07 14:24:22 +0530859
Govind Singhd7468a52016-03-09 14:32:57 +0530860QDF_STATUS wmi_unified_plm_stop_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530861 const struct plm_req_params *plm);
862
Govind Singhd7468a52016-03-09 14:32:57 +0530863QDF_STATUS wmi_unified_plm_start_cmd(void *wmi_hdl,
Govind Singhae855362016-03-07 14:24:22 +0530864 const struct plm_req_params *plm,
865 uint32_t *gchannel_list);
866
Govind Singhd7468a52016-03-09 14:32:57 +0530867QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id);
Govind Singhae855362016-03-07 14:24:22 +0530868
Govind Singh89727882016-04-15 13:58:27 +0530869#ifdef FEATURE_WLAN_SCAN_PNO
Govind Singhd7468a52016-03-09 14:32:57 +0530870QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl,
Abhishek Singhd4184662017-03-03 22:09:07 +0530871 struct pno_scan_req_params *pno);
Govind Singh89727882016-04-15 13:58:27 +0530872#endif
Govind Singhae855362016-03-07 14:24:22 +0530873
Varun Reddy Yeturu4fa519b2017-07-24 16:11:22 -0700874QDF_STATUS wmi_unified_nlo_mawc_cmd(void *wmi_hdl,
875 struct nlo_mawc_params *params);
876
Rachit Kankaned42762f2018-07-31 12:00:48 +0530877#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Govind Singhd7468a52016-03-09 14:32:57 +0530878QDF_STATUS wmi_unified_set_ric_req_cmd(void *wmi_hdl, void *msg,
Govind Singhae855362016-03-07 14:24:22 +0530879 uint8_t is_add_ts);
880
Rachit Kankaned42762f2018-07-31 12:00:48 +0530881QDF_STATUS wmi_unified_roam_synch_complete_cmd(void *wmi_hdl,
882 uint8_t vdev_id);
883#endif
884
Govind Singhd7468a52016-03-09 14:32:57 +0530885QDF_STATUS wmi_unified_process_ll_stats_clear_cmd
Govind Singhae855362016-03-07 14:24:22 +0530886 (void *wmi_hdl, const struct ll_stats_clear_params *clear_req,
887 uint8_t addr[IEEE80211_ADDR_LEN]);
888
Govind Singhd7468a52016-03-09 14:32:57 +0530889QDF_STATUS wmi_unified_process_ll_stats_set_cmd
Govind Singhae855362016-03-07 14:24:22 +0530890 (void *wmi_hdl, const struct ll_stats_set_params *set_req);
891
Govind Singhd7468a52016-03-09 14:32:57 +0530892QDF_STATUS wmi_unified_process_ll_stats_get_cmd
Govind Singhae855362016-03-07 14:24:22 +0530893 (void *wmi_hdl, const struct ll_stats_get_params *get_req,
894 uint8_t addr[IEEE80211_ADDR_LEN]);
895
Padma, Santhosh Kumard3261902017-03-21 19:09:35 +0530896/**
897 * wmi_unified_congestion_request_cmd() - send request to fw to get CCA
898 * @wmi_hdl: wma handle
899 * @vdev_id: vdev id
900 *
901 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
902 */
903QDF_STATUS wmi_unified_congestion_request_cmd(void *wmi_hdl,
904 uint8_t vdev_id);
905
Govind Singhd7468a52016-03-09 14:32:57 +0530906QDF_STATUS wmi_unified_snr_request_cmd(void *wmi_hdl);
Govind Singh229bc0d2016-03-07 15:33:31 +0530907
Govind Singhd7468a52016-03-09 14:32:57 +0530908QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id);
Govind Singh229bc0d2016-03-07 15:33:31 +0530909
Govind Singhd7468a52016-03-09 14:32:57 +0530910QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530911 struct link_status_params *link_status);
912
Kiran Venkatappa9da7e042016-08-09 22:52:35 +0530913#ifdef CONFIG_MCL
Govind Singhd7468a52016-03-09 14:32:57 +0530914QDF_STATUS wmi_unified_process_dhcp_ind(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530915 wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind);
916
Govind Singhd7468a52016-03-09 14:32:57 +0530917QDF_STATUS wmi_unified_get_link_speed_cmd(void *wmi_hdl,
Govind Singh89727882016-04-15 13:58:27 +0530918 wmi_mac_addr peer_macaddr);
Himanshu Agarwal0d578ff2018-01-10 14:21:53 +0530919#endif
Govind Singh229bc0d2016-03-07 15:33:31 +0530920
Himanshu Agarwal0d578ff2018-01-10 14:21:53 +0530921#ifdef WLAN_SUPPORT_GREEN_AP
Govind Singhd7468a52016-03-09 14:32:57 +0530922QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl,
Himanshu Agarwal0d578ff2018-01-10 14:21:53 +0530923 struct wlan_green_ap_egap_params *egap_params);
Govind Singh89727882016-04-15 13:58:27 +0530924#endif
Govind Singh229bc0d2016-03-07 15:33:31 +0530925
Govind Singhd7468a52016-03-09 14:32:57 +0530926QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530927 uint32_t cmd, uint32_t value1, uint32_t value2);
928
Naveen Rawat7f70d662017-10-26 18:50:19 -0700929QDF_STATUS wmi_unified_wow_timer_pattern_cmd(void *wmi_hdl, uint8_t vdev_id,
930 uint32_t cookie, uint32_t time);
931
Govind Singhd7468a52016-03-09 14:32:57 +0530932QDF_STATUS wmi_unified_nat_keepalive_en_cmd(void *wmi_hdl, uint8_t vdev_id);
Govind Singh229bc0d2016-03-07 15:33:31 +0530933
Paul Zhang6a857a92017-12-08 16:08:00 +0800934/**
935 * wmi_unified_set_latency_config_cmd()
936 * @wmi_handle: wmi handle
937 * @param: WLM parameters
938 *
939 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
940 */
941QDF_STATUS wmi_unified_wlm_latency_level_cmd(void *wmi_hdl,
942 struct wlm_latency_level_param *param);
943
Govind Singhd7468a52016-03-09 14:32:57 +0530944QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id);
Govind Singh229bc0d2016-03-07 15:33:31 +0530945
Naveen Rawat90bc8fd2017-05-13 15:56:57 -0700946#ifdef WLAN_FEATURE_CIF_CFR
947/**
948 * wmi_unified_oem_dma_ring_cfg() - configure OEM DMA rings
949 * @wmi_handle: wmi handle
950 * @data_len: len of dma cfg req
951 * @data: dma cfg req
952 *
953 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
954 */
955QDF_STATUS wmi_unified_oem_dma_ring_cfg(void *wmi_hdl,
956 wmi_oem_dma_ring_cfg_req_fixed_param *cfg);
957#endif
958
Sathish Kumar3d3cf4f2017-11-17 17:30:41 +0530959/**
960 * wmi_unified_dbr_ring_cfg: Configure direct buffer rx rings
961 * @wmi_hdl: WMI handle
962 * @cfg: pointer to direct buffer rx config request
963 *
964 * Return: QDF status of operation
965 */
966QDF_STATUS wmi_unified_dbr_ring_cfg(void *wmi_hdl,
967 struct direct_buf_rx_cfg_req *cfg);
968
Govind Singhd7468a52016-03-09 14:32:57 +0530969QDF_STATUS wmi_unified_start_oem_data_cmd(void *wmi_hdl,
Krishna Kumaar Natarajan7a59ca02016-07-21 15:02:44 -0700970 uint32_t data_len,
Govind Singh229bc0d2016-03-07 15:33:31 +0530971 uint8_t *data);
972
Govind Singhd7468a52016-03-09 14:32:57 +0530973QDF_STATUS wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530974 bool dfs_phyerr_filter_offload);
975
Kiran Venkatappa9da7e042016-08-09 22:52:35 +0530976#ifdef CONFIG_MCL
Govind Singhd7468a52016-03-09 14:32:57 +0530977QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530978 WMI_PKTLOG_EVENT pktlog_event,
Nirav Shah9d1f1ac2016-07-27 19:06:13 +0530979 uint32_t cmd_id,
980 uint8_t user_triggered);
Govind Singh89727882016-04-15 13:58:27 +0530981#endif
Govind Singh229bc0d2016-03-07 15:33:31 +0530982
Govind Singhd7468a52016-03-09 14:32:57 +0530983QDF_STATUS wmi_unified_wow_delete_pattern_cmd(void *wmi_hdl, uint8_t ptrn_id,
Govind Singh229bc0d2016-03-07 15:33:31 +0530984 uint8_t vdev_id);
985
Govind Singhd7468a52016-03-09 14:32:57 +0530986QDF_STATUS wmi_unified_host_wakeup_ind_to_fw_cmd(void *wmi_hdl);
987QDF_STATUS wmi_unified_del_ts_cmd(void *wmi_hdl, uint8_t vdev_id,
Govind Singh229bc0d2016-03-07 15:33:31 +0530988 uint8_t ac);
989
Govind Singhd7468a52016-03-09 14:32:57 +0530990QDF_STATUS wmi_unified_aggr_qos_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530991 struct aggr_add_ts_param *aggr_qos_rsp_msg);
992
Govind Singhd7468a52016-03-09 14:32:57 +0530993QDF_STATUS wmi_unified_add_ts_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530994 struct add_ts_param *msg);
995
Govind Singhd7468a52016-03-09 14:32:57 +0530996QDF_STATUS wmi_unified_process_add_periodic_tx_ptrn_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +0530997 struct periodic_tx_pattern *
998 pAddPeriodicTxPtrnParams,
999 uint8_t vdev_id);
1000
Govind Singhd7468a52016-03-09 14:32:57 +05301001QDF_STATUS wmi_unified_process_del_periodic_tx_ptrn_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301002 uint8_t vdev_id,
1003 uint8_t pattern_id);
1004
Govind Singhd7468a52016-03-09 14:32:57 +05301005QDF_STATUS wmi_unified_stats_ext_req_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301006 struct stats_ext_params *preq);
1007
Govind Singhd7468a52016-03-09 14:32:57 +05301008QDF_STATUS wmi_unified_enable_ext_wow_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301009 struct ext_wow_params *params);
1010
Govind Singhd7468a52016-03-09 14:32:57 +05301011QDF_STATUS wmi_unified_set_app_type2_params_in_fw_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301012 struct app_type2_params *appType2Params);
1013
Govind Singhd7468a52016-03-09 14:32:57 +05301014QDF_STATUS wmi_unified_set_auto_shutdown_timer_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301015 uint32_t timer_val);
1016
Govind Singhd7468a52016-03-09 14:32:57 +05301017QDF_STATUS wmi_unified_nan_req_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301018 struct nan_req_params *nan_req);
1019
Govind Singhd7468a52016-03-09 14:32:57 +05301020QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(void *wmi_hdl,
Jeff Johnson645f7a12017-10-04 19:19:20 -07001021 struct dhcp_offload_info_params *params);
Govind Singh229bc0d2016-03-07 15:33:31 +05301022
Govind Singhd7468a52016-03-09 14:32:57 +05301023QDF_STATUS wmi_unified_process_ch_avoid_update_cmd(void *wmi_hdl);
Govind Singh229bc0d2016-03-07 15:33:31 +05301024
Govind Singhd7468a52016-03-09 14:32:57 +05301025QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301026 uint32_t reg_dmn, uint16_t regdmn2G,
Rajeev Kumar Sirasanagandlaacf22bf2017-06-06 13:27:56 +05301027 uint16_t regdmn5G, uint8_t ctl2G,
1028 uint8_t ctl5G);
Govind Singh229bc0d2016-03-07 15:33:31 +05301029
Govind Singhd7468a52016-03-09 14:32:57 +05301030QDF_STATUS wmi_unified_set_tdls_offchan_mode_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301031 struct tdls_channel_switch_params *chan_switch_params);
1032
Govind Singhd7468a52016-03-09 14:32:57 +05301033QDF_STATUS wmi_unified_update_fw_tdls_state_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301034 void *tdls_param, uint8_t tdls_state);
1035
Govind Singhd7468a52016-03-09 14:32:57 +05301036QDF_STATUS wmi_unified_update_tdls_peer_state_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301037 struct tdls_peer_state_params *peerStateParams,
1038 uint32_t *ch_mhz);
1039
Govind Singhd7468a52016-03-09 14:32:57 +05301040QDF_STATUS wmi_unified_process_fw_mem_dump_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301041 struct fw_dump_req_param *mem_dump_req);
1042
Govind Singhd7468a52016-03-09 14:32:57 +05301043QDF_STATUS wmi_unified_process_set_ie_info_cmd(void *wmi_hdl,
Govind Singh229bc0d2016-03-07 15:33:31 +05301044 struct vdev_ie_info_param *ie_info);
1045
Govind Singhd7468a52016-03-09 14:32:57 +05301046QDF_STATUS wmi_unified_save_fw_version_cmd(void *wmi_hdl,
Govind Singh71ee2d72016-03-07 16:30:32 +05301047 void *evt_buf);
1048
Govind Singhd7468a52016-03-09 14:32:57 +05301049QDF_STATUS wmi_unified_set_base_macaddr_indicate_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301050 uint8_t *custom_addr);
1051
Govind Singhd7468a52016-03-09 14:32:57 +05301052QDF_STATUS wmi_unified_log_supported_evt_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301053 uint8_t *event,
1054 uint32_t len);
1055
Govind Singhd7468a52016-03-09 14:32:57 +05301056QDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301057 struct wmi_wifi_start_log *start_log);
1058
Govind Singhd7468a52016-03-09 14:32:57 +05301059QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(void *wmi_hdl);
Govind Singh2ae94372016-03-07 16:45:38 +05301060
Manishekar Chandrasekaranb8c59382016-04-21 19:16:32 +05301061QDF_STATUS wmi_unified_pdev_set_pcl_cmd(void *wmi_hdl,
1062 struct wmi_pcl_chan_weights *msg);
Govind Singh2ae94372016-03-07 16:45:38 +05301063
Govind Singhd7468a52016-03-09 14:32:57 +05301064QDF_STATUS wmi_unified_soc_set_hw_mode_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301065 uint32_t hw_mode_index);
1066
Manishekar Chandrasekaran81d7aaa2016-04-27 12:52:51 +05301067QDF_STATUS wmi_unified_pdev_set_dual_mac_config_cmd(void *wmi_hdl,
Srinivas Girigowdac461aef2018-02-15 14:30:05 -08001068 struct policy_mgr_dual_mac_config *msg);
Govind Singh2ae94372016-03-07 16:45:38 +05301069
Govind Singhd7468a52016-03-09 14:32:57 +05301070QDF_STATUS wmi_unified_set_led_flashing_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301071 struct flashing_req_params *flashing);
1072
Govind Singhd7468a52016-03-09 14:32:57 +05301073QDF_STATUS wmi_unified_app_type1_params_in_fw_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301074 struct app_type1_params *app_type1_params);
1075
Govind Singhd7468a52016-03-09 14:32:57 +05301076QDF_STATUS wmi_unified_set_ssid_hotlist_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301077 struct ssid_hotlist_request_params *request);
1078
Govind Singhd7468a52016-03-09 14:32:57 +05301079QDF_STATUS wmi_unified_unit_test_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301080 struct wmi_unit_test_cmd *wmi_utest);
1081
Govind Singhd7468a52016-03-09 14:32:57 +05301082QDF_STATUS wmi_unified_roam_invoke_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301083 struct wmi_roam_invoke_cmd *roaminvoke,
1084 uint32_t ch_hz);
1085
Govind Singhd7468a52016-03-09 14:32:57 +05301086QDF_STATUS wmi_unified_roam_scan_offload_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301087 uint32_t command, uint32_t vdev_id);
1088
Kiran Venkatappa9da7e042016-08-09 22:52:35 +05301089#ifdef CONFIG_MCL
Govind Singhd7468a52016-03-09 14:32:57 +05301090QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(void *wmi_hdl,
Himanshu Agarwalf9524e12017-09-28 11:51:35 +05301091 struct ap_profile_params *ap_profile);
Govind Singh89727882016-04-15 13:58:27 +05301092#endif
Govind Singh2ae94372016-03-07 16:45:38 +05301093
Govind Singhd7468a52016-03-09 14:32:57 +05301094QDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301095 uint32_t scan_period,
1096 uint32_t scan_age,
1097 uint32_t vdev_id);
1098
Govind Singhd7468a52016-03-09 14:32:57 +05301099QDF_STATUS wmi_unified_roam_scan_offload_chan_list_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301100 uint8_t chan_count,
Varun Reddy Yeturub47fa402016-07-07 17:42:49 -07001101 uint32_t *chan_list,
Govind Singh2ae94372016-03-07 16:45:38 +05301102 uint8_t list_type, uint32_t vdev_id);
1103
Govind Singhd7468a52016-03-09 14:32:57 +05301104QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl,
Govind Singh2ae94372016-03-07 16:45:38 +05301105 uint32_t vdev_id,
1106 int32_t rssi_change_thresh,
1107 uint32_t bcn_rssi_weight,
1108 uint32_t hirssi_delay_btw_scans);
1109
Kapil Guptaf6eb7312017-02-24 15:50:03 +05301110/**
1111 * wmi_unified_set_per_roam_config() - set PER roam config in FW
1112 * @wmi_hdl: wmi handle
1113 * @req_buf: per roam config request buffer
1114 *
1115 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1116 */
1117QDF_STATUS wmi_unified_set_per_roam_config(void *wmi_hdl,
1118 struct wmi_per_roam_config_req *req_buf);
1119
Nachiket Kukade74cce662018-05-25 14:52:55 +05301120#ifdef FEATURE_WLAN_APF
Dustin Brown4def3162017-01-13 15:24:07 -08001121/**
Nachiket Kukadee8ce8622018-05-22 12:17:15 +05301122 * wmi_unified_set_active_apf_mode_cmd() - config active APF mode in FW
Nachiket Kukade74cce662018-05-25 14:52:55 +05301123 * @wmi: the WMI handle
Dustin Brown4def3162017-01-13 15:24:07 -08001124 * @vdev_id: the Id of the vdev to apply the configuration to
Nachiket Kukadee8ce8622018-05-22 12:17:15 +05301125 * @ucast_mode: the active APF mode to configure for unicast packets
1126 * @mcast_bcast_mode: the active APF mode to configure for multicast/broadcast
Dustin Brown4def3162017-01-13 15:24:07 -08001127 * packets
1128 */
Nachiket Kukadee8ce8622018-05-22 12:17:15 +05301129QDF_STATUS
Nachiket Kukade74cce662018-05-25 14:52:55 +05301130wmi_unified_set_active_apf_mode_cmd(wmi_unified_t wmi, uint8_t vdev_id,
Nachiket Kukadee8ce8622018-05-22 12:17:15 +05301131 enum wmi_host_active_apf_mode ucast_mode,
1132 enum wmi_host_active_apf_mode
1133 mcast_bcast_mode);
Dustin Brown4def3162017-01-13 15:24:07 -08001134
Nachiket Kukade74cce662018-05-25 14:52:55 +05301135/**
1136 * wmi_unified_send_apf_enable_cmd() - send apf enable/disable cmd
1137 * @wmi: wmi handle
1138 * @vdev_id: VDEV id
1139 * @enable: true: enable, false: disable
1140 *
1141 * This function passes the apf enable command to fw
1142 *
1143 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1144 */
1145QDF_STATUS wmi_unified_send_apf_enable_cmd(wmi_unified_t wmi,
1146 uint32_t vdev_id, bool enable);
1147
1148/**
1149 * wmi_unified_send_apf_write_work_memory_cmd() - send cmd to write into the APF
1150 * work memory.
1151 * @wmi: wmi handle
1152 * @write_params: parameters and buffer pointer for the write
1153 *
1154 * This function passes the write apf work mem command to fw
1155 *
1156 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1157 */
1158QDF_STATUS wmi_unified_send_apf_write_work_memory_cmd(wmi_unified_t wmi,
1159 struct wmi_apf_write_memory_params *write_params);
1160
1161/**
1162 * wmi_unified_send_apf_read_work_memory_cmd() - send cmd to read part of APF
1163 * work memory
1164 * @wmi: wmi handle
1165 * @read_params: contains relative address and length to read from
1166 *
1167 * This function passes the read apf work mem command to fw
1168 *
1169 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1170 */
1171QDF_STATUS wmi_unified_send_apf_read_work_memory_cmd(wmi_unified_t wmi,
1172 struct wmi_apf_read_memory_params *read_params);
1173
1174/**
1175 * wmi_extract_apf_read_memory_resp_event() - exctract read mem resp event
1176 * @wmi: wmi handle
1177 * @evt_buf: Pointer to the event buffer
1178 * @resp: pointer to memory to extract event parameters into
1179 *
1180 * This function exctracts read mem response event into the given structure ptr
1181 *
1182 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1183 */
1184QDF_STATUS
1185wmi_extract_apf_read_memory_resp_event(wmi_unified_t wmi, void *evt_buf,
1186 struct wmi_apf_read_memory_resp_event_params
1187 *read_mem_evt);
1188#endif /* FEATURE_WLAN_APF */
1189
Govind Singh89727882016-04-15 13:58:27 +05301190QDF_STATUS wmi_unified_stats_request_send(void *wmi_hdl,
1191 uint8_t macaddr[IEEE80211_ADDR_LEN],
1192 struct stats_request_params *param);
1193
1194QDF_STATUS wmi_unified_pdev_get_tpc_config_cmd_send(void *wmi_hdl,
1195 uint32_t param);
1196
Sathish Kumar50232d72016-08-09 16:50:46 +05301197QDF_STATUS wmi_unified_set_bwf_cmd_send(void *wmi_hdl,
1198 struct set_bwf_params *param);
1199
Sathish Kumar7e2eaed2016-11-14 17:44:29 +05301200QDF_STATUS wmi_send_get_user_position_cmd(void *wmi_hdl, uint32_t value);
1201
1202QDF_STATUS wmi_send_get_peer_mumimo_tx_count_cmd(void *wmi_hdl, uint32_t value);
1203
1204QDF_STATUS wmi_send_reset_peer_mumimo_tx_count_cmd(void *wmi_hdl,
1205 uint32_t value);
1206
1207QDF_STATUS wmi_send_pdev_caldata_version_check_cmd(void *wmi_hdl,
1208 uint32_t value);
1209
1210QDF_STATUS wmi_unified_send_btcoex_wlan_priority_cmd(void *wmi_hdl,
Sathish Kumar7e566c52016-11-10 15:30:22 +05301211 struct btcoex_cfg_params *param);
1212
1213QDF_STATUS wmi_unified_send_btcoex_duty_cycle_cmd(void *wmi_hdl,
1214 struct btcoex_cfg_params *param);
Sathish Kumar7e2eaed2016-11-14 17:44:29 +05301215
Sathish Kumar612d0c22017-01-19 14:57:37 +05301216QDF_STATUS wmi_unified_send_coex_ver_cfg_cmd(void *wmi_hdl,
1217 coex_ver_cfg_t *param);
1218
Sathish Kumar125754e2017-04-24 11:36:00 +05301219QDF_STATUS wmi_unified_send_coex_config_cmd(void *wmi_hdl,
1220 struct coex_config_params *param);
1221
Govind Singh89727882016-04-15 13:58:27 +05301222QDF_STATUS wmi_unified_pdev_fips_cmd_send(void *wmi_hdl,
1223 struct fips_params *param);
1224
1225QDF_STATUS wmi_unified_wlan_profile_enable_cmd_send(void *wmi_hdl,
1226 struct wlan_profile_params *param);
1227
1228QDF_STATUS wmi_unified_wlan_profile_trigger_cmd_send(void *wmi_hdl,
1229 struct wlan_profile_params *param);
1230
1231QDF_STATUS wmi_unified_set_chan_cmd_send(void *wmi_hdl,
1232 struct channel_param *param);
1233
1234QDF_STATUS wmi_unified_set_ht_ie_cmd_send(void *wmi_hdl,
1235 struct ht_ie_params *param);
1236
1237QDF_STATUS wmi_unified_set_vht_ie_cmd_send(void *wmi_hdl,
1238 struct vht_ie_params *param);
1239
1240QDF_STATUS wmi_unified_wmm_update_cmd_send(void *wmi_hdl,
1241 struct wmm_update_params *param);
1242
1243QDF_STATUS wmi_unified_set_ant_switch_tbl_cmd_send(void *wmi_hdl,
1244 struct ant_switch_tbl_params *param);
1245
1246QDF_STATUS wmi_unified_set_ratepwr_table_cmd_send(void *wmi_hdl,
1247 struct ratepwr_table_params *param);
1248
1249QDF_STATUS wmi_unified_get_ratepwr_table_cmd_send(void *wmi_hdl);
1250
1251QDF_STATUS wmi_unified_set_ctl_table_cmd_send(void *wmi_hdl,
1252 struct ctl_table_params *param);
1253
1254QDF_STATUS wmi_unified_set_mimogain_table_cmd_send(void *wmi_hdl,
1255 struct mimogain_table_params *param);
1256
1257QDF_STATUS wmi_unified_set_ratepwr_chainmsk_cmd_send(void *wmi_hdl,
1258 struct ratepwr_chainmsk_params *param);
1259
1260QDF_STATUS wmi_unified_set_macaddr_cmd_send(void *wmi_hdl,
1261 struct macaddr_params *param);
1262
1263QDF_STATUS wmi_unified_pdev_scan_start_cmd_send(void *wmi_hdl);
1264
1265QDF_STATUS wmi_unified_pdev_scan_end_cmd_send(void *wmi_hdl);
1266
1267QDF_STATUS wmi_unified_set_acparams_cmd_send(void *wmi_hdl,
1268 struct acparams_params *param);
1269
1270QDF_STATUS wmi_unified_set_vap_dscp_tid_map_cmd_send(void *wmi_hdl,
1271 struct vap_dscp_tid_map_params *param);
1272
1273QDF_STATUS wmi_unified_proxy_ast_reserve_cmd_send(void *wmi_hdl,
1274 struct proxy_ast_reserve_params *param);
1275
1276QDF_STATUS wmi_unified_pdev_qvit_cmd_send(void *wmi_hdl,
1277 struct pdev_qvit_params *param);
1278
1279QDF_STATUS wmi_unified_mcast_group_update_cmd_send(void *wmi_hdl,
1280 struct mcast_group_update_params *param);
1281
1282QDF_STATUS wmi_unified_peer_add_wds_entry_cmd_send(void *wmi_hdl,
1283 struct peer_add_wds_entry_params *param);
1284
1285QDF_STATUS wmi_unified_peer_del_wds_entry_cmd_send(void *wmi_hdl,
1286 struct peer_del_wds_entry_params *param);
1287
Jeevan Kukkalli28e8a162017-06-16 18:07:28 +05301288/**
1289 * wmi_unified_set_bridge_mac_addr_cmd_send() - WMI set bridge mac addr cmd function
1290 * @param wmi_hdl : handle to WMI.
1291 * @param param : pointer to hold bridge mac addr param
1292 *
1293 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1294 */
1295QDF_STATUS wmi_unified_set_bridge_mac_addr_cmd_send(void *wmi_hdl,
1296 struct set_bridge_mac_addr_params *param);
1297
1298
Govind Singh89727882016-04-15 13:58:27 +05301299QDF_STATUS wmi_unified_peer_update_wds_entry_cmd_send(void *wmi_hdl,
1300 struct peer_update_wds_entry_params *param);
1301
1302QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl);
1303
1304QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl);
1305
1306QDF_STATUS wmi_unified_phyerr_disable_cmd_send(void *wmi_hdl);
1307
1308QDF_STATUS wmi_unified_smart_ant_enable_cmd_send(void *wmi_hdl,
1309 struct smart_ant_enable_params *param);
1310
1311QDF_STATUS wmi_unified_smart_ant_set_rx_ant_cmd_send(void *wmi_hdl,
1312 struct smart_ant_rx_ant_params *param);
1313
1314QDF_STATUS wmi_unified_smart_ant_set_tx_ant_cmd_send(void *wmi_hdl,
1315 uint8_t macaddr[IEEE80211_ADDR_LEN],
1316 struct smart_ant_tx_ant_params *param);
1317
1318QDF_STATUS wmi_unified_smart_ant_set_training_info_cmd_send(void *wmi_hdl,
1319 uint8_t macaddr[IEEE80211_ADDR_LEN],
1320 struct smart_ant_training_info_params *param);
1321
1322QDF_STATUS wmi_unified_smart_ant_node_config_cmd_send(void *wmi_hdl,
1323 uint8_t macaddr[IEEE80211_ADDR_LEN],
1324 struct smart_ant_node_config_params *param);
1325
1326QDF_STATUS wmi_unified_smart_ant_enable_tx_feedback_cmd_send(void *wmi_hdl,
1327 struct smart_ant_enable_tx_feedback_params *param);
1328
1329QDF_STATUS wmi_unified_vdev_spectral_configure_cmd_send(void *wmi_hdl,
1330 struct vdev_spectral_configure_params *param);
1331
1332QDF_STATUS wmi_unified_vdev_spectral_enable_cmd_send(void *wmi_hdl,
1333 struct vdev_spectral_enable_params *param);
1334
1335QDF_STATUS wmi_unified_bss_chan_info_request_cmd_send(void *wmi_hdl,
1336 struct bss_chan_info_request_params *param);
1337
1338QDF_STATUS wmi_unified_thermal_mitigation_param_cmd_send(void *wmi_hdl,
1339 struct thermal_mitigation_params *param);
1340
1341QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(void *wmi_hdl,
1342 uint8_t macaddr[IEEE80211_ADDR_LEN],
1343 struct set_neighbour_rx_params *param);
1344
1345QDF_STATUS wmi_unified_vdev_set_fwtest_param_cmd_send(void *wmi_hdl,
1346 struct set_fwtest_params *param);
1347
1348QDF_STATUS wmi_unified_vdev_config_ratemask_cmd_send(void *wmi_hdl,
1349 struct config_ratemask_params *param);
1350
Sathish Kumar6190e772017-11-08 14:49:58 +05301351/**
1352 * wmi_unified_vdev_set_custom_aggr_size_cmd_send() - WMI set custom aggr
1353 * size command
1354 * @param wmi_hdl : handle to WMI.
1355 * @param param : pointer to hold custom aggr size param
1356 *
1357 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1358 */
1359QDF_STATUS wmi_unified_vdev_set_custom_aggr_size_cmd_send(void *wmi_hdl,
1360 struct set_custom_aggr_size_params *param);
Govind Singh89727882016-04-15 13:58:27 +05301361
Venkateswara Swamy Bandaru81f40dc2017-12-22 17:16:19 +05301362/**
1363 * wmi_unified_vdev_set_qdepth_thresh_cmd_send() - WMI set qdepth threshold
1364 * @param wmi_hdl : handle to WMI.
1365 * @param param : pointer to hold set qdepth thresh param
1366 *
1367 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1368 */
1369QDF_STATUS wmi_unified_vdev_set_qdepth_thresh_cmd_send(void *wmi_hdl,
1370 struct set_qdepth_thresh_params *param);
1371
Govind Singh89727882016-04-15 13:58:27 +05301372QDF_STATUS wmi_unified_pdev_set_regdomain_cmd_send(void *wmi_hdl,
1373 struct pdev_set_regdomain_params *param);
1374
1375QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(void *wmi_hdl,
1376 struct set_quiet_mode_params *param);
1377
1378QDF_STATUS wmi_unified_set_beacon_filter_cmd_send(void *wmi_hdl,
1379 struct set_beacon_filter_params *param);
1380
1381QDF_STATUS wmi_unified_remove_beacon_filter_cmd_send(void *wmi_hdl,
1382 struct remove_beacon_filter_params *param);
1383
1384QDF_STATUS wmi_unified_addba_clearresponse_cmd_send(void *wmi_hdl,
1385 uint8_t macaddr[IEEE80211_ADDR_LEN],
1386 struct addba_clearresponse_params *param);
1387
1388QDF_STATUS wmi_unified_addba_send_cmd_send(void *wmi_hdl,
1389 uint8_t macaddr[IEEE80211_ADDR_LEN],
1390 struct addba_send_params *param);
1391
1392QDF_STATUS wmi_unified_delba_send_cmd_send(void *wmi_hdl,
1393 uint8_t macaddr[IEEE80211_ADDR_LEN],
1394 struct delba_send_params *param);
1395
1396QDF_STATUS wmi_unified_addba_setresponse_cmd_send(void *wmi_hdl,
1397 uint8_t macaddr[IEEE80211_ADDR_LEN],
1398 struct addba_setresponse_params *param);
1399
1400QDF_STATUS wmi_unified_singleamsdu_cmd_send(void *wmi_hdl,
1401 uint8_t macaddr[IEEE80211_ADDR_LEN],
1402 struct singleamsdu_params *param);
1403
1404QDF_STATUS wmi_unified_set_qboost_param_cmd_send(void *wmi_hdl,
1405 uint8_t macaddr[IEEE80211_ADDR_LEN],
1406 struct set_qboost_params *param);
1407
1408QDF_STATUS wmi_unified_mu_scan_cmd_send(void *wmi_hdl,
1409 struct mu_scan_params *param);
1410
1411QDF_STATUS wmi_unified_lteu_config_cmd_send(void *wmi_hdl,
1412 struct lteu_config_params *param);
1413
1414QDF_STATUS wmi_unified_set_psmode_cmd_send(void *wmi_hdl,
1415 struct set_ps_mode_params *param);
1416
1417QDF_STATUS wmi_unified_init_cmd_send(void *wmi_hdl,
Kiran Venkatappaaf1dae32016-12-23 19:58:54 +05301418 struct wmi_init_cmd_param *param);
Govind Singh89727882016-04-15 13:58:27 +05301419
1420bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id);
1421
Kiran Venkatappa34bea522017-09-01 17:02:34 +05301422/**
1423 * wmi_save_service_bitmap() - save service bitmap
1424 * @wmi_handle: wmi handle
1425 * @param evt_buf: pointer to event buffer
1426 *
1427 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
1428 */
Rajeev Kumar5d8497b2017-02-12 02:12:17 -08001429QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf,
1430 void *bitmap_buf);
Govind Singh89727882016-04-15 13:58:27 +05301431
Kiran Venkatappa34bea522017-09-01 17:02:34 +05301432/**
1433 * wmi_save_ext_service_bitmap() - save extended service bitmap
1434 * @wmi_handle: wmi handle
1435 * @param evt_buf: pointer to event buffer
1436 *
1437 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code
1438 */
1439QDF_STATUS wmi_save_ext_service_bitmap(void *wmi_hdl, void *evt_buf,
1440 void *bitmap_buf);
1441
Govind Singh89727882016-04-15 13:58:27 +05301442QDF_STATUS wmi_save_fw_version(void *wmi_hdl, void *evt_buf);
1443
1444QDF_STATUS wmi_get_target_cap_from_service_ready(void *wmi_hdl,
Rajeev Kumar0b6b2852017-02-03 00:39:49 -08001445 void *evt_buf,
1446 struct wlan_psoc_target_capability_info *ev);
Govind Singh89727882016-04-15 13:58:27 +05301447
1448QDF_STATUS wmi_extract_hal_reg_cap(void *wmi_hdl, void *evt_buf,
Rajeev Kumar0b6b2852017-02-03 00:39:49 -08001449 struct wlan_psoc_hal_reg_capability *hal_reg_cap);
Govind Singh89727882016-04-15 13:58:27 +05301450
1451host_mem_req *wmi_extract_host_mem_req_from_service_ready(void *wmi_hdl,
1452 void *evt_buf, uint8_t *num_entries);
1453
1454uint32_t wmi_ready_extract_init_status(void *wmi_hdl, void *ev);
1455
1456QDF_STATUS wmi_ready_extract_mac_addr(void *wmi_hdl,
1457 void *ev, uint8_t *macaddr);
1458
Manoj Ekbote66496392017-07-09 23:28:56 -07001459wmi_host_mac_addr *wmi_ready_extract_mac_addr_list(void *wmi_hdl, void *ev,
1460 uint8_t *num_mac_addr);
1461
Kiran Venkatappaa40870a2017-11-10 20:50:12 +05301462/**
1463 * wmi_extract_ready_params() - Extract data from ready event apart from
1464 * status, macaddr and version.
1465 * @wmi_handle: Pointer to WMI handle.
1466 * @evt_buf: Pointer to Ready event buffer.
1467 * @ev_param: Pointer to host defined struct to copy the data from event.
1468 *
1469 * Return: QDF_STATUS_SUCCESS on success.
1470 */
1471QDF_STATUS wmi_extract_ready_event_params(void *wmi_hdl,
1472 void *evt_buf, struct wmi_host_ready_ev_param *ev_param);
1473
Govind Singh89727882016-04-15 13:58:27 +05301474QDF_STATUS wmi_extract_fw_version(void *wmi_hdl,
1475 void *ev, struct wmi_host_fw_ver *fw_ver);
1476
1477QDF_STATUS wmi_extract_fw_abi_version(void *wmi_hdl,
1478 void *ev, struct wmi_host_fw_abi_ver *fw_ver);
1479
1480QDF_STATUS wmi_check_and_update_fw_version(void *wmi_hdl, void *ev);
1481
1482uint8_t *wmi_extract_dbglog_data_len(void *wmi_hdl,
Rajeev Kumar45fdf7f2017-01-25 12:46:21 -08001483 void *evt_b, uint32_t *len);
Govind Singh89727882016-04-15 13:58:27 +05301484
1485QDF_STATUS wmi_send_ext_resource_config(void *wmi_hdl,
1486 wmi_host_ext_resource_config *ext_cfg);
1487
nobeljd9c2dc82018-01-25 16:35:36 -08001488QDF_STATUS wmi_unified_nf_dbr_dbm_info_get_cmd_send(void *wmi_hdl,
1489 uint8_t mac_id);
Govind Singh89727882016-04-15 13:58:27 +05301490
1491QDF_STATUS wmi_unified_packet_power_info_get_cmd_send(void *wmi_hdl,
1492 struct packet_power_info_params *param);
1493
1494QDF_STATUS wmi_unified_gpio_config_cmd_send(void *wmi_hdl,
1495 struct gpio_config_params *param);
1496
1497QDF_STATUS wmi_unified_gpio_output_cmd_send(void *wmi_hdl,
1498 struct gpio_output_params *param);
1499
1500QDF_STATUS wmi_unified_rtt_meas_req_test_cmd_send(void *wmi_hdl,
1501 struct rtt_meas_req_test_params *param);
1502
1503QDF_STATUS wmi_unified_rtt_meas_req_cmd_send(void *wmi_hdl,
1504 struct rtt_meas_req_params *param);
1505
1506QDF_STATUS wmi_unified_rtt_keepalive_req_cmd_send(void *wmi_hdl,
1507 struct rtt_keepalive_req_params *param);
1508
1509QDF_STATUS wmi_unified_lci_set_cmd_send(void *wmi_hdl,
1510 struct lci_set_params *param);
1511
1512QDF_STATUS wmi_unified_lcr_set_cmd_send(void *wmi_hdl,
1513 struct lcr_set_params *param);
1514
1515QDF_STATUS wmi_unified_send_periodic_chan_stats_config_cmd(void *wmi_hdl,
1516 struct periodic_chan_stats_params *param);
1517
Jeffin Mammenff8ae5a2018-07-24 14:20:08 +05301518#ifdef WLAN_ATF_ENABLE
1519QDF_STATUS
1520wmi_unified_set_atf_cmd_send(void *wmi_hdl,
1521 struct set_atf_params *param);
1522
Govind Singh89727882016-04-15 13:58:27 +05301523QDF_STATUS
1524wmi_send_atf_peer_request_cmd(void *wmi_hdl,
Jeffin Mammenff8ae5a2018-07-24 14:20:08 +05301525 struct atf_peer_request_params *param);
Govind Singh89727882016-04-15 13:58:27 +05301526
1527QDF_STATUS
1528wmi_send_set_atf_grouping_cmd(void *wmi_hdl,
Jeffin Mammenff8ae5a2018-07-24 14:20:08 +05301529 struct atf_grouping_params *param);
1530
1531QDF_STATUS
1532wmi_send_set_atf_group_ac_cmd(void *wmi_hdl,
1533 struct atf_group_ac_params *param);
1534
1535QDF_STATUS
1536wmi_extract_atf_peer_stats_ev(void *wmi_hdl, void *evt_buf,
1537 wmi_host_atf_peer_stats_event *ev);
1538
1539QDF_STATUS
1540wmi_extract_atf_token_info_ev(void *wmi_hdl, void *evt_buf, uint8_t idx,
1541 wmi_host_atf_peer_stats_info *atf_token_info);
1542#endif
1543
Govind Singh89727882016-04-15 13:58:27 +05301544/* Extract APIs */
1545
1546QDF_STATUS wmi_extract_wds_addr_event(void *wmi_hdl,
1547 void *evt_buf, uint16_t len, wds_addr_event_t *wds_ev);
1548
1549QDF_STATUS wmi_extract_dcs_interference_type(void *wmi_hdl,
Kiran Venkatappa9b7a9592016-12-29 18:09:32 +05301550 void *evt_buf, struct wmi_host_dcs_interference_param *param);
Govind Singh89727882016-04-15 13:58:27 +05301551
1552QDF_STATUS wmi_extract_dcs_cw_int(void *wmi_hdl, void *evt_buf,
1553 wmi_host_ath_dcs_cw_int *cw_int);
1554
1555QDF_STATUS wmi_extract_dcs_im_tgt_stats(void *wmi_hdl, void *evt_buf,
1556 wmi_host_dcs_im_tgt_stats_t *wlan_stat);
1557
Govind Singh89727882016-04-15 13:58:27 +05301558QDF_STATUS wmi_extract_fips_event_data(void *wmi_hdl, void *evt_buf,
Kiran Venkatappa9f5fcc02016-12-29 22:07:14 +05301559 struct wmi_host_fips_event_param *param);
1560
Govind Singh89727882016-04-15 13:58:27 +05301561QDF_STATUS wmi_extract_vdev_start_resp(void *wmi_hdl, void *evt_buf,
1562 wmi_host_vdev_start_resp *vdev_rsp);
Sathish Kumar744fbf72017-05-17 18:05:15 +05301563
Om Prakash Tripathi105b04b2017-11-24 16:53:07 +05301564/**
1565 * wmi_extract_vdev_delete_resp - api to extract vdev delete
1566 * response event params
1567 * @wmi_handle: wma handle
1568 * @evt_buf: pointer to event buffer
1569 * @delele_rsp: pointer to hold delete response from firmware
1570 *
1571 * Return: QDF_STATUS_SUCCESS for successful event parse
1572 * else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
1573 */
1574QDF_STATUS wmi_extract_vdev_delete_resp(void *wmi_hdl, void *evt_buf,
1575 struct wmi_host_vdev_delete_resp *delele_rsp);
1576
Govind Singh89727882016-04-15 13:58:27 +05301577QDF_STATUS wmi_extract_tbttoffset_update_params(void *wmi_hdl, void *evt_buf,
Sathish Kumar744fbf72017-05-17 18:05:15 +05301578 uint8_t idx, struct tbttoffset_params *tbtt_param);
1579
1580QDF_STATUS wmi_extract_ext_tbttoffset_update_params(void *wmi_hdl,
1581 void *evt_buf, uint8_t idx,
1582 struct tbttoffset_params *tbtt_param);
1583
1584QDF_STATUS wmi_extract_tbttoffset_num_vdevs(void *wmi_hdl, void *evt_buf,
1585 uint32_t *num_vdevs);
1586
1587QDF_STATUS wmi_extract_ext_tbttoffset_num_vdevs(void *wmi_hdl, void *evt_buf,
1588 uint32_t *num_vdevs);
Govind Singh89727882016-04-15 13:58:27 +05301589
1590QDF_STATUS wmi_extract_mgmt_rx_params(void *wmi_hdl, void *evt_buf,
Himanshu Agarwal53d526b2017-01-05 14:23:18 +05301591 struct mgmt_rx_event_params *hdr, uint8_t **bufp);
Govind Singh89727882016-04-15 13:58:27 +05301592
1593QDF_STATUS wmi_extract_vdev_stopped_param(void *wmi_hdl, void *evt_buf,
1594 uint32_t *vdev_id);
1595
1596QDF_STATUS wmi_extract_vdev_roam_param(void *wmi_hdl, void *evt_buf,
1597 wmi_host_roam_event *ev);
1598
1599QDF_STATUS wmi_extract_vdev_scan_ev_param(void *wmi_hdl, void *evt_buf,
Om Prakash Tripathi91452bf2017-02-25 15:53:30 +05301600 struct scan_event *param);
Govind Singh89727882016-04-15 13:58:27 +05301601
Frank Liu0ba573b2017-03-15 17:51:43 +08001602#ifdef CONVERGED_TDLS_ENABLE
1603/**
1604 * wmi_extract_vdev_tdls_ev_param - extract vdev tdls param from event
1605 * @wmi_handle: wmi handle
1606 * @param evt_buf: pointer to event buffer
1607 * @param param: Pointer to hold vdev tdls param
1608 *
1609 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1610 */
1611QDF_STATUS wmi_extract_vdev_tdls_ev_param(void *wmi_hdl, void *evt_buf,
1612 struct tdls_event_info *param);
1613#endif
1614
Govind Singh89727882016-04-15 13:58:27 +05301615QDF_STATUS wmi_extract_mu_ev_param(void *wmi_hdl, void *evt_buf,
1616 wmi_host_mu_report_event *param);
1617
Sathish Kumar7e2eaed2016-11-14 17:44:29 +05301618QDF_STATUS wmi_extract_mu_db_entry(void *wmi_hdl, void *evt_buf,
1619 uint8_t idx, wmi_host_mu_db_entry *param);
1620
1621QDF_STATUS wmi_extract_mumimo_tx_count_ev_param(void *wmi_hdl, void *evt_buf,
1622 wmi_host_peer_txmu_cnt_event *param);
1623
1624QDF_STATUS wmi_extract_peer_gid_userpos_list_ev_param(void *wmi_hdl,
1625 void *evt_buf, wmi_host_peer_gid_userpos_list_event *param);
1626
Anirban Sirkhell08c01932017-08-25 16:01:50 +05301627QDF_STATUS
1628wmi_extract_esp_estimate_ev_param(void *wmi_hdl, void *evt_buf,
1629 struct esp_estimation_event *param);
1630
Sathish Kumar7e2eaed2016-11-14 17:44:29 +05301631QDF_STATUS wmi_extract_pdev_caldata_version_check_ev_param(void *wmi_hdl,
1632 void *evt_buf, wmi_host_pdev_check_cal_version_event *param);
1633
Govind Singh89727882016-04-15 13:58:27 +05301634QDF_STATUS wmi_extract_pdev_tpc_config_ev_param(void *wmi_hdl, void *evt_buf,
1635 wmi_host_pdev_tpc_config_event *param);
1636
1637QDF_STATUS wmi_extract_gpio_input_ev_param(void *wmi_hdl,
1638 void *evt_buf, uint32_t *gpio_num);
1639
1640QDF_STATUS wmi_extract_pdev_reserve_ast_ev_param(void *wmi_hdl,
Kiran Venkatappa3f061a92017-02-08 14:57:16 +05301641 void *evt_buf, struct wmi_host_proxy_ast_reserve_param *param);
Govind Singh89727882016-04-15 13:58:27 +05301642
1643QDF_STATUS wmi_extract_nfcal_power_ev_param(void *wmi_hdl, void *evt_buf,
1644 wmi_host_pdev_nfcal_power_all_channels_event *param);
1645
1646QDF_STATUS wmi_extract_pdev_tpc_ev_param(void *wmi_hdl, void *evt_buf,
1647 wmi_host_pdev_tpc_event *param);
1648
1649QDF_STATUS wmi_extract_pdev_generic_buffer_ev_param(void *wmi_hdl,
1650 void *evt_buf,
1651 wmi_host_pdev_generic_buffer_event *param);
1652
1653QDF_STATUS wmi_extract_mgmt_tx_compl_param(void *wmi_hdl, void *evt_buf,
1654 wmi_host_mgmt_tx_compl_event *param);
1655
Kiran Venkatappa25c47022017-03-19 22:58:09 +05301656QDF_STATUS wmi_extract_offchan_data_tx_compl_param(void *wmi_hdl, void *evt_buf,
1657 struct wmi_host_offchan_data_tx_compl_event *param);
1658
Sathish Kumar907a7462017-02-27 10:35:40 +05301659QDF_STATUS wmi_extract_pdev_csa_switch_count_status(void *wmi_hdl,
1660 void *evt_buf,
1661 struct pdev_csa_switch_count_status *param);
1662
Sathish Kumar744fbf72017-05-17 18:05:15 +05301663QDF_STATUS wmi_extract_swba_num_vdevs(void *wmi_hdl, void *evt_buf,
1664 uint32_t *num_vdevs);
Govind Singh89727882016-04-15 13:58:27 +05301665
1666QDF_STATUS wmi_extract_swba_tim_info(void *wmi_hdl, void *evt_buf,
1667 uint32_t idx, wmi_host_tim_info *tim_info);
1668
1669QDF_STATUS wmi_extract_swba_noa_info(void *wmi_hdl, void *evt_buf,
1670 uint32_t idx, wmi_host_p2p_noa_info *p2p_desc);
1671
Wu Gao07ba6b42017-03-13 20:17:34 +08001672#ifdef CONVERGED_P2P_ENABLE
1673QDF_STATUS wmi_extract_p2p_lo_stop_ev_param(void *wmi_hdl,
1674 void *evt_buf, struct p2p_lo_event *param);
1675
1676QDF_STATUS wmi_extract_p2p_noa_ev_param(void *wmi_hdl,
1677 void *evt_buf, struct p2p_noa_info *param);
1678#endif
1679
Govind Singh89727882016-04-15 13:58:27 +05301680QDF_STATUS wmi_extract_peer_sta_ps_statechange_ev(void *wmi_hdl,
1681 void *evt_buf, wmi_host_peer_sta_ps_statechange_event *ev);
1682
1683QDF_STATUS wmi_extract_peer_sta_kickout_ev(void *wmi_hdl, void *evt_buf,
1684 wmi_host_peer_sta_kickout_event *ev);
1685
1686QDF_STATUS wmi_extract_peer_ratecode_list_ev(void *wmi_hdl, void *evt_buf,
1687 uint8_t *peer_mac, wmi_sa_rate_cap *rate_cap);
1688
Jeff Johnson6b8bda42016-10-07 13:03:02 -07001689QDF_STATUS wmi_extract_bcnflt_stats(void *wmi_hdl, void *evt_buf,
1690 uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats);
1691
Govind Singh89727882016-04-15 13:58:27 +05301692QDF_STATUS wmi_extract_rtt_hdr(void *wmi_hdl, void *evt_buf,
1693 wmi_host_rtt_event_hdr *ev);
1694
1695QDF_STATUS wmi_extract_rtt_ev(void *wmi_hdl, void *evt_buf,
1696 wmi_host_rtt_meas_event *ev, uint8_t *hdump,
1697 uint16_t hdump_len);
1698
1699QDF_STATUS wmi_extract_rtt_error_report_ev(void *wmi_hdl, void *evt_buf,
1700 wmi_host_rtt_error_report_event *ev);
1701
Jeff Johnson6b8bda42016-10-07 13:03:02 -07001702QDF_STATUS wmi_extract_chan_stats(void *wmi_hdl, void *evt_buf,
1703 uint32_t index, wmi_host_chan_stats *chan_stats);
1704
Govind Singh89727882016-04-15 13:58:27 +05301705QDF_STATUS wmi_extract_thermal_stats(void *wmi_hdl, void *evt_buf,
Om Prakash Tripathi2f54fbb2017-04-19 16:57:31 +05301706 uint32_t *temp, uint32_t *level, uint32_t *pdev_id);
Govind Singh89727882016-04-15 13:58:27 +05301707
1708QDF_STATUS wmi_extract_thermal_level_stats(void *wmi_hdl, void *evt_buf,
1709 uint8_t idx, uint32_t *levelcount, uint32_t *dccount);
1710
1711QDF_STATUS wmi_extract_comb_phyerr(void *wmi_hdl, void *evt_buf,
1712 uint16_t datalen, uint16_t *buf_offset,
1713 wmi_host_phyerr_t *phyerr);
1714
1715QDF_STATUS wmi_extract_single_phyerr(void *wmi_hdl, void *evt_buf,
1716 uint16_t datalen, uint16_t *buf_offset,
1717 wmi_host_phyerr_t *phyerr);
1718
1719QDF_STATUS wmi_extract_composite_phyerr(void *wmi_hdl, void *evt_buf,
1720 uint16_t datalen, wmi_host_phyerr_t *phyerr);
1721
1722QDF_STATUS wmi_extract_profile_ctx(void *wmi_hdl, void *evt_buf,
1723 wmi_host_wlan_profile_ctx_t *profile_ctx);
1724
Govind Singh41da3152016-05-06 20:20:25 +05301725QDF_STATUS wmi_extract_profile_data(void *wmi_hdl, void *evt_buf, uint8_t idx,
Govind Singh89727882016-04-15 13:58:27 +05301726 wmi_host_wlan_profile_t *profile_data);
1727
1728QDF_STATUS wmi_extract_chan_info_event(void *wmi_hdl, void *evt_buf,
1729 wmi_host_chan_info_event *chan_info);
1730
1731QDF_STATUS wmi_extract_channel_hopping_event(void *wmi_hdl, void *evt_buf,
1732 wmi_host_pdev_channel_hopping_event *ch_hopping);
1733
1734QDF_STATUS wmi_extract_stats_param(void *wmi_hdl, void *evt_buf,
1735 wmi_host_stats_event *stats_param);
1736
1737QDF_STATUS wmi_extract_pdev_stats(void *wmi_hdl, void *evt_buf,
1738 uint32_t index,
1739 wmi_host_pdev_stats *pdev_stats);
1740
Adil Saeed Musthafa0b6c7602017-08-23 17:32:11 -07001741QDF_STATUS wmi_extract_unit_test(void *wmi_hdl, void *evt_buf,
1742 wmi_unit_test_event *unit_test, uint32_t maxspace);
1743
Govind Singh89727882016-04-15 13:58:27 +05301744QDF_STATUS wmi_extract_pdev_ext_stats(void *wmi_hdl, void *evt_buf,
1745 uint32_t index,
1746 wmi_host_pdev_ext_stats *pdev_ext_stats);
1747
1748QDF_STATUS wmi_extract_peer_extd_stats(void *wmi_hdl, void *evt_buf,
1749 uint32_t index,
1750 wmi_host_peer_extd_stats *peer_extd_stats);
1751
1752QDF_STATUS wmi_extract_bss_chan_info_event(void *wmi_hdl, void *evt_buf,
1753 wmi_host_pdev_bss_chan_info_event *bss_chan_info);
1754
1755QDF_STATUS wmi_extract_inst_rssi_stats_event(void *wmi_hdl, void *evt_buf,
1756 wmi_host_inst_stats_resp *inst_rssi_resp);
1757
1758QDF_STATUS wmi_extract_peer_stats(void *wmi_hdl, void *evt_buf,
1759 uint32_t index, wmi_host_peer_stats *peer_stats);
1760
1761QDF_STATUS wmi_extract_tx_data_traffic_ctrl_ev(void *wmi_hdl, void *evt_buf,
1762 wmi_host_tx_data_traffic_ctrl_event *ev);
1763
1764QDF_STATUS wmi_extract_vdev_stats(void *wmi_hdl, void *evt_buf,
1765 uint32_t index, wmi_host_vdev_stats *vdev_stats);
1766
Naveen Rawat9734fa92018-04-12 08:17:55 -07001767QDF_STATUS wmi_extract_per_chain_rssi_stats(void *wmi_hdl, void *evt_buf,
1768 uint32_t index, struct wmi_host_per_chain_rssi_stats *rssi_stats);
1769
Govind Singh89727882016-04-15 13:58:27 +05301770QDF_STATUS wmi_extract_vdev_extd_stats(void *wmi_hdl, void *evt_buf,
1771 uint32_t index, wmi_host_vdev_extd_stats *vdev_extd_stats);
Govind Singhc10bde82016-05-02 17:59:24 +05301772
Gurumoorthi Gnanasambandhan18977552017-11-06 22:04:17 +05301773QDF_STATUS wmi_extract_bcn_stats(void *wmi_hdl, void *evt_buf,
1774 uint32_t index, wmi_host_bcn_stats *vdev_bcn_stats);
1775
Chaithanya Garrepalli140a0532018-01-18 14:19:41 +05301776/**
1777 * wmi_extract_vdev_nac_rssi_stats() - extract NAC_RSSI stats from event
1778 * @wmi_handle: wmi handle
1779 * @param evt_buf: pointer to event buffer
1780 * @param vdev_extd_stats: Pointer to hold nac rssi stats
1781 *
1782 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1783 */
1784QDF_STATUS wmi_extract_vdev_nac_rssi_stats(void *wmi_hdl, void *evt_buf,
1785 struct wmi_host_vdev_nac_rssi_event *vdev_nac_rssi_stats);
1786
Govind Singhc10bde82016-05-02 17:59:24 +05301787QDF_STATUS wmi_unified_send_power_dbg_cmd(void *wmi_hdl,
1788 struct wmi_power_dbg_params *param);
Sathish Kumar907a7462017-02-27 10:35:40 +05301789
1790QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd(void *wmi_hdl,
1791 struct multiple_vdev_restart_params *param);
1792
Jeff Johnsonefb43392017-12-14 15:50:16 -08001793/**
1794 * wmi_unified_send_sar_limit_cmd() - send sar limit cmd to fw
1795 * @wmi_hdl: wmi handle
1796 * @params: sar limit command params
1797 *
1798 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1799 */
Manikandan Mohan7e5ad482016-12-13 13:14:06 -08001800QDF_STATUS wmi_unified_send_sar_limit_cmd(void *wmi_hdl,
Jeff Johnsonefb43392017-12-14 15:50:16 -08001801 struct sar_limit_cmd_params *params);
1802
1803/**
1804 * wmi_unified_get_sar_limit_cmd() - request current SAR limits from FW
1805 * @wmi_hdl: wmi handle
1806 *
1807 * Return: QDF_STATUS_SUCCESS for success or error code
1808 */
1809QDF_STATUS wmi_unified_get_sar_limit_cmd(void *wmi_hdl);
1810
1811/**
1812 * wmi_unified_extract_sar_limit_event() - extract SAR limits from FW event
1813 * @wmi_hdl: wmi handle
1814 * @evt_buf: event buffer received from firmware
1815 * @event: SAR limit event which is to be populated by data extracted from
1816 * the @evt_buf buffer
1817 *
1818 * Return: QDF_STATUS_SUCCESS for success or error code
1819 */
1820QDF_STATUS wmi_unified_extract_sar_limit_event(void *wmi_hdl,
1821 uint8_t *evt_buf,
1822 struct sar_limit_event *event);
1823
Kabilan Kannana348b622018-06-21 16:55:47 -07001824/**
1825 * wmi_unified_extract_sar2_result_event() - extract SAR limits from FW event
1826 * @handle: wmi handle
1827 * @event: event buffer received from firmware
1828 * @len: length of the event buffer
1829 *
1830 * Return: QDF_STATUS_SUCCESS for success or error code
1831 */
1832QDF_STATUS wmi_unified_extract_sar2_result_event(void *handle,
1833 uint8_t *event, uint32_t len);
1834
1835/**
1836 * wmi_extract_sar_cap_service_ready_ext() - extract SAR cap from
1837 * FW service ready event
1838 * @wmi_hdl: wmi handle
1839 * @evt_buf: event buffer received from firmware
1840 * @ext_param: extended target info
1841 *
1842 * Return: QDF_STATUS_SUCCESS for success or error code
1843 */
1844QDF_STATUS wmi_extract_sar_cap_service_ready_ext(
1845 void *wmi_hdl,
1846 uint8_t *evt_buf,
1847 struct wlan_psoc_host_service_ext_param *ext_param);
1848
Gupta, Kapil7b768002016-04-25 19:14:19 +05301849QDF_STATUS wmi_unified_send_adapt_dwelltime_params_cmd(void *wmi_hdl,
1850 struct wmi_adaptive_dwelltime_params *
1851 wmi_param);
Anurag Chouhan4d41be72016-07-22 20:19:54 +05301852QDF_STATUS wmi_unified_fw_test_cmd(void *wmi_hdl,
1853 struct set_fwtest_params *wmi_fwtest);
1854
Leo Chang8184e9c2016-09-28 13:43:36 -07001855QDF_STATUS wmi_unified_peer_rx_reorder_queue_setup_send(void *wmi_hdl,
1856 struct rx_reorder_queue_setup_params *param);
1857QDF_STATUS wmi_unified_peer_rx_reorder_queue_remove_send(void *wmi_hdl,
1858 struct rx_reorder_queue_remove_params *param);
Kiran Venkatappa9c71b362016-08-10 23:55:40 +05301859
1860QDF_STATUS wmi_extract_service_ready_ext(void *wmi_hdl, uint8_t *evt_buf,
Rajeev Kumar0b6b2852017-02-03 00:39:49 -08001861 struct wlan_psoc_host_service_ext_param *param);
Kiran Venkatappa9c71b362016-08-10 23:55:40 +05301862QDF_STATUS wmi_extract_hw_mode_cap_service_ready_ext(
1863 void *wmi_hdl,
1864 uint8_t *evt_buf, uint8_t hw_mode_idx,
Rajeev Kumar0b6b2852017-02-03 00:39:49 -08001865 struct wlan_psoc_host_hw_mode_caps *param);
Kiran Venkatappa9c71b362016-08-10 23:55:40 +05301866QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext(
1867 void *wmi_hdl,
Kiran Venkatappa176fe6c2016-12-26 15:38:06 +05301868 uint8_t *evt_buf,
1869 uint8_t hw_mode_id,
1870 uint8_t phy_id,
Rajeev Kumar0b6b2852017-02-03 00:39:49 -08001871 struct wlan_psoc_host_mac_phy_caps *param);
Kiran Venkatappa9c71b362016-08-10 23:55:40 +05301872QDF_STATUS wmi_extract_reg_cap_service_ready_ext(
1873 void *wmi_hdl,
1874 uint8_t *evt_buf, uint8_t phy_idx,
Rajeev Kumar0b6b2852017-02-03 00:39:49 -08001875 struct wlan_psoc_host_hal_reg_capabilities_ext *param);
Sathish Kumar3d3cf4f2017-11-17 17:30:41 +05301876
1877/**
1878 * wmi_extract_dbr_ring_cap_service_ready_ext: Extract direct buffer rx
1879 * capability received through
1880 * extended service ready event
1881 * @wmi_hdl: WMI handle
1882 * @evt_buf: Event buffer
1883 * @idx: Index of the module for which capability is received
1884 * @param: Pointer to direct buffer rx ring cap struct
1885 *
1886 * Return: QDF status of operation
1887 */
1888QDF_STATUS wmi_extract_dbr_ring_cap_service_ready_ext(
1889 void *wmi_hdl,
1890 uint8_t *evt_buf, uint8_t idx,
1891 struct wlan_psoc_host_dbr_ring_caps *param);
1892
1893/**
1894 * wmi_extract_dbr_buf_release_fixed : Extract direct buffer rx fixed param
1895 * from buffer release event
1896 * @wmi_hdl: WMI handle
1897 * @evt_buf: Event buffer
1898 * @param: Pointer to direct buffer rx response struct
1899 *
1900 * Return: QDF status of operation
1901 */
1902QDF_STATUS wmi_extract_dbr_buf_release_fixed(
1903 void *wmi_hdl,
1904 uint8_t *evt_buf,
1905 struct direct_buf_rx_rsp *param);
1906
1907/**
1908 * wmi_extract_dbr_buf_release_entry: Extract direct buffer rx buffer tlv
1909 *
1910 * @wmi_hdl: WMI handle
1911 * @evt_buf: Event buffer
1912 * @idx: Index of the module for which capability is received
1913 * @param: Pointer to direct buffer rx entry
1914 *
1915 * Return: QDF status of operation
1916 */
1917QDF_STATUS wmi_extract_dbr_buf_release_entry(
1918 void *wmi_hdl,
1919 uint8_t *evt_buf, uint8_t idx,
1920 struct direct_buf_rx_entry *param);
Edayilliam Jayadev42ce0e42018-04-06 16:37:17 +05301921
1922/**
1923 * wmi_extract_dbr_buf_metadata: Extract direct buffer metadata
1924 *
1925 * @wmi_hdl: WMI handle
1926 * @evt_buf: Event buffer
1927 * @idx: Index of the module for which capability is received
1928 * @param: Pointer to direct buffer metadata
1929 *
1930 * Return: QDF status of operation
1931 */
1932QDF_STATUS wmi_extract_dbr_buf_metadata(
1933 void *wmi_hdl,
1934 uint8_t *evt_buf, uint8_t idx,
1935 struct direct_buf_rx_metadata *param);
1936
Sathish Kumar617535c2017-01-24 17:51:26 +05301937QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl,
1938 uint8_t *evt_buf,
1939 struct wmi_host_pdev_utf_event *param);
Vijay Pamidipatiadd0ba72017-01-17 12:53:05 +05301940
Kiran Venkatappa3d514982017-02-28 14:19:17 +05301941QDF_STATUS wmi_extract_pdev_qvit_event(void *wmi_hdl,
1942 uint8_t *evt_buf,
1943 struct wmi_host_pdev_qvit_event *param);
1944
Vijay Pamidipatiadd0ba72017-01-17 12:53:05 +05301945QDF_STATUS wmi_extract_peer_delete_response_event(void *wmi_hdl,
1946 uint8_t *evt_buf,
1947 struct wmi_host_peer_delete_response_event *param);
Arif Hussain85604fb2017-01-07 18:21:55 -08001948
Vikram Kandukuric83feb62017-03-07 18:40:13 +05301949QDF_STATUS wmi_extract_chainmask_tables(void *wmi_hdl, uint8_t *evt_buf,
1950 struct wlan_psoc_host_chainmask_table *chainmask_table);
Arif Hussain85604fb2017-01-07 18:21:55 -08001951/**
1952 * wmi_unified_dfs_phyerr_offload_en_cmd() - enable dfs phyerr offload
1953 * @wmi_handle: wmi handle
1954 * @pdev_id: pdev id
1955 *
1956 * Return: QDF_STATUS
1957 */
1958QDF_STATUS wmi_unified_dfs_phyerr_offload_en_cmd(void *wmi_hdl,
1959 uint32_t pdev_id);
1960
1961/**
1962 * wmi_unified_dfs_phyerr_offload_dis_cmd() - disable dfs phyerr offload
1963 * @wmi_handle: wmi handle
1964 * @pdev_id: pdev id
1965 *
1966 * Return: QDF_STATUS
1967 */
1968QDF_STATUS wmi_unified_dfs_phyerr_offload_dis_cmd(void *wmi_hdl,
1969 uint32_t pdev_id);
Dustin Browne58fbc72017-04-03 17:00:07 -07001970
Kiran Kumar Lokeree70e6052017-04-24 00:56:03 -07001971QDF_STATUS wmi_unified_set_country_cmd_send(void *wmi_hdl,
1972 struct set_country *param);
Rajeev Kumar Sirasanagandla9d7a69f2017-09-18 16:47:52 +05301973
1974#ifdef WLAN_FEATURE_ACTION_OUI
1975/**
1976 * wmi_unified_send_action_oui_cmd() - send action oui cmd to fw
1977 * @wmi_hdl: wma handle
1978 * @req: wmi action oui message to be send
1979 *
1980 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1981 */
1982QDF_STATUS
1983wmi_unified_send_action_oui_cmd(void *wmi_hdl,
1984 struct action_oui_request *req);
1985#endif /* WLAN_FEATURE_ACTION_OUI */
1986
Vignesh Viswanathan90cd7742017-09-25 14:36:38 +05301987/*
1988 * wmi_unified_set_del_pmkid_cache() - set delete PMKID
1989 * @wmi_hdl: wma handle
1990 * @pmksa: pointer to pmk cache entry
1991 *
1992 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
1993 */
1994QDF_STATUS wmi_unified_set_del_pmkid_cache(void *wmi_hdl,
1995 struct wmi_unified_pmk_cache *pmksa);
1996
1997#if defined(WLAN_FEATURE_FILS_SK)
1998/*
1999 * wmi_unified_roam_send_hlp_cmd() -send HLP command info
2000 * @wmi_hdl: wma handle
2001 * @req_buf: Pointer to HLP params
2002 *
2003 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2004 */
2005QDF_STATUS wmi_unified_roam_send_hlp_cmd(void *wmi_hdl,
2006 struct hlp_params *req_buf);
2007#endif
Kiran Kumar Lokeree70e6052017-04-24 00:56:03 -07002008
Rajeev Kumar Sirasanagandlacddf6fe2016-11-22 21:28:54 +05302009/**
2010 * wmi_unified_send_request_get_rcpi_cmd() - command to request rcpi value
2011 * @wmi_hdl: wma handle
2012 * @get_rcpi_param: rcpi params
2013 *
2014 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2015 */
2016QDF_STATUS wmi_unified_send_request_get_rcpi_cmd(void *wmi_hdl,
2017 struct rcpi_req *get_rcpi_param);
2018
2019/**
2020 * wmi_extract_rcpi_response_event - api to extract RCPI event params
2021 * @wmi_handle: wma handle
2022 * @evt_buf: pointer to event buffer
2023 * @res: pointer to hold rcpi response from firmware
2024 *
2025 * Return: QDF_STATUS_SUCCESS for successful event parse
2026 * else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
2027 */
2028QDF_STATUS wmi_extract_rcpi_response_event(void *wmi_hdl, void *evt_buf,
2029 struct rcpi_res *res);
2030
Dustin Browne58fbc72017-04-03 17:00:07 -07002031#ifdef WMI_INTERFACE_EVENT_LOGGING
2032void wmi_print_cmd_log(wmi_unified_t wmi, uint32_t count,
2033 qdf_abstract_print *print, void *print_priv);
2034
2035void wmi_print_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count,
2036 qdf_abstract_print *print, void *print_priv);
2037
2038void wmi_print_mgmt_cmd_log(wmi_unified_t wmi, uint32_t count,
2039 qdf_abstract_print *print, void *print_priv);
2040
2041void wmi_print_mgmt_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count,
2042 qdf_abstract_print *print, void *print_priv);
2043
2044void wmi_print_event_log(wmi_unified_t wmi, uint32_t count,
2045 qdf_abstract_print *print, void *print_priv);
2046
2047void wmi_print_rx_event_log(wmi_unified_t wmi, uint32_t count,
2048 qdf_abstract_print *print, void *print_priv);
2049
2050void wmi_print_mgmt_event_log(wmi_unified_t wmi, uint32_t count,
2051 qdf_abstract_print *print, void *print_priv);
Kiran Kumar Lokeree70e6052017-04-24 00:56:03 -07002052
Dustin Browne58fbc72017-04-03 17:00:07 -07002053#endif /* WMI_INTERFACE_EVENT_LOGGING */
2054
Nitesh Shahfb9e88b2017-05-22 15:49:00 +05302055QDF_STATUS wmi_unified_send_dbs_scan_sel_params_cmd(void *wmi_hdl,
2056 struct wmi_dbs_scan_sel_params *wmi_param);
Ganesh Kondabattini20b086b2017-07-10 11:54:11 +05302057
2058QDF_STATUS wmi_unified_send_limit_off_chan_cmd(void *wmi_hdl,
2059 struct wmi_limit_off_chan_param *wmi_param);
Anurag Chouhanc1705422017-09-11 14:56:30 +05302060QDF_STATUS wmi_unified_set_arp_stats_req(void *wmi_hdl,
2061 struct set_arp_stats *req_buf);
2062QDF_STATUS wmi_unified_get_arp_stats_req(void *wmi_hdl,
2063 struct get_arp_stats *req_buf);
Kiran Venkatappaf9b1de32017-11-08 19:32:23 +05302064
2065/**
2066 * wmi_send_bcn_offload_control_cmd - send beacon ofload control cmd to fw
2067 * @wmi_hdl: wmi handle
2068 * @bcn_ctrl_param: pointer to bcn_offload_control param
2069 *
2070 * Return: QDF_STATUS_SUCCESS for success or error code
2071 */
2072QDF_STATUS wmi_send_bcn_offload_control_cmd(void *wmi_hdl,
2073 struct bcn_offload_control *bcn_ctrl_param);
Rathees kumar Chinannanaff64b02017-11-22 17:03:57 +05302074/**
2075 * wmi_unified_send_wds_entry_list_cmd() - WMI function to get list of
2076 * wds entries from FW
Arif Hussain2cfde1d2017-12-27 16:23:45 -08002077 * @wmi_hdl: wmi handle
Rathees kumar Chinannanaff64b02017-11-22 17:03:57 +05302078 *
2079 * Send WMI_PDEV_WDS_ENTRY_LIST_CMDID parameters to fw.
2080 *
2081 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
2082 */
2083
2084QDF_STATUS wmi_unified_send_dump_wds_table_cmd(void *wmi_hdl);
2085
2086/**
2087 * wmi_extract_wds_entry - api to extract wds entry
Arif Hussain2cfde1d2017-12-27 16:23:45 -08002088 * @wmi_hdl: wmi handle
Rathees kumar Chinannanaff64b02017-11-22 17:03:57 +05302089 * @evt_buf: pointer to event buffer
2090 * @wds_entry: wds entry
2091 * @idx: index to point wds entry in event buffer
2092 *
2093 * Return: QDF_STATUS_SUCCESS for successful event parse
2094 * else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE
2095 */
2096
2097QDF_STATUS wmi_extract_wds_entry(void *wmi_hdl, uint8_t *evt_buf,
2098 struct wdsentry *wds_entry, u_int32_t idx);
Naveen Rawat79a787c2017-12-14 13:24:31 -08002099
2100#ifdef WLAN_FEATURE_NAN_CONVERGENCE
2101/**
2102 * wmi_unified_ndp_initiator_req_cmd_send - api to send initiator request to FW
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002103 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002104 * @req: pointer to request buffer
2105 *
2106 * Return: status of operation
2107 */
2108QDF_STATUS wmi_unified_ndp_initiator_req_cmd_send(void *wmi_hdl,
2109 struct nan_datapath_initiator_req *req);
2110
2111/**
2112 * wmi_unified_ndp_responder_req_cmd_send - api to send responder request to FW
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002113 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002114 * @req: pointer to request buffer
2115 *
2116 * Return: status of operation
2117 */
2118QDF_STATUS wmi_unified_ndp_responder_req_cmd_send(void *wmi_hdl,
2119 struct nan_datapath_responder_req *req);
2120
2121/**
2122 * wmi_unified_ndp_end_req_cmd_send - api to send end request to FW
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002123 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002124 * @req: pointer to request buffer
2125 *
2126 * Return: status of operation
2127 */
2128QDF_STATUS wmi_unified_ndp_end_req_cmd_send(void *wmi_hdl,
2129 struct nan_datapath_end_req *req);
2130
2131/**
2132 * wmi_extract_ndp_initiator_rsp - api to extract initiator rsp from even buffer
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002133 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002134 * @data: event buffer
2135 * @rsp: buffer to populate
2136 *
2137 * Return: status of operation
2138 */
2139QDF_STATUS wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle,
Naveen Rawat1d095b02018-02-02 15:13:05 -08002140 uint8_t *data, struct nan_datapath_initiator_rsp *rsp);
Naveen Rawat79a787c2017-12-14 13:24:31 -08002141
2142/**
2143 * wmi_extract_ndp_ind - api to extract ndp indication struct from even buffer
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002144 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002145 * @data: event buffer
2146 * @ind: buffer to populate
2147 *
2148 * Return: status of operation
2149 */
2150QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data,
Naveen Rawat1d095b02018-02-02 15:13:05 -08002151 struct nan_datapath_indication_event *ind);
Naveen Rawat79a787c2017-12-14 13:24:31 -08002152
2153/**
2154 * wmi_extract_ndp_confirm - api to extract ndp confim struct from even buffer
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002155 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002156 * @data: event buffer
2157 * @ev: buffer to populate
2158 *
2159 * Return: status of operation
2160 */
2161QDF_STATUS wmi_extract_ndp_confirm(wmi_unified_t wmi_handle, uint8_t *data,
Naveen Rawat1d095b02018-02-02 15:13:05 -08002162 struct nan_datapath_confirm_event *ev);
Naveen Rawat79a787c2017-12-14 13:24:31 -08002163
2164/**
2165 * wmi_extract_ndp_responder_rsp - api to extract responder rsp from even buffer
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002166 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002167 * @data: event buffer
2168 * @rsp: buffer to populate
2169 *
2170 * Return: status of operation
2171 */
2172QDF_STATUS wmi_extract_ndp_responder_rsp(wmi_unified_t wmi_handle,
Naveen Rawat1d095b02018-02-02 15:13:05 -08002173 uint8_t *data, struct nan_datapath_responder_rsp *rsp);
Naveen Rawat79a787c2017-12-14 13:24:31 -08002174
2175/**
2176 * wmi_extract_ndp_end_rsp - api to extract ndp end rsp from even buffer
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002177 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002178 * @data: event buffer
2179 * @rsp: buffer to populate
2180 *
2181 * Return: status of operation
2182 */
2183QDF_STATUS wmi_extract_ndp_end_rsp(wmi_unified_t wmi_handle, uint8_t *data,
Naveen Rawat1d095b02018-02-02 15:13:05 -08002184 struct nan_datapath_end_rsp_event *rsp);
Naveen Rawat79a787c2017-12-14 13:24:31 -08002185
2186/**
2187 * wmi_extract_ndp_end_ind - api to extract ndp end indication from even buffer
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002188 * @wmi_hdl: wmi handle
Naveen Rawat79a787c2017-12-14 13:24:31 -08002189 * @data: event buffer
2190 * @ind: buffer to populate
2191 *
2192 * Return: status of operation
2193 */
2194QDF_STATUS wmi_extract_ndp_end_ind(wmi_unified_t wmi_handle, uint8_t *data,
2195 struct nan_datapath_end_indication_event **ind);
Naveen Rawat76cbf2f2018-01-09 17:54:41 -08002196
2197/**
2198 * wmi_extract_ndp_sch_update - api to extract ndp sch update from event buffer
2199 * @wmi_hdl: wmi handle
2200 * @data: event buffer
2201 * @ind: buffer to populate
2202 *
2203 * Return: status of operation
2204 */
2205QDF_STATUS wmi_extract_ndp_sch_update(wmi_unified_t wmi_handle, uint8_t *data,
2206 struct nan_datapath_sch_update_event *ind);
Naveen Rawat79a787c2017-12-14 13:24:31 -08002207#endif
Subrat Mishra7c9427e2017-09-27 14:41:20 +05302208
yeshwanth sriram guntuka230af892017-09-01 17:56:07 +05302209/**
2210 * wmi_unified_send_btm_config() - Send BTM config to fw
2211 * @wmi_hdl: wmi handle
2212 * @params: pointer to wmi_btm_config
2213 *
2214 * Return: QDF_STATUS
2215 */
2216QDF_STATUS wmi_unified_send_btm_config(void *wmi_hdl,
2217 struct wmi_btm_config *params);
Arif Hussain2cfde1d2017-12-27 16:23:45 -08002218
2219/**
2220 * wmi_unified_send_obss_detection_cfg_cmd() - WMI function to send obss
2221 * detection configuration to FW.
2222 * @wmi_hdl: wmi handle
2223 * @cfg: obss detection configuration
2224 *
2225 * Send WMI_SAP_OBSS_DETECTION_CFG_CMDID parameters to fw.
2226 *
2227 * Return: QDF_STATUS
2228 */
2229
2230QDF_STATUS wmi_unified_send_obss_detection_cfg_cmd(void *wmi_hdl,
2231 struct wmi_obss_detection_cfg_param *cfg);
Arif Hussainf9f26b52018-01-12 13:15:04 -08002232
2233/**
2234 * wmi_unified_extract_obss_detection_info() - WMI function to extract obss
2235 * detection info from FW.
2236 * @wmi_hdl: wmi handle
2237 * @data: event data from firmware
2238 * @info: Pointer to hold obss detection info
2239 *
2240 * This function is used to extract obss info from firmware.
2241 *
2242 * Return: QDF_STATUS
2243 */
2244
2245QDF_STATUS wmi_unified_extract_obss_detection_info(void *wmi_hdl,
2246 uint8_t *data,
2247 struct wmi_obss_detect_info
2248 *info);
Arif Hussainb4da3472018-01-22 01:19:36 -08002249/**
2250 * wmi_unified_send_bss_color_change_enable_cmd() - WMI function to send bss
2251 * color change enable to FW.
2252 * @wmi_hdl: wmi handle
2253 * @vdev_id: vdev ID
2254 * @enable: enable or disable color change handeling within firmware
2255 *
2256 * Send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID parameters to fw,
2257 * thereby firmware updates bss color when AP announces bss color change.
2258 *
2259 * Return: QDF_STATUS
2260 */
2261
2262QDF_STATUS wmi_unified_send_bss_color_change_enable_cmd(void *wmi_hdl,
2263 uint32_t vdev_id,
2264 bool enable);
2265
2266/**
2267 * wmi_unified_send_obss_color_collision_cfg_cmd() - WMI function to send bss
2268 * color collision detection configuration to FW.
2269 * @wmi_hdl: wmi handle
2270 * @cfg: obss color collision detection configuration
2271 *
2272 * Send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID parameters to fw.
2273 *
2274 * Return: QDF_STATUS
2275 */
2276
2277QDF_STATUS wmi_unified_send_obss_color_collision_cfg_cmd(void *wmi_hdl,
2278 struct wmi_obss_color_collision_cfg_param *cfg);
2279
2280/**
2281 * wmi_unified_extract_obss_color_collision_info() - WMI function to extract
2282 * obss color collision info from FW.
2283 * @wmi_hdl: wmi handle
2284 * @data: event data from firmware
2285 * @info: Pointer to hold bss color collision info
2286 *
2287 * This function is used to extract bss collision info from firmware.
2288 *
2289 * Return: QDF_STATUS
2290 */
2291
2292QDF_STATUS wmi_unified_extract_obss_color_collision_info(void *wmi_hdl,
2293 uint8_t *data, struct wmi_obss_color_collision_info *info);
Arif Hussainf9f26b52018-01-12 13:15:04 -08002294
Himanshu Agarwal3f5d65a2018-01-24 22:24:17 +05302295#ifdef WLAN_SUPPORT_GREEN_AP
2296QDF_STATUS wmi_extract_green_ap_egap_status_info(
2297 void *wmi_hdl, uint8_t *evt_buf,
2298 struct wlan_green_ap_egap_status_info *egap_status_info_params);
2299#endif
2300
Subrat Mishra7c9427e2017-09-27 14:41:20 +05302301#ifdef WLAN_SUPPORT_FILS
2302/**
2303 * wmi_unified_fils_vdev_config_send_cmd() - send FILS config cmd to fw
2304 * @wmi_hdl: wmi handle
2305 * @param: fils config params
2306 *
2307 * Return: QDF_STATUS_SUCCESS for success or error code
2308 */
2309QDF_STATUS
2310wmi_unified_fils_vdev_config_send_cmd(void *wmi_hdl,
2311 struct config_fils_params *param);
2312
2313/**
2314 * wmi_extract_swfda_vdev_id() - api to extract vdev id
2315 * @wmi_hdl: wmi handle
2316 * @evt_buf: pointer to event buffer
2317 * @vdev_id: pointer to vdev id
2318 *
2319 * Return: QDF_STATUS_SUCCESS for success or error code
2320 */
2321QDF_STATUS wmi_extract_swfda_vdev_id(void *wmi_hdl, void *evt_buf,
2322 uint32_t *vdev_id);
2323
2324/**
2325 * wmi_unified_fils_discovery_send_cmd() - send FILS discovery cmd to fw
2326 * @wmi_hdl: wmi handle
2327 * @param: fils discovery params
2328 *
2329 * Return: QDF_STATUS_SUCCESS for success or error code
2330 */
2331QDF_STATUS wmi_unified_fils_discovery_send_cmd(void *wmi_hdl,
2332 struct fd_params *param);
2333#endif /* WLAN_SUPPORT_FILS */
Vignesh Viswanathan51994e32018-01-18 19:06:40 +05302334
2335/**
Rajeev Kumar Sirasanagandladfa24862018-03-02 21:12:16 +05302336 * wmi_unified_send_roam_scan_stats_cmd() - Wrapper to request roam scan stats
2337 * @wmi_hdl: wmi handle
2338 * @params: request params
2339 *
2340 * This function is used to send the roam scan stats request command to
2341 * firmware.
2342 *
2343 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2344 */
2345QDF_STATUS
2346wmi_unified_send_roam_scan_stats_cmd(void *wmi_hdl,
2347 struct wmi_roam_scan_stats_req *params);
2348
2349/**
2350 * wmi_extract_roam_scan_stats_res_evt() - API to extract roam scan stats res
2351 * @wmi: wmi handle
2352 * @evt_buf: pointer to the event buffer
2353 * @vdev_id: output pointer to hold vdev id
2354 * @res_param: output pointer to hold extracted memory
2355 *
2356 * Return: QDF_STATUS
2357 */
2358QDF_STATUS
2359wmi_extract_roam_scan_stats_res_evt(wmi_unified_t wmi, void *evt_buf,
2360 uint32_t *vdev_id,
2361 struct wmi_roam_scan_stats_res **res_param);
2362/**
Vignesh Viswanathan51994e32018-01-18 19:06:40 +05302363 * wmi_unified_offload_11k_cmd() - send 11k offload command
2364 * @wmi_hdl: wmi handle
2365 * @params: 11k offload params
2366 *
2367 * This function passes the 11k offload command params to FW
2368 *
2369 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2370 */
2371QDF_STATUS wmi_unified_offload_11k_cmd(void *wmi_hdl,
2372 struct wmi_11k_offload_params *params);
2373/**
2374 * wmi_unified_invoke_neighbor_report_cmd() - send invoke neighbor report cmd
2375 * @wmi_hdl: wmi handle
2376 * @params: invoke neighbor report params
2377 *
2378 * This function passes the invoke neighbor report command to fw
2379 *
2380 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2381 */
2382QDF_STATUS wmi_unified_invoke_neighbor_report_cmd(void *wmi_hdl,
2383 struct wmi_invoke_neighbor_report_params *params);
Naveen Rawat1d095b02018-02-02 15:13:05 -08002384
Naveen Rawat13dbfb72018-02-02 15:18:33 -08002385/* wmi_get_ch_width_from_phy_mode() - convert phy mode to channel width
2386 * @wmi_hdl: wmi handle
2387 * @phymode: phy mode
2388 *
2389 * Return: wmi channel width
2390 */
2391wmi_host_channel_width wmi_get_ch_width_from_phy_mode(void *wmi_hdl,
2392 WMI_HOST_WLAN_PHY_MODE phymode);
2393
Naveen Rawat96afb7f2018-04-13 16:38:36 -07002394#ifdef QCA_SUPPORT_CP_STATS
2395/**
2396 * wmi_extract_cca_stats() - api to extract congestion stats from event buffer
2397 * @wmi_handle: wma handle
2398 * @evt_buf: event buffer
2399 * @datalen: length of buffer
2400 * @stats: buffer to populated after stats extraction
2401 *
2402 * Return: status of operation
2403 */
2404QDF_STATUS wmi_extract_cca_stats(wmi_unified_t wmi_handle, void *evt_buf,
2405 struct wmi_host_congestion_stats *stats);
2406#endif /* QCA_SUPPORT_CP_STATS */
2407
Shashikala Prabhu6c90a3e2018-05-16 10:08:09 +05302408#if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST)
2409/**
2410 * wmi_unified_dfs_send_avg_params_cmd() - send average radar parameters cmd.
2411 * @wmi_hdl: wmi handle
2412 * @params: radar found params
2413 *
2414 * This function passes the average radar parameters to fw
2415 *
2416 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2417 */
2418QDF_STATUS
2419wmi_unified_dfs_send_avg_params_cmd(void *wmi_hdl,
2420 struct dfs_radar_found_params *params);
2421
2422/**
2423 * wmi_extract_dfs_status_from_fw() - extract host dfs status from fw.
2424 * @wmi_hdl: wmi handle
2425 * @evt_buf: pointer to event buffer
2426 * @dfs_status_check: pointer to the host dfs status
2427 *
2428 * This function extracts the result of host dfs from fw
2429 *
2430 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2431 */
2432QDF_STATUS wmi_extract_dfs_status_from_fw(void *wmi_hdl, void *evt_buf,
2433 uint32_t *dfs_status_check);
2434#endif
c_cgodava5eb9a22017-02-13 10:14:42 +05302435#ifdef OL_ATH_SMART_LOGGING
2436/**
2437 * wmi_unified_send_smart_logging_enable_cmd() - send smart logging enable cmd
2438 * @wmi_hdl: wmi handle
2439 * @params: enable/disable
2440 *
2441 * This function enables/disable the smart logging feature
2442 *
2443 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2444 */
2445QDF_STATUS wmi_unified_send_smart_logging_enable_cmd(void *wmi_hdl,
2446 uint32_t param);
2447
2448/**
2449 * wmi_unified_send_smart_logging_fatal_cmd() - send smart logging fatal cmd
2450 * @wmi_hdl: wmi handle
2451 * @param: Fatal event
2452 *
2453 * This function sends the smart log fatal events to the FW
2454 *
2455 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2456 */
2457QDF_STATUS wmi_unified_send_smart_logging_fatal_cmd
2458 (void *wmi_hdl,
2459 struct wmi_debug_fatal_events *param);
2460
2461/**
2462 * wmi_extract_smartlog_ev() - extract smartlog event info from event
2463 * @wmi_handle: wmi handle
2464 * @param evt_buf: pointer to event buffer
2465 * @param ev: Pointer to hold fatal events
2466 *
2467 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2468 */
2469QDF_STATUS wmi_extract_smartlog_ev
2470 (void *wmi_hdl, void *evt_buf,
2471 struct wmi_debug_fatal_events *ev);
Amar Singhal07f83142018-06-26 16:45:54 -07002472
c_cgodava5eb9a22017-02-13 10:14:42 +05302473#endif /* OL_ATH_SMART_LOGGING */
Amar Singhal07f83142018-06-26 16:45:54 -07002474
2475void wmi_process_fw_event_worker_thread_ctx(struct wmi_unified *wmi_handle,
2476 HTC_PACKET * htc_packet);
2477
Pratik Gandhi13b34f82018-09-17 16:47:12 +05302478#ifdef OBSS_PD
2479/**
2480 * wmi_extract_smartlog_ev() - extract smartlog event info from event
2481 * @wmi_handle: wmi handle
2482 * @param evt_buf: pointer to event buffer
2483 * @param ev: Pointer to hold fatal events
2484 *
2485 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
2486 */
2487QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_cmd(void *wmi_handle,
2488 struct wmi_host_obss_spatial_reuse_set_param *obss_spatial_reuse_param);
2489#endif /* OBSS_PD */
Shashikala Prabhu9032a3c2018-09-24 13:54:23 +05302490
2491/**
2492 * wmi_convert_pdev_id_host_to_target() - Convert pdev_id from host to target
2493 * defines. For legacy there is not conversion required. Just return pdev_id as
2494 * it is.
2495 * @wmi_hdl: wmi handle
2496 * @host_pdev_id: host pdev_id to be converted.
2497 * @target_pdev_id: Output target pdev id.
2498 *
2499 * Return: QDF_STATUS
2500 */
2501QDF_STATUS wmi_convert_pdev_id_host_to_target(void *wmi_hdl,
2502 uint32_t host_pdev_id,
2503 uint32_t *target_pdev_id);
Govind Singhd475ea92016-03-06 19:55:02 +05302504#endif /* _WMI_UNIFIED_API_H_ */