xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_twt_api.c (revision 6ecd284e5a94a1c96e26d571dd47419ac305990d)
1 /*
2  * Copyright (c) 2018 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 wmi_unified_twt_enable_cmd(void *wmi_hdl,
27 			struct wmi_twt_enable_param *params)
28 {
29 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
30 
31 	if (wmi_handle->ops->send_twt_enable_cmd)
32 		return wmi_handle->ops->send_twt_enable_cmd(
33 				wmi_handle, params);
34 
35 	return QDF_STATUS_E_FAILURE;
36 }
37 
38 QDF_STATUS wmi_unified_twt_disable_cmd(void *wmi_hdl,
39 			struct wmi_twt_disable_param *params)
40 {
41 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
42 
43 	if (wmi_handle->ops->send_twt_disable_cmd)
44 		return wmi_handle->ops->send_twt_disable_cmd(
45 				wmi_handle, params);
46 
47 	return QDF_STATUS_E_FAILURE;
48 }
49 
50 QDF_STATUS wmi_unified_twt_add_dialog_cmd(void *wmi_hdl,
51 			struct wmi_twt_add_dialog_param *params)
52 {
53 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
54 
55 	if (wmi_handle->ops->send_twt_add_dialog_cmd)
56 		return wmi_handle->ops->send_twt_add_dialog_cmd(
57 				wmi_handle, params);
58 
59 	return QDF_STATUS_E_FAILURE;
60 }
61 
62 QDF_STATUS wmi_unified_twt_del_dialog_cmd(void *wmi_hdl,
63 			struct wmi_twt_del_dialog_param *params)
64 {
65 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
66 
67 	if (wmi_handle->ops->send_twt_del_dialog_cmd)
68 		return wmi_handle->ops->send_twt_del_dialog_cmd(
69 				wmi_handle, params);
70 
71 	return QDF_STATUS_E_FAILURE;
72 }
73 
74 QDF_STATUS wmi_unified_twt_pause_dialog_cmd(void *wmi_hdl,
75 			struct wmi_twt_pause_dialog_cmd_param *params)
76 {
77 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
78 
79 	if (wmi_handle->ops->send_twt_pause_dialog_cmd)
80 		return wmi_handle->ops->send_twt_pause_dialog_cmd(
81 				wmi_handle, params);
82 
83 	return QDF_STATUS_E_FAILURE;
84 }
85 
86 QDF_STATUS wmi_unified_twt_resume_dialog_cmd(void *wmi_hdl,
87 			struct wmi_twt_resume_dialog_cmd_param *params)
88 {
89 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
90 
91 	if (wmi_handle->ops->send_twt_resume_dialog_cmd)
92 		return wmi_handle->ops->send_twt_resume_dialog_cmd(
93 				wmi_handle, params);
94 
95 	return QDF_STATUS_E_FAILURE;
96 }
97 
98 QDF_STATUS wmi_extract_twt_enable_comp_event(void *wmi_hdl,
99 			uint8_t *evt_buf,
100 			struct wmi_twt_enable_complete_event_param *params)
101 {
102 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
103 
104 	if (wmi_handle->ops->extract_twt_enable_comp_event)
105 		return wmi_handle->ops->extract_twt_enable_comp_event(
106 				wmi_handle, evt_buf, params);
107 
108 	return QDF_STATUS_E_FAILURE;
109 }
110 
111 QDF_STATUS wmi_extract_twt_disable_comp_event(void *wmi_hdl,
112 			uint8_t *evt_buf,
113 			struct wmi_twt_disable_complete_event *params)
114 {
115 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
116 
117 	if (wmi_handle->ops->extract_twt_disable_comp_event)
118 		return wmi_handle->ops->extract_twt_disable_comp_event(
119 				wmi_handle, evt_buf, params);
120 
121 	return QDF_STATUS_E_FAILURE;
122 }
123 
124 QDF_STATUS wmi_extract_twt_add_dialog_comp_event(void *wmi_hdl,
125 			uint8_t *evt_buf,
126 			struct wmi_twt_add_dialog_complete_event_param *params)
127 {
128 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
129 
130 	if (wmi_handle->ops->extract_twt_add_dialog_comp_event)
131 		return wmi_handle->ops->extract_twt_add_dialog_comp_event(
132 				wmi_handle, evt_buf, params);
133 
134 	return QDF_STATUS_E_FAILURE;
135 }
136 
137 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(void *wmi_hdl,
138 		uint8_t *evt_buf,
139 		struct wmi_twt_del_dialog_complete_event_param *params)
140 {
141 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
142 
143 	if (wmi_handle->ops->extract_twt_del_dialog_comp_event)
144 		return wmi_handle->ops->extract_twt_del_dialog_comp_event(
145 				wmi_handle, evt_buf, params);
146 
147 	return QDF_STATUS_E_FAILURE;
148 }
149 
150 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(void *wmi_hdl,
151 		uint8_t *evt_buf,
152 		struct wmi_twt_pause_dialog_complete_event_param *params)
153 {
154 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
155 
156 	if (wmi_handle->ops->extract_twt_pause_dialog_comp_event)
157 		return wmi_handle->ops->extract_twt_pause_dialog_comp_event(
158 				wmi_handle, evt_buf, params);
159 
160 	return QDF_STATUS_E_FAILURE;
161 }
162 
163 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(void *wmi_hdl,
164 		uint8_t *evt_buf,
165 		struct wmi_twt_resume_dialog_complete_event_param *params)
166 {
167 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
168 
169 	if (wmi_handle->ops->extract_twt_resume_dialog_comp_event)
170 		return wmi_handle->ops->extract_twt_resume_dialog_comp_event(
171 				wmi_handle, evt_buf, params);
172 
173 	return QDF_STATUS_E_FAILURE;
174 }
175