xref: /wlan-driver/qca-wifi-host-cmn/wmi/inc/wmi_unified_twt_api.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name /**
20*5113495bSYour Name  * DOC: Implement API's specific to TWT component.
21*5113495bSYour Name  */
22*5113495bSYour Name 
23*5113495bSYour Name #ifndef _WMI_UNIFIED_TWT_API_H_
24*5113495bSYour Name #define _WMI_UNIFIED_TWT_API_H_
25*5113495bSYour Name 
26*5113495bSYour Name #include "wmi_unified_twt_param.h"
27*5113495bSYour Name #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
28*5113495bSYour Name #include <wlan_twt_public_structs.h>
29*5113495bSYour Name /**
30*5113495bSYour Name  * wmi_unified_twt_enable_cmd() - Send WMI command to Enable TWT
31*5113495bSYour Name  * @wmi_handle: wmi handle
32*5113495bSYour Name  * @params: Parameters to be configured
33*5113495bSYour Name  *
34*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
35*5113495bSYour Name  */
36*5113495bSYour Name QDF_STATUS
37*5113495bSYour Name wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle,
38*5113495bSYour Name 			   struct twt_enable_param *params);
39*5113495bSYour Name 
40*5113495bSYour Name /**
41*5113495bSYour Name  * wmi_unified_twt_disable_cmd() - Send WMI command to disable TWT
42*5113495bSYour Name  * @wmi_handle: wmi handle
43*5113495bSYour Name  * @params: Parameters to be configured
44*5113495bSYour Name  *
45*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
46*5113495bSYour Name  */
47*5113495bSYour Name QDF_STATUS
48*5113495bSYour Name wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle,
49*5113495bSYour Name 			    struct twt_disable_param *params);
50*5113495bSYour Name 
51*5113495bSYour Name /**
52*5113495bSYour Name  * wmi_unified_twt_add_dialog_cmd() - Send WMI command to add TWT dialog
53*5113495bSYour Name  * @wmi_handle: wmi handle
54*5113495bSYour Name  * @params: Parameters to be configured
55*5113495bSYour Name  *
56*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
57*5113495bSYour Name  */
58*5113495bSYour Name QDF_STATUS
59*5113495bSYour Name wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle,
60*5113495bSYour Name 			       struct twt_add_dialog_param *params);
61*5113495bSYour Name 
62*5113495bSYour Name /**
63*5113495bSYour Name  * wmi_unified_twt_del_dialog_cmd() - Send WMI command to delete TWT dialog
64*5113495bSYour Name  * @wmi_handle: wmi handle
65*5113495bSYour Name  * @params: Parameters to be configured
66*5113495bSYour Name  *
67*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
68*5113495bSYour Name  */
69*5113495bSYour Name QDF_STATUS
70*5113495bSYour Name wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle,
71*5113495bSYour Name 			       struct twt_del_dialog_param *params);
72*5113495bSYour Name 
73*5113495bSYour Name /**
74*5113495bSYour Name  * wmi_unified_twt_pause_dialog_cmd() - Send WMI command to pause TWT dialog
75*5113495bSYour Name  * @wmi_handle: wmi handle
76*5113495bSYour Name  * @params: Parameters to be configured
77*5113495bSYour Name  *
78*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
79*5113495bSYour Name  */
80*5113495bSYour Name QDF_STATUS
81*5113495bSYour Name wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
82*5113495bSYour Name 				 struct twt_pause_dialog_cmd_param *params);
83*5113495bSYour Name 
84*5113495bSYour Name /**
85*5113495bSYour Name  * wmi_unified_twt_nudge_dialog_cmd() - Send WMI command to nudge TWT dialog
86*5113495bSYour Name  * @wmi_handle: wmi handle
87*5113495bSYour Name  * @params: Parameters to be configured
88*5113495bSYour Name  *
89*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
90*5113495bSYour Name  */
91*5113495bSYour Name QDF_STATUS
92*5113495bSYour Name wmi_unified_twt_nudge_dialog_cmd(wmi_unified_t wmi_handle,
93*5113495bSYour Name 				 struct twt_nudge_dialog_cmd_param *params);
94*5113495bSYour Name 
95*5113495bSYour Name /**
96*5113495bSYour Name  * wmi_unified_twt_resume_dialog_cmd() - Send WMI command to resume TWT dialog
97*5113495bSYour Name  * @wmi_handle: wmi handle
98*5113495bSYour Name  * @params: Parameters to be configured
99*5113495bSYour Name  *
100*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
101*5113495bSYour Name  */
102*5113495bSYour Name QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
103*5113495bSYour Name 			wmi_unified_t wmi_handle,
104*5113495bSYour Name 			struct twt_resume_dialog_cmd_param *params);
105*5113495bSYour Name 
106*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
107*5113495bSYour Name /**
108*5113495bSYour Name  * wmi_unified_twt_btwt_invite_sta_cmd() - Send WMI command for bTWT sta
109*5113495bSYour Name  *                               invitation
110*5113495bSYour Name  * @wmi_handle: wmi handle
111*5113495bSYour Name  * @params: Parameters to be configured
112*5113495bSYour Name  *
113*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
114*5113495bSYour Name  */
115*5113495bSYour Name QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd(
116*5113495bSYour Name 			wmi_unified_t wmi_handle,
117*5113495bSYour Name 			struct twt_btwt_invite_sta_cmd_param *params);
118*5113495bSYour Name 
119*5113495bSYour Name /**
120*5113495bSYour Name  * wmi_unified_twt_btwt_remove_sta_cmd() - Send WMI command for bTWT sta kickoff
121*5113495bSYour Name  * @wmi_handle: wmi handle
122*5113495bSYour Name  * @params: Parameters to be configured
123*5113495bSYour Name  *
124*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
125*5113495bSYour Name  */
126*5113495bSYour Name QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd(
127*5113495bSYour Name 			wmi_unified_t wmi_handle,
128*5113495bSYour Name 			struct twt_btwt_remove_sta_cmd_param *params);
129*5113495bSYour Name #endif
130*5113495bSYour Name 
131*5113495bSYour Name /**
132*5113495bSYour Name  * wmi_extract_twt_enable_comp_event() - Extract WMI event params for TWT enable
133*5113495bSYour Name  *                               completion event
134*5113495bSYour Name  * @wmi_handle: wmi handle
135*5113495bSYour Name  * @evt_buf: Pointer event buffer
136*5113495bSYour Name  * @params: Parameters to extract
137*5113495bSYour Name  *
138*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
139*5113495bSYour Name  */
140*5113495bSYour Name QDF_STATUS wmi_extract_twt_enable_comp_event(
141*5113495bSYour Name 		wmi_unified_t wmi_handle,
142*5113495bSYour Name 		uint8_t *evt_buf,
143*5113495bSYour Name 		struct twt_enable_complete_event_param *params);
144*5113495bSYour Name 
145*5113495bSYour Name /**
146*5113495bSYour Name  * wmi_extract_twt_disable_comp_event() - Extract WMI event params for TWT
147*5113495bSYour Name  *                               disable completion event
148*5113495bSYour Name  * @wmi_handle: wmi handle
149*5113495bSYour Name  * @evt_buf: Pointer event buffer
150*5113495bSYour Name  * @params: Parameters to extract
151*5113495bSYour Name  *
152*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
153*5113495bSYour Name  */
154*5113495bSYour Name QDF_STATUS wmi_extract_twt_disable_comp_event(
155*5113495bSYour Name 		wmi_unified_t wmi_handle,
156*5113495bSYour Name 		uint8_t *evt_buf,
157*5113495bSYour Name 		struct twt_disable_complete_event_param *params);
158*5113495bSYour Name 
159*5113495bSYour Name /**
160*5113495bSYour Name  * wmi_extract_twt_add_dialog_comp_event() - Extract WMI event params for TWT
161*5113495bSYour Name  *                               add dialog completion event
162*5113495bSYour Name  * @wmi_handle: wmi handle
163*5113495bSYour Name  * @evt_buf: Pointer event buffer
164*5113495bSYour Name  * @params: Parameters to extract
165*5113495bSYour Name  *
166*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
167*5113495bSYour Name  */
168*5113495bSYour Name QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
169*5113495bSYour Name 		wmi_unified_t wmi_handle,
170*5113495bSYour Name 		uint8_t *evt_buf,
171*5113495bSYour Name 		struct twt_add_dialog_complete_event_param *params);
172*5113495bSYour Name 
173*5113495bSYour Name /**
174*5113495bSYour Name  * wmi_extract_twt_add_dialog_comp_additional_params() - Extracts additional
175*5113495bSYour Name  * twt parameters, as part of add dialog completion event
176*5113495bSYour Name  * @wmi_handle: wmi handle
177*5113495bSYour Name  * @evt_buf: Pointer event buffer
178*5113495bSYour Name  * @evt_buf_len: length of the add dialog event buffer
179*5113495bSYour Name  * @idx: index of num_twt_params to extract
180*5113495bSYour Name  * @additional_params: additional parameters to extract
181*5113495bSYour Name  *
182*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
183*5113495bSYour Name  */
184*5113495bSYour Name QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params(
185*5113495bSYour Name 		wmi_unified_t wmi_handle, uint8_t *evt_buf,
186*5113495bSYour Name 		uint32_t evt_buf_len, uint32_t idx,
187*5113495bSYour Name 		struct twt_add_dialog_additional_params *additional_params);
188*5113495bSYour Name 
189*5113495bSYour Name /**
190*5113495bSYour Name  * wmi_extract_twt_del_dialog_comp_event() - Extract WMI event params for TWT
191*5113495bSYour Name  *                               delete dialog completion event
192*5113495bSYour Name  * @wmi_handle: wmi handle
193*5113495bSYour Name  * @evt_buf: Pointer event buffer
194*5113495bSYour Name  * @params: Parameters to extract
195*5113495bSYour Name  *
196*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
197*5113495bSYour Name  */
198*5113495bSYour Name QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
199*5113495bSYour Name 		wmi_unified_t wmi_handle,
200*5113495bSYour Name 		uint8_t *evt_buf,
201*5113495bSYour Name 		struct twt_del_dialog_complete_event_param *params);
202*5113495bSYour Name 
203*5113495bSYour Name /**
204*5113495bSYour Name  * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT
205*5113495bSYour Name  *                               pause dialog completion event
206*5113495bSYour Name  * @wmi_handle: wmi handle
207*5113495bSYour Name  * @evt_buf: Pointer event buffer
208*5113495bSYour Name  * @params: Parameters to extract
209*5113495bSYour Name  *
210*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
211*5113495bSYour Name  */
212*5113495bSYour Name QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
213*5113495bSYour Name 		wmi_unified_t wmi_handle,
214*5113495bSYour Name 		uint8_t *evt_buf,
215*5113495bSYour Name 		struct twt_pause_dialog_complete_event_param *params);
216*5113495bSYour Name 
217*5113495bSYour Name /**
218*5113495bSYour Name  * wmi_extract_twt_nudge_dialog_comp_event() - Extract WMI event params for TWT
219*5113495bSYour Name  *                               nudge dialog completion event
220*5113495bSYour Name  * @wmi_handle: wmi handle
221*5113495bSYour Name  * @evt_buf: Pointer event buffer
222*5113495bSYour Name  * @params: Parameters to extract
223*5113495bSYour Name  *
224*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
225*5113495bSYour Name  */
226*5113495bSYour Name QDF_STATUS wmi_extract_twt_nudge_dialog_comp_event(
227*5113495bSYour Name 		wmi_unified_t wmi_handle,
228*5113495bSYour Name 		uint8_t *evt_buf,
229*5113495bSYour Name 		struct twt_nudge_dialog_complete_event_param *params);
230*5113495bSYour Name 
231*5113495bSYour Name /**
232*5113495bSYour Name  * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
233*5113495bSYour Name  *                               resume dialog completion event
234*5113495bSYour Name  * @wmi_handle: wmi handle
235*5113495bSYour Name  * @evt_buf: Pointer event buffer
236*5113495bSYour Name  * @params: Parameters to extract
237*5113495bSYour Name  *
238*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
239*5113495bSYour Name  */
240*5113495bSYour Name QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
241*5113495bSYour Name 		wmi_unified_t wmi_handle,
242*5113495bSYour Name 		uint8_t *evt_buf,
243*5113495bSYour Name 		struct twt_resume_dialog_complete_event_param *params);
244*5113495bSYour Name 
245*5113495bSYour Name /**
246*5113495bSYour Name  * wmi_extract_twt_notify_event() - Extract WMI event params for TWT
247*5113495bSYour Name  *                                  notify event
248*5113495bSYour Name  * @wmi_handle: wmi handle
249*5113495bSYour Name  * @evt_buf: Pointer event buffer
250*5113495bSYour Name  * @params: Parameters to extract
251*5113495bSYour Name  *
252*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
253*5113495bSYour Name  */
254*5113495bSYour Name QDF_STATUS wmi_extract_twt_notify_event(
255*5113495bSYour Name 		wmi_unified_t wmi_handle,
256*5113495bSYour Name 		uint8_t *evt_buf,
257*5113495bSYour Name 		struct twt_notify_event_param *params);
258*5113495bSYour Name 
259*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
260*5113495bSYour Name /**
261*5113495bSYour Name  * wmi_extract_twt_btwt_invite_sta_comp_event() - Extract WMI event params for
262*5113495bSYour Name  *                          BTWT sta invitation completion event
263*5113495bSYour Name  * @wmi_handle: wmi handle
264*5113495bSYour Name  * @evt_buf: Pointer event buffer
265*5113495bSYour Name  * @params: Parameters to extract
266*5113495bSYour Name  *
267*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
268*5113495bSYour Name  */
269*5113495bSYour Name QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
270*5113495bSYour Name 		wmi_unified_t wmi_handle,
271*5113495bSYour Name 		uint8_t *evt_buf,
272*5113495bSYour Name 		struct twt_btwt_invite_sta_complete_event_param *params);
273*5113495bSYour Name 
274*5113495bSYour Name /**
275*5113495bSYour Name  * wmi_extract_twt_btwt_remove_sta_comp_event() - Extract WMI event params for
276*5113495bSYour Name  *                          BTWT sta kickoff completion event
277*5113495bSYour Name  * @wmi_handle: wmi handle
278*5113495bSYour Name  * @evt_buf: Pointer event buffer
279*5113495bSYour Name  * @params: Parameters to extract
280*5113495bSYour Name  *
281*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
282*5113495bSYour Name  */
283*5113495bSYour Name QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
284*5113495bSYour Name 		wmi_unified_t wmi_handle,
285*5113495bSYour Name 		uint8_t *evt_buf,
286*5113495bSYour Name 		struct twt_btwt_remove_sta_complete_event_param *params);
287*5113495bSYour Name #endif
288*5113495bSYour Name 
289*5113495bSYour Name /**
290*5113495bSYour Name  * wmi_extract_twt_session_stats_event() - Extract WMI event params for TWT
291*5113495bSYour Name  *                               session stats event
292*5113495bSYour Name  * @wmi_handle: wmi handle
293*5113495bSYour Name  * @evt_buf: Pointer event buffer
294*5113495bSYour Name  * @params: Parameters to extract
295*5113495bSYour Name  *
296*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
297*5113495bSYour Name  */
298*5113495bSYour Name QDF_STATUS wmi_extract_twt_session_stats_event(
299*5113495bSYour Name 		wmi_unified_t wmi_handle,
300*5113495bSYour Name 		uint8_t *evt_buf,
301*5113495bSYour Name 		struct twt_session_stats_event_param *params);
302*5113495bSYour Name 
303*5113495bSYour Name /**
304*5113495bSYour Name  * wmi_extract_twt_session_stats_data() - Extract one TWT session from TWT
305*5113495bSYour Name  *                               session stats event
306*5113495bSYour Name  * @wmi_handle: wmi handle
307*5113495bSYour Name  * @evt_buf: Pointer event buffer
308*5113495bSYour Name  * @params: Parameters to extract
309*5113495bSYour Name  * @session: Session struct to save one TWT session
310*5113495bSYour Name  * @idx: TWT session index
311*5113495bSYour Name  *
312*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
313*5113495bSYour Name  */
314*5113495bSYour Name QDF_STATUS wmi_extract_twt_session_stats_data(
315*5113495bSYour Name 		wmi_unified_t wmi_handle,
316*5113495bSYour Name 		uint8_t *evt_buf,
317*5113495bSYour Name 		struct twt_session_stats_event_param *params,
318*5113495bSYour Name 		struct twt_session_stats_info *session,
319*5113495bSYour Name 		uint32_t idx);
320*5113495bSYour Name 
321*5113495bSYour Name void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle);
322*5113495bSYour Name 
323*5113495bSYour Name /**
324*5113495bSYour Name  * wmi_extract_twt_cap_service_ready_ext2: Extract TWT bitmap value
325*5113495bSYour Name  *                                         received through extended
326*5113495bSYour Name  *                                         service ready2 event
327*5113495bSYour Name  * @wmi_handle: WMI handle
328*5113495bSYour Name  * @evt_buf: Event buffer
329*5113495bSYour Name  * @params: Pointer to TWT bitmap param
330*5113495bSYour Name  *
331*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
332*5113495bSYour Name  */
333*5113495bSYour Name QDF_STATUS wmi_extract_twt_cap_service_ready_ext2(
334*5113495bSYour Name 			wmi_unified_t wmi_handle,
335*5113495bSYour Name 			uint8_t *evt_buf,
336*5113495bSYour Name 			struct wmi_twt_cap_bitmap_params *params);
337*5113495bSYour Name 
338*5113495bSYour Name /**
339*5113495bSYour Name  * wmi_extract_twt_ack_comp_event() - Extract WMI event params for TWT ack event
340*5113495bSYour Name  *
341*5113495bSYour Name  * @wmi_handle: wmi handle
342*5113495bSYour Name  * @evt_buf: Pointer event buffer
343*5113495bSYour Name  * @param: Parameters to extract
344*5113495bSYour Name  *
345*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
346*5113495bSYour Name  */
347*5113495bSYour Name QDF_STATUS wmi_extract_twt_ack_comp_event(
348*5113495bSYour Name 			wmi_unified_t wmi_handle,
349*5113495bSYour Name 			uint8_t *evt_buf,
350*5113495bSYour Name 			struct twt_ack_complete_event_param *param);
351*5113495bSYour Name #elif defined(WLAN_SUPPORT_TWT)
352*5113495bSYour Name /**
353*5113495bSYour Name  * wmi_unified_twt_enable_cmd() - Send WMI command to Enable TWT
354*5113495bSYour Name  * @wmi_handle: wmi handle
355*5113495bSYour Name  * @params: Parameters to be configured
356*5113495bSYour Name  *
357*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
358*5113495bSYour Name  */
359*5113495bSYour Name QDF_STATUS
360*5113495bSYour Name wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle,
361*5113495bSYour Name 			   struct wmi_twt_enable_param *params);
362*5113495bSYour Name 
363*5113495bSYour Name /**
364*5113495bSYour Name  * wmi_unified_twt_disable_cmd() - Send WMI command to disable TWT
365*5113495bSYour Name  * @wmi_handle: wmi handle
366*5113495bSYour Name  * @params: Parameters to be configured
367*5113495bSYour Name  *
368*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
369*5113495bSYour Name  */
370*5113495bSYour Name QDF_STATUS
371*5113495bSYour Name wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle,
372*5113495bSYour Name 			    struct wmi_twt_disable_param *params);
373*5113495bSYour Name 
374*5113495bSYour Name /**
375*5113495bSYour Name  * wmi_unified_twt_add_dialog_cmd() - Send WMI command to add TWT dialog
376*5113495bSYour Name  * @wmi_handle: wmi handle
377*5113495bSYour Name  * @params: Parameters to be configured
378*5113495bSYour Name  *
379*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
380*5113495bSYour Name  */
381*5113495bSYour Name QDF_STATUS
382*5113495bSYour Name wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle,
383*5113495bSYour Name 			       struct wmi_twt_add_dialog_param *params);
384*5113495bSYour Name 
385*5113495bSYour Name /**
386*5113495bSYour Name  * wmi_unified_twt_del_dialog_cmd() - Send WMI command to delete TWT dialog
387*5113495bSYour Name  * @wmi_handle: wmi handle
388*5113495bSYour Name  * @params: Parameters to be configured
389*5113495bSYour Name  *
390*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
391*5113495bSYour Name  */
392*5113495bSYour Name QDF_STATUS
393*5113495bSYour Name wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle,
394*5113495bSYour Name 			       struct wmi_twt_del_dialog_param *params);
395*5113495bSYour Name 
396*5113495bSYour Name /**
397*5113495bSYour Name  * wmi_unified_twt_pause_dialog_cmd() - Send WMI command to pause TWT dialog
398*5113495bSYour Name  * @wmi_handle: wmi handle
399*5113495bSYour Name  * @params: Parameters to be configured
400*5113495bSYour Name  *
401*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
402*5113495bSYour Name  */
403*5113495bSYour Name QDF_STATUS
404*5113495bSYour Name wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
405*5113495bSYour Name 				 struct wmi_twt_pause_dialog_cmd_param *params);
406*5113495bSYour Name 
407*5113495bSYour Name /**
408*5113495bSYour Name  * wmi_unified_twt_nudge_dialog_cmd() - Send WMI command to nudge TWT dialog
409*5113495bSYour Name  * @wmi_handle: wmi handle
410*5113495bSYour Name  * @params: Parameters to be configured
411*5113495bSYour Name  *
412*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
413*5113495bSYour Name  */
414*5113495bSYour Name QDF_STATUS
415*5113495bSYour Name wmi_unified_twt_nudge_dialog_cmd(wmi_unified_t wmi_handle,
416*5113495bSYour Name 				 struct wmi_twt_nudge_dialog_cmd_param *params);
417*5113495bSYour Name 
418*5113495bSYour Name /**
419*5113495bSYour Name  * wmi_unified_twt_resume_dialog_cmd() - Send WMI command to resume TWT dialog
420*5113495bSYour Name  * @wmi_handle: wmi handle
421*5113495bSYour Name  * @params: Parameters to be configured
422*5113495bSYour Name  *
423*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
424*5113495bSYour Name  */
425*5113495bSYour Name QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
426*5113495bSYour Name 			wmi_unified_t wmi_handle,
427*5113495bSYour Name 			struct wmi_twt_resume_dialog_cmd_param *params);
428*5113495bSYour Name 
429*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
430*5113495bSYour Name /**
431*5113495bSYour Name  * wmi_unified_twt_btwt_invite_sta_cmd() - Send WMI command for bTWT sta
432*5113495bSYour Name  *                               invitation
433*5113495bSYour Name  * @wmi_handle: wmi handle
434*5113495bSYour Name  * @params: Parameters to be configured
435*5113495bSYour Name  *
436*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
437*5113495bSYour Name  */
438*5113495bSYour Name QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd(
439*5113495bSYour Name 			wmi_unified_t wmi_handle,
440*5113495bSYour Name 			struct wmi_twt_btwt_invite_sta_cmd_param *params);
441*5113495bSYour Name 
442*5113495bSYour Name /**
443*5113495bSYour Name  * wmi_unified_twt_btwt_remove_sta_cmd() - Send WMI command for bTWT sta kickoff
444*5113495bSYour Name  * @wmi_handle: wmi handle
445*5113495bSYour Name  * @params: Parameters to be configured
446*5113495bSYour Name  *
447*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
448*5113495bSYour Name  */
449*5113495bSYour Name QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd(
450*5113495bSYour Name 			wmi_unified_t wmi_handle,
451*5113495bSYour Name 			struct wmi_twt_btwt_remove_sta_cmd_param *params);
452*5113495bSYour Name #endif
453*5113495bSYour Name 
454*5113495bSYour Name /**
455*5113495bSYour Name  * wmi_extract_twt_enable_comp_event() - Extract WMI event params for TWT enable
456*5113495bSYour Name  *                               completion event
457*5113495bSYour Name  * @wmi_handle: wmi handle
458*5113495bSYour Name  * @evt_buf: Pointer event buffer
459*5113495bSYour Name  * @params: Parameters to extract
460*5113495bSYour Name  *
461*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
462*5113495bSYour Name  */
463*5113495bSYour Name QDF_STATUS wmi_extract_twt_enable_comp_event(
464*5113495bSYour Name 		wmi_unified_t wmi_handle,
465*5113495bSYour Name 		uint8_t *evt_buf,
466*5113495bSYour Name 		struct wmi_twt_enable_complete_event_param *params);
467*5113495bSYour Name 
468*5113495bSYour Name /**
469*5113495bSYour Name  * wmi_extract_twt_disable_comp_event() - Extract WMI event params for TWT
470*5113495bSYour Name  *                               disable completion event
471*5113495bSYour Name  * @wmi_handle: wmi handle
472*5113495bSYour Name  * @evt_buf: Pointer event buffer
473*5113495bSYour Name  * @params: Parameters to extract
474*5113495bSYour Name  *
475*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
476*5113495bSYour Name  */
477*5113495bSYour Name QDF_STATUS wmi_extract_twt_disable_comp_event(
478*5113495bSYour Name 		wmi_unified_t wmi_handle,
479*5113495bSYour Name 		uint8_t *evt_buf,
480*5113495bSYour Name 		struct wmi_twt_disable_complete_event *params);
481*5113495bSYour Name 
482*5113495bSYour Name /**
483*5113495bSYour Name  * wmi_extract_twt_add_dialog_comp_event() - Extract WMI event params for TWT
484*5113495bSYour Name  *                               add dialog completion event
485*5113495bSYour Name  * @wmi_handle: wmi handle
486*5113495bSYour Name  * @evt_buf: Pointer event buffer
487*5113495bSYour Name  * @params: Parameters to extract
488*5113495bSYour Name  *
489*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
490*5113495bSYour Name  */
491*5113495bSYour Name QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
492*5113495bSYour Name 		wmi_unified_t wmi_handle,
493*5113495bSYour Name 		uint8_t *evt_buf,
494*5113495bSYour Name 		struct wmi_twt_add_dialog_complete_event_param *params);
495*5113495bSYour Name 
496*5113495bSYour Name /**
497*5113495bSYour Name  * wmi_extract_twt_add_dialog_comp_additional_params() - Extracts additional
498*5113495bSYour Name  * twt parameters, as part of add dialog completion event
499*5113495bSYour Name  * @wmi_handle: wmi handle
500*5113495bSYour Name  * @evt_buf: Pointer event buffer
501*5113495bSYour Name  * @evt_buf_len: length of the add dialog event buffer
502*5113495bSYour Name  * @idx: index of num_twt_params to extract
503*5113495bSYour Name  * @additional_params: additional parameters to extract
504*5113495bSYour Name  *
505*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
506*5113495bSYour Name  */
507*5113495bSYour Name QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params(
508*5113495bSYour Name 		wmi_unified_t wmi_handle, uint8_t *evt_buf,
509*5113495bSYour Name 		uint32_t evt_buf_len, uint32_t idx,
510*5113495bSYour Name 		struct wmi_twt_add_dialog_additional_params *additional_params);
511*5113495bSYour Name 
512*5113495bSYour Name /**
513*5113495bSYour Name  * wmi_extract_twt_del_dialog_comp_event() - Extract WMI event params for TWT
514*5113495bSYour Name  *                               delete dialog completion event
515*5113495bSYour Name  * @wmi_handle: wmi handle
516*5113495bSYour Name  * @evt_buf: Pointer event buffer
517*5113495bSYour Name  * @params: Parameters to extract
518*5113495bSYour Name  *
519*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
520*5113495bSYour Name  */
521*5113495bSYour Name QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
522*5113495bSYour Name 		wmi_unified_t wmi_handle,
523*5113495bSYour Name 		uint8_t *evt_buf,
524*5113495bSYour Name 		struct wmi_twt_del_dialog_complete_event_param *params);
525*5113495bSYour Name 
526*5113495bSYour Name /**
527*5113495bSYour Name  * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT
528*5113495bSYour Name  *                               pause dialog completion event
529*5113495bSYour Name  * @wmi_handle: wmi handle
530*5113495bSYour Name  * @evt_buf: Pointer event buffer
531*5113495bSYour Name  * @params: Parameters to extract
532*5113495bSYour Name  *
533*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
534*5113495bSYour Name  */
535*5113495bSYour Name QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
536*5113495bSYour Name 		wmi_unified_t wmi_handle,
537*5113495bSYour Name 		uint8_t *evt_buf,
538*5113495bSYour Name 		struct wmi_twt_pause_dialog_complete_event_param *params);
539*5113495bSYour Name 
540*5113495bSYour Name /**
541*5113495bSYour Name  * wmi_extract_twt_nudge_dialog_comp_event() - Extract WMI event params for TWT
542*5113495bSYour Name  *                               nudge dialog completion event
543*5113495bSYour Name  * @wmi_handle: wmi handle
544*5113495bSYour Name  * @evt_buf: Pointer event buffer
545*5113495bSYour Name  * @params: Parameters to extract
546*5113495bSYour Name  *
547*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
548*5113495bSYour Name  */
549*5113495bSYour Name QDF_STATUS wmi_extract_twt_nudge_dialog_comp_event(
550*5113495bSYour Name 		wmi_unified_t wmi_handle,
551*5113495bSYour Name 		uint8_t *evt_buf,
552*5113495bSYour Name 		struct wmi_twt_nudge_dialog_complete_event_param *params);
553*5113495bSYour Name 
554*5113495bSYour Name /**
555*5113495bSYour Name  * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
556*5113495bSYour Name  *                               resume dialog completion event
557*5113495bSYour Name  * @wmi_handle: wmi handle
558*5113495bSYour Name  * @evt_buf: Pointer event buffer
559*5113495bSYour Name  * @params: Parameters to extract
560*5113495bSYour Name  *
561*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
562*5113495bSYour Name  */
563*5113495bSYour Name QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
564*5113495bSYour Name 		wmi_unified_t wmi_handle,
565*5113495bSYour Name 		uint8_t *evt_buf,
566*5113495bSYour Name 		struct wmi_twt_resume_dialog_complete_event_param *params);
567*5113495bSYour Name 
568*5113495bSYour Name /**
569*5113495bSYour Name  * wmi_extract_twt_notify_event() - Extract WMI event params for TWT
570*5113495bSYour Name  *                                  notify event
571*5113495bSYour Name  * @wmi_handle: wmi handle
572*5113495bSYour Name  * @evt_buf: Pointer event buffer
573*5113495bSYour Name  * @params: Parameters to extract
574*5113495bSYour Name  *
575*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
576*5113495bSYour Name  */
577*5113495bSYour Name QDF_STATUS wmi_extract_twt_notify_event(
578*5113495bSYour Name 		wmi_unified_t wmi_handle,
579*5113495bSYour Name 		uint8_t *evt_buf,
580*5113495bSYour Name 		struct wmi_twt_notify_event_param *params);
581*5113495bSYour Name 
582*5113495bSYour Name #ifdef WLAN_SUPPORT_BCAST_TWT
583*5113495bSYour Name /**
584*5113495bSYour Name  * wmi_extract_twt_btwt_invite_sta_comp_event() - Extract WMI event params for
585*5113495bSYour Name  *                          BTWT sta invitation completion event
586*5113495bSYour Name  * @wmi_handle: wmi handle
587*5113495bSYour Name  * @evt_buf: Pointer event buffer
588*5113495bSYour Name  * @params: Parameters to extract
589*5113495bSYour Name  *
590*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
591*5113495bSYour Name  */
592*5113495bSYour Name QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
593*5113495bSYour Name 		wmi_unified_t wmi_handle,
594*5113495bSYour Name 		uint8_t *evt_buf,
595*5113495bSYour Name 		struct wmi_twt_btwt_invite_sta_complete_event_param *params);
596*5113495bSYour Name 
597*5113495bSYour Name /**
598*5113495bSYour Name  * wmi_extract_twt_btwt_remove_sta_comp_event() - Extract WMI event params for
599*5113495bSYour Name  *                          BTWT sta kickoff completion event
600*5113495bSYour Name  * @wmi_handle: wmi handle
601*5113495bSYour Name  * @evt_buf: Pointer event buffer
602*5113495bSYour Name  * @params: Parameters to extract
603*5113495bSYour Name  *
604*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
605*5113495bSYour Name  */
606*5113495bSYour Name QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
607*5113495bSYour Name 		wmi_unified_t wmi_handle,
608*5113495bSYour Name 		uint8_t *evt_buf,
609*5113495bSYour Name 		struct wmi_twt_btwt_remove_sta_complete_event_param *params);
610*5113495bSYour Name #endif
611*5113495bSYour Name 
612*5113495bSYour Name /**
613*5113495bSYour Name  * wmi_extract_twt_session_stats_event() - Extract WMI event params for TWT
614*5113495bSYour Name  *                               session stats event
615*5113495bSYour Name  * @wmi_handle: wmi handle
616*5113495bSYour Name  * @evt_buf: Pointer event buffer
617*5113495bSYour Name  * @params: Parameters to extract
618*5113495bSYour Name  *
619*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
620*5113495bSYour Name  */
621*5113495bSYour Name QDF_STATUS wmi_extract_twt_session_stats_event(
622*5113495bSYour Name 		wmi_unified_t wmi_handle,
623*5113495bSYour Name 		uint8_t *evt_buf,
624*5113495bSYour Name 		struct wmi_twt_session_stats_event_param *params);
625*5113495bSYour Name 
626*5113495bSYour Name /**
627*5113495bSYour Name  * wmi_extract_twt_session_stats_data() - Extract one TWT session from TWT
628*5113495bSYour Name  *                               session stats event
629*5113495bSYour Name  * @wmi_handle: wmi handle
630*5113495bSYour Name  * @evt_buf: Pointer event buffer
631*5113495bSYour Name  * @params: Parameters to extract
632*5113495bSYour Name  * @session: Session struct to save one TWT session
633*5113495bSYour Name  * @idx: TWT session index
634*5113495bSYour Name  *
635*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
636*5113495bSYour Name  */
637*5113495bSYour Name QDF_STATUS wmi_extract_twt_session_stats_data(
638*5113495bSYour Name 		wmi_unified_t wmi_handle,
639*5113495bSYour Name 		uint8_t *evt_buf,
640*5113495bSYour Name 		struct wmi_twt_session_stats_event_param *params,
641*5113495bSYour Name 		struct wmi_host_twt_session_stats_info *session,
642*5113495bSYour Name 		uint32_t idx);
643*5113495bSYour Name 
644*5113495bSYour Name void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle);
645*5113495bSYour Name 
646*5113495bSYour Name /**
647*5113495bSYour Name  * wmi_extract_twt_cap_service_ready_ext2: Extract TWT bitmap value
648*5113495bSYour Name  *                                         received through extended
649*5113495bSYour Name  *                                         service ready2 event
650*5113495bSYour Name  * @wmi_handle: WMI handle
651*5113495bSYour Name  * @evt_buf: Event buffer
652*5113495bSYour Name  * @params: Pointer to TWT bitmap param
653*5113495bSYour Name  *
654*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
655*5113495bSYour Name  */
656*5113495bSYour Name QDF_STATUS wmi_extract_twt_cap_service_ready_ext2(
657*5113495bSYour Name 			wmi_unified_t wmi_handle,
658*5113495bSYour Name 			uint8_t *evt_buf,
659*5113495bSYour Name 			struct wmi_twt_cap_bitmap_params *params);
660*5113495bSYour Name 
661*5113495bSYour Name /**
662*5113495bSYour Name  * wmi_extract_twt_ack_comp_event() - Extract WMI event params for TWT ack event
663*5113495bSYour Name  *
664*5113495bSYour Name  * @wmi_handle: wmi handle
665*5113495bSYour Name  * @evt_buf: Pointer event buffer
666*5113495bSYour Name  * @param: Parameters to extract
667*5113495bSYour Name  *
668*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
669*5113495bSYour Name  */
670*5113495bSYour Name QDF_STATUS wmi_extract_twt_ack_comp_event(
671*5113495bSYour Name 			wmi_unified_t wmi_handle,
672*5113495bSYour Name 			uint8_t *evt_buf,
673*5113495bSYour Name 			struct wmi_twt_ack_complete_event_param *param);
674*5113495bSYour Name #else
wmi_twt_attach_tlv(struct wmi_unified * wmi_handle)675*5113495bSYour Name static inline void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle)
676*5113495bSYour Name {
677*5113495bSYour Name }
678*5113495bSYour Name #endif
679*5113495bSYour Name #endif /* _WMI_UNIFIED_TWT_API_H_ */
680