xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_twt_api.c (revision eb134979c1cacbd1eb12caa116020b86fad96e1c)
1 /*
2  * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
3  *
4  * 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  * DOC: Implement API's specific to TWT component.
20  */
21 
22 #include "wmi_unified_priv.h"
23 #include "wmi_unified_twt_api.h"
24 
25 
26 QDF_STATUS
27 wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle,
28 			   struct wmi_twt_enable_param *params)
29 {
30 	if (wmi_handle->ops->send_twt_enable_cmd)
31 		return wmi_handle->ops->send_twt_enable_cmd(
32 				wmi_handle, params);
33 
34 	return QDF_STATUS_E_FAILURE;
35 }
36 
37 QDF_STATUS
38 wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle,
39 			    struct wmi_twt_disable_param *params)
40 {
41 	if (wmi_handle->ops->send_twt_disable_cmd)
42 		return wmi_handle->ops->send_twt_disable_cmd(
43 				wmi_handle, params);
44 
45 	return QDF_STATUS_E_FAILURE;
46 }
47 
48 QDF_STATUS
49 wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle,
50 			       struct wmi_twt_add_dialog_param *params)
51 {
52 	if (wmi_handle->ops->send_twt_add_dialog_cmd)
53 		return wmi_handle->ops->send_twt_add_dialog_cmd(
54 				wmi_handle, params);
55 
56 	return QDF_STATUS_E_FAILURE;
57 }
58 
59 QDF_STATUS
60 wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle,
61 			       struct wmi_twt_del_dialog_param *params)
62 {
63 	if (wmi_handle->ops->send_twt_del_dialog_cmd)
64 		return wmi_handle->ops->send_twt_del_dialog_cmd(
65 				wmi_handle, params);
66 
67 	return QDF_STATUS_E_FAILURE;
68 }
69 
70 QDF_STATUS
71 wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
72 				 struct wmi_twt_pause_dialog_cmd_param *params)
73 {
74 	if (wmi_handle->ops->send_twt_pause_dialog_cmd)
75 		return wmi_handle->ops->send_twt_pause_dialog_cmd(
76 				wmi_handle, params);
77 
78 	return QDF_STATUS_E_FAILURE;
79 }
80 
81 QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
82 			wmi_unified_t wmi_handle,
83 			struct wmi_twt_resume_dialog_cmd_param *params)
84 {
85 	if (wmi_handle->ops->send_twt_resume_dialog_cmd)
86 		return wmi_handle->ops->send_twt_resume_dialog_cmd(
87 				wmi_handle, params);
88 
89 	return QDF_STATUS_E_FAILURE;
90 }
91 
92 #ifdef WLAN_SUPPORT_BCAST_TWT
93 QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd(
94 			wmi_unified_t wmi_handle,
95 			struct wmi_twt_btwt_invite_sta_cmd_param *params)
96 {
97 	if (wmi_handle->ops->send_twt_btwt_invite_sta_cmd)
98 		return wmi_handle->ops->send_twt_btwt_invite_sta_cmd(
99 				wmi_handle, params);
100 
101 	return QDF_STATUS_E_FAILURE;
102 }
103 
104 QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd(
105 			wmi_unified_t wmi_handle,
106 			struct wmi_twt_btwt_remove_sta_cmd_param *params)
107 {
108 	if (wmi_handle->ops->send_twt_btwt_remove_sta_cmd)
109 		return wmi_handle->ops->send_twt_btwt_remove_sta_cmd(
110 				wmi_handle, params);
111 
112 	return QDF_STATUS_E_FAILURE;
113 }
114 #endif
115 
116 QDF_STATUS wmi_extract_twt_enable_comp_event(
117 			wmi_unified_t wmi_handle,
118 			uint8_t *evt_buf,
119 			struct wmi_twt_enable_complete_event_param *params)
120 {
121 	if (wmi_handle->ops->extract_twt_enable_comp_event)
122 		return wmi_handle->ops->extract_twt_enable_comp_event(
123 				wmi_handle, evt_buf, params);
124 
125 	return QDF_STATUS_E_FAILURE;
126 }
127 
128 QDF_STATUS wmi_extract_twt_disable_comp_event(
129 			wmi_unified_t wmi_handle,
130 			uint8_t *evt_buf,
131 			struct wmi_twt_disable_complete_event *params)
132 {
133 	if (wmi_handle->ops->extract_twt_disable_comp_event)
134 		return wmi_handle->ops->extract_twt_disable_comp_event(
135 				wmi_handle, evt_buf, params);
136 
137 	return QDF_STATUS_E_FAILURE;
138 }
139 
140 QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
141 			wmi_unified_t wmi_handle,
142 			uint8_t *evt_buf,
143 			struct wmi_twt_add_dialog_complete_event_param *params)
144 {
145 	if (wmi_handle->ops->extract_twt_add_dialog_comp_event)
146 		return wmi_handle->ops->extract_twt_add_dialog_comp_event(
147 				wmi_handle, evt_buf, params);
148 
149 	return QDF_STATUS_E_FAILURE;
150 }
151 
152 QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params(
153 		wmi_unified_t wmi_handle, uint8_t *evt_buf,
154 		uint32_t evt_buf_len, uint32_t idx,
155 		struct wmi_twt_add_dialog_additional_params *additional_params)
156 {
157 	if (wmi_handle->ops->extract_twt_add_dialog_comp_additional_params)
158 		return wmi_handle->ops->
159 			extract_twt_add_dialog_comp_additional_params(
160 			wmi_handle, evt_buf, evt_buf_len, idx,
161 			additional_params);
162 
163 	return QDF_STATUS_E_FAILURE;
164 }
165 
166 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
167 		wmi_unified_t wmi_handle,
168 		uint8_t *evt_buf,
169 		struct wmi_twt_del_dialog_complete_event_param *params)
170 {
171 	if (wmi_handle->ops->extract_twt_del_dialog_comp_event)
172 		return wmi_handle->ops->extract_twt_del_dialog_comp_event(
173 				wmi_handle, evt_buf, params);
174 
175 	return QDF_STATUS_E_FAILURE;
176 }
177 
178 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
179 		wmi_unified_t wmi_handle,
180 		uint8_t *evt_buf,
181 		struct wmi_twt_pause_dialog_complete_event_param *params)
182 {
183 	if (wmi_handle->ops->extract_twt_pause_dialog_comp_event)
184 		return wmi_handle->ops->extract_twt_pause_dialog_comp_event(
185 				wmi_handle, evt_buf, params);
186 
187 	return QDF_STATUS_E_FAILURE;
188 }
189 
190 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
191 		wmi_unified_t wmi_handle,
192 		uint8_t *evt_buf,
193 		struct wmi_twt_resume_dialog_complete_event_param *params)
194 {
195 	if (wmi_handle->ops->extract_twt_resume_dialog_comp_event)
196 		return wmi_handle->ops->extract_twt_resume_dialog_comp_event(
197 				wmi_handle, evt_buf, params);
198 
199 	return QDF_STATUS_E_FAILURE;
200 }
201 
202 #ifdef WLAN_SUPPORT_BCAST_TWT
203 QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
204 		wmi_unified_t wmi_handle,
205 		uint8_t *evt_buf,
206 		struct wmi_twt_btwt_invite_sta_complete_event_param *params)
207 {
208 	if (wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event)
209 		return wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event(
210 				wmi_handle, evt_buf, params);
211 
212 	return QDF_STATUS_E_FAILURE;
213 }
214 
215 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
216 		wmi_unified_t wmi_handle,
217 		uint8_t *evt_buf,
218 		struct wmi_twt_btwt_remove_sta_complete_event_param *params)
219 {
220 	if (wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event)
221 		return wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event(
222 				wmi_handle, evt_buf, params);
223 
224 	return QDF_STATUS_E_FAILURE;
225 }
226 #endif
227 
228 QDF_STATUS wmi_extract_twt_session_stats_event(
229 		wmi_unified_t wmi_handle,
230 		uint8_t *evt_buf,
231 		struct wmi_twt_session_stats_event_param *params)
232 {
233 	if (wmi_handle->ops->extract_twt_session_stats_event)
234 		return wmi_handle->ops->extract_twt_session_stats_event(
235 				wmi_handle, evt_buf, params);
236 
237 	return QDF_STATUS_E_FAILURE;
238 }
239 
240 QDF_STATUS wmi_extract_twt_session_stats_data(
241 		wmi_unified_t wmi_handle,
242 		uint8_t *evt_buf,
243 		struct wmi_twt_session_stats_event_param *params,
244 		struct wmi_host_twt_session_stats_info *session,
245 		uint32_t idx)
246 {
247 	if (wmi_handle->ops->extract_twt_session_stats_data)
248 		return wmi_handle->ops->extract_twt_session_stats_data(
249 				wmi_handle, evt_buf, params, session, idx);
250 
251 	return QDF_STATUS_E_FAILURE;
252 }
253