xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_twt_api.h (revision f28396d060cff5c6519f883cb28ae0116ce479f1)
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_del_dialog_comp_event() - Extract WMI event params for TWT
164  *                               delete dialog completion event
165  * @wmi_hdl: wmi handle
166  * @evt_buf: Pointer event buffer
167  * @params: Parameters to extract
168  *
169  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
170  */
171 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
172 		wmi_unified_t wmi_handle,
173 		uint8_t *evt_buf,
174 		struct wmi_twt_del_dialog_complete_event_param *params);
175 
176 /**
177  * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT
178  *                               pause dialog completion event
179  * @wmi_handle: wmi handle
180  * @evt_buf: Pointer event buffer
181  * @params: Parameters to extract
182  *
183  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
184  */
185 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
186 		wmi_unified_t wmi_handle,
187 		uint8_t *evt_buf,
188 		struct wmi_twt_pause_dialog_complete_event_param *params);
189 
190 /**
191  * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
192  *                               resume dialog completion event
193  * @wmi_handle: wmi handle
194  * @evt_buf: Pointer event buffer
195  * @params: Parameters to extract
196  *
197  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
198  */
199 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
200 		wmi_unified_t wmi_handle,
201 		uint8_t *evt_buf,
202 		struct wmi_twt_resume_dialog_complete_event_param *params);
203 
204 #ifdef WLAN_SUPPORT_BCAST_TWT
205 /**
206  * wmi_extract_twt_btwt_invite_sta_comp_event() - Extract WMI event params for
207  *                          BTWT sta invitation 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_btwt_invite_sta_comp_event(
215 		wmi_unified_t wmi_handle,
216 		uint8_t *evt_buf,
217 		struct wmi_twt_btwt_invite_sta_complete_event_param *params);
218 
219 /**
220  * wmi_extract_twt_btwt_remove_sta_comp_event() - Extract WMI event params for
221  *                          BTWT sta kickoff completion event
222  * @wmi_handle: wmi handle
223  * @evt_buf: Pointer event buffer
224  * @params: Parameters to extract
225  *
226  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
227  */
228 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
229 		wmi_unified_t wmi_handle,
230 		uint8_t *evt_buf,
231 		struct wmi_twt_btwt_remove_sta_complete_event_param *params);
232 #endif
233 
234 #ifdef WLAN_SUPPORT_TWT
235 void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle);
236 #else
237 static void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle)
238 {
239 	return;
240 }
241 #endif
242 
243 #endif /* _WMI_UNIFIED_TWT_API_H_ */
244