xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_twt_api.c (revision 45a38684b07295822dc8eba39e293408f203eec8)
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 		struct wmi_twt_add_dialog_additional_params *additional_params,
155 		uint32_t idx)
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, additional_params, idx);
161 
162 	return QDF_STATUS_E_FAILURE;
163 }
164 
165 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
166 		wmi_unified_t wmi_handle,
167 		uint8_t *evt_buf,
168 		struct wmi_twt_del_dialog_complete_event_param *params)
169 {
170 	if (wmi_handle->ops->extract_twt_del_dialog_comp_event)
171 		return wmi_handle->ops->extract_twt_del_dialog_comp_event(
172 				wmi_handle, evt_buf, params);
173 
174 	return QDF_STATUS_E_FAILURE;
175 }
176 
177 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
178 		wmi_unified_t wmi_handle,
179 		uint8_t *evt_buf,
180 		struct wmi_twt_pause_dialog_complete_event_param *params)
181 {
182 	if (wmi_handle->ops->extract_twt_pause_dialog_comp_event)
183 		return wmi_handle->ops->extract_twt_pause_dialog_comp_event(
184 				wmi_handle, evt_buf, params);
185 
186 	return QDF_STATUS_E_FAILURE;
187 }
188 
189 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
190 		wmi_unified_t wmi_handle,
191 		uint8_t *evt_buf,
192 		struct wmi_twt_resume_dialog_complete_event_param *params)
193 {
194 	if (wmi_handle->ops->extract_twt_resume_dialog_comp_event)
195 		return wmi_handle->ops->extract_twt_resume_dialog_comp_event(
196 				wmi_handle, evt_buf, params);
197 
198 	return QDF_STATUS_E_FAILURE;
199 }
200 
201 #ifdef WLAN_SUPPORT_BCAST_TWT
202 QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
203 		wmi_unified_t wmi_handle,
204 		uint8_t *evt_buf,
205 		struct wmi_twt_btwt_invite_sta_complete_event_param *params)
206 {
207 	if (wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event)
208 		return wmi_handle->ops->extract_twt_btwt_invite_sta_comp_event(
209 				wmi_handle, evt_buf, params);
210 
211 	return QDF_STATUS_E_FAILURE;
212 }
213 
214 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
215 		wmi_unified_t wmi_handle,
216 		uint8_t *evt_buf,
217 		struct wmi_twt_btwt_remove_sta_complete_event_param *params)
218 {
219 	if (wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event)
220 		return wmi_handle->ops->extract_twt_btwt_remove_sta_comp_event(
221 				wmi_handle, evt_buf, params);
222 
223 	return QDF_STATUS_E_FAILURE;
224 }
225 #endif
226 
227 QDF_STATUS wmi_extract_twt_session_stats_event(
228 		wmi_unified_t wmi_handle,
229 		uint8_t *evt_buf,
230 		struct wmi_twt_session_stats_event_param *params)
231 {
232 	if (wmi_handle->ops->extract_twt_session_stats_event)
233 		return wmi_handle->ops->extract_twt_session_stats_event(
234 				wmi_handle, evt_buf, params);
235 
236 	return QDF_STATUS_E_FAILURE;
237 }
238 
239 QDF_STATUS wmi_extract_twt_session_stats_data(
240 		wmi_unified_t wmi_handle,
241 		uint8_t *evt_buf,
242 		struct wmi_twt_session_stats_event_param *params,
243 		struct wmi_host_twt_session_stats_info *session,
244 		uint32_t idx)
245 {
246 	if (wmi_handle->ops->extract_twt_session_stats_data)
247 		return wmi_handle->ops->extract_twt_session_stats_data(
248 				wmi_handle, evt_buf, params, session, idx);
249 
250 	return QDF_STATUS_E_FAILURE;
251 }
252