xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_twt_api.h (revision 45a38684b07295822dc8eba39e293408f203eec8)
1 
2 /*
3  * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 /**
20  * DOC: Implement API's specific to TWT component.
21  */
22 
23 #ifndef _WMI_UNIFIED_TWT_API_H_
24 #define _WMI_UNIFIED_TWT_API_H_
25 
26 #include "wmi_unified_twt_param.h"
27 
28 
29 /**
30  * wmi_unified_twt_enable_cmd() - Send WMI command to Enable TWT
31  * @wmi_handle: wmi handle
32  * @params: Parameters to be configured
33  *
34  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
35  */
36 QDF_STATUS
37 wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle,
38 			   struct wmi_twt_enable_param *params);
39 
40 /**
41  * wmi_unified_twt_disable_cmd() - Send WMI command to disable TWT
42  * @wmi_handle: wmi handle
43  * @params: Parameters to be configured
44  *
45  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
46  */
47 QDF_STATUS
48 wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle,
49 			    struct wmi_twt_disable_param *params);
50 
51 /**
52  * wmi_unified_twt_add_dialog_cmd() - Send WMI command to add TWT dialog
53  * @wmi_handle: wmi handle
54  * @params: Parameters to be configured
55  *
56  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
57  */
58 QDF_STATUS
59 wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle,
60 			       struct wmi_twt_add_dialog_param *params);
61 
62 /**
63  * wmi_unified_twt_del_dialog_cmd() - Send WMI command to delete TWT dialog
64  * @wmi_handle: wmi handle
65  * @params: Parameters to be configured
66  *
67  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
68  */
69 QDF_STATUS
70 wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle,
71 			       struct wmi_twt_del_dialog_param *params);
72 
73 /**
74  * wmi_unified_twt_pause_dialog_cmd() - Send WMI command to pause TWT dialog
75  * @wmi_handle: wmi handle
76  * @params: Parameters to be configured
77  *
78  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
79  */
80 QDF_STATUS
81 wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
82 				 struct wmi_twt_pause_dialog_cmd_param *params);
83 
84 /**
85  * wmi_unified_twt_resume_dialog_cmd() - Send WMI command to resume TWT dialog
86  * @wmi_handle: wmi handle
87  * @params: Parameters to be configured
88  *
89  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
90  */
91 QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
92 			wmi_unified_t wmi_handle,
93 			struct wmi_twt_resume_dialog_cmd_param *params);
94 
95 #ifdef WLAN_SUPPORT_BCAST_TWT
96 /**
97  * wmi_unified_twt_btwt_invite_sta_cmd() - Send WMI command for bTWT sta
98  *                               invitation
99  * @wmi_handle: wmi handle
100  * @params: Parameters to be configured
101  *
102  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
103  */
104 QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd(
105 			wmi_unified_t wmi_handle,
106 			struct wmi_twt_btwt_invite_sta_cmd_param *params);
107 
108 /**
109  * wmi_unified_twt_btwt_remove_sta_cmd() - Send WMI command for bTWT sta kickoff
110  * @wmi_handle: wmi handle
111  * @params: Parameters to be configured
112  *
113  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
114  */
115 QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd(
116 			wmi_unified_t wmi_handle,
117 			struct wmi_twt_btwt_remove_sta_cmd_param *params);
118 #endif
119 
120 /**
121  * wmi_extract_twt_enable_comp_event() - Extract WMI event params for TWT enable
122  *                               completion event
123  * @wmi_handle: wmi handle
124  * @evt_buf: Pointer event buffer
125  * @params: Parameters to extract
126  *
127  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
128  */
129 QDF_STATUS wmi_extract_twt_enable_comp_event(
130 		wmi_unified_t wmi_handle,
131 		uint8_t *evt_buf,
132 		struct wmi_twt_enable_complete_event_param *params);
133 
134 /**
135  * wmi_extract_twt_disable_comp_event() - Extract WMI event params for TWT
136  *                               disable completion event
137  * @wmi_handle: wmi handle
138  * @evt_buf: Pointer event buffer
139  * @params: Parameters to extract
140  *
141  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
142  */
143 QDF_STATUS wmi_extract_twt_disable_comp_event(
144 		wmi_unified_t wmi_handle,
145 		uint8_t *evt_buf,
146 		struct wmi_twt_disable_complete_event *params);
147 
148 /**
149  * wmi_extract_twt_add_dialog_comp_event() - Extract WMI event params for TWT
150  *                               add dialog completion event
151  * @wmi_hdl: wmi handle
152  * @evt_buf: Pointer event buffer
153  * @params: Parameters to extract
154  *
155  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
156  */
157 QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
158 		wmi_unified_t wmi_handle,
159 		uint8_t *evt_buf,
160 		struct wmi_twt_add_dialog_complete_event_param *params);
161 
162 /**
163  * wmi_extract_twt_add_dialog_comp_additional_params() - Extracts additional
164  * twt parameters, as part of add dialog completion event
165  * @wmi_hdl: wmi handle
166  * @evt_buf: Pointer event buffer
167  * @additional_params: additional parameters to extract
168  * @idx: index of num_twt_params to extract
169  *
170  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
171  */
172 QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params(
173 		wmi_unified_t wmi_handle, uint8_t *evt_buf,
174 		struct wmi_twt_add_dialog_additional_params *additional_params,
175 		uint32_t idx);
176 
177 /**
178  * wmi_extract_twt_del_dialog_comp_event() - Extract WMI event params for TWT
179  *                               delete dialog completion event
180  * @wmi_hdl: wmi handle
181  * @evt_buf: Pointer event buffer
182  * @params: Parameters to extract
183  *
184  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
185  */
186 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
187 		wmi_unified_t wmi_handle,
188 		uint8_t *evt_buf,
189 		struct wmi_twt_del_dialog_complete_event_param *params);
190 
191 /**
192  * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT
193  *                               pause dialog completion event
194  * @wmi_handle: wmi handle
195  * @evt_buf: Pointer event buffer
196  * @params: Parameters to extract
197  *
198  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
199  */
200 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
201 		wmi_unified_t wmi_handle,
202 		uint8_t *evt_buf,
203 		struct wmi_twt_pause_dialog_complete_event_param *params);
204 
205 /**
206  * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
207  *                               resume dialog completion event
208  * @wmi_handle: wmi handle
209  * @evt_buf: Pointer event buffer
210  * @params: Parameters to extract
211  *
212  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
213  */
214 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
215 		wmi_unified_t wmi_handle,
216 		uint8_t *evt_buf,
217 		struct wmi_twt_resume_dialog_complete_event_param *params);
218 
219 #ifdef WLAN_SUPPORT_BCAST_TWT
220 /**
221  * wmi_extract_twt_btwt_invite_sta_comp_event() - Extract WMI event params for
222  *                          BTWT sta invitation completion event
223  * @wmi_handle: wmi handle
224  * @evt_buf: Pointer event buffer
225  * @params: Parameters to extract
226  *
227  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
228  */
229 QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
230 		wmi_unified_t wmi_handle,
231 		uint8_t *evt_buf,
232 		struct wmi_twt_btwt_invite_sta_complete_event_param *params);
233 
234 /**
235  * wmi_extract_twt_btwt_remove_sta_comp_event() - Extract WMI event params for
236  *                          BTWT sta kickoff completion event
237  * @wmi_handle: wmi handle
238  * @evt_buf: Pointer event buffer
239  * @params: Parameters to extract
240  *
241  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
242  */
243 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
244 		wmi_unified_t wmi_handle,
245 		uint8_t *evt_buf,
246 		struct wmi_twt_btwt_remove_sta_complete_event_param *params);
247 #endif
248 
249 /**
250  * wmi_extract_twt_session_stats_event() - Extract WMI event params for TWT
251  *                               session stats event
252  * @wmi_handle: wmi handle
253  * @evt_buf: Pointer event buffer
254  * @params: Parameters to extract
255  *
256  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
257  */
258 QDF_STATUS wmi_extract_twt_session_stats_event(
259 		wmi_unified_t wmi_handle,
260 		uint8_t *evt_buf,
261 		struct wmi_twt_session_stats_event_param *params);
262 
263 /**
264  * wmi_extract_twt_session_stats_data() - Extract one TWT session from TWT
265  *                               session stats event
266  * @wmi_handle: wmi handle
267  * @evt_buf: Pointer event buffer
268  * @params: Parameters to extract
269  * @session: Session struct to save one TWT session
270  * @idx: TWT session index
271  *
272  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
273  */
274 QDF_STATUS wmi_extract_twt_session_stats_data(
275 		wmi_unified_t wmi_handle,
276 		uint8_t *evt_buf,
277 		struct wmi_twt_session_stats_event_param *params,
278 		struct wmi_host_twt_session_stats_info *session,
279 		uint32_t idx);
280 
281 #ifdef WLAN_SUPPORT_TWT
282 void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle);
283 #else
284 static void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle)
285 {
286 	return;
287 }
288 #endif
289 
290 #endif /* _WMI_UNIFIED_TWT_API_H_ */
291