xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_twt_api.h (revision 503663c6daafffe652fa360bde17243568cd6d2a)
1 
2 /*
3  * Copyright (c) 2018-2019 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 /**
96  * wmi_extract_twt_enable_comp_event() - Extract WMI event params for TWT enable
97  *                               completion event
98  * @wmi_handle: wmi handle
99  * @evt_buf: Pointer event buffer
100  * @params: Parameters to extract
101  *
102  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
103  */
104 QDF_STATUS wmi_extract_twt_enable_comp_event(
105 		wmi_unified_t wmi_handle,
106 		uint8_t *evt_buf,
107 		struct wmi_twt_enable_complete_event_param *params);
108 
109 /**
110  * wmi_extract_twt_disable_comp_event() - Extract WMI event params for TWT
111  *                               disable completion event
112  * @wmi_handle: wmi handle
113  * @evt_buf: Pointer event buffer
114  * @params: Parameters to extract
115  *
116  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
117  */
118 QDF_STATUS wmi_extract_twt_disable_comp_event(
119 		wmi_unified_t wmi_handle,
120 		uint8_t *evt_buf,
121 		struct wmi_twt_disable_complete_event *params);
122 
123 /**
124  * wmi_extract_twt_add_dialog_comp_event() - Extract WMI event params for TWT
125  *                               add dialog completion event
126  * @wmi_hdl: wmi handle
127  * @evt_buf: Pointer event buffer
128  * @params: Parameters to extract
129  *
130  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
131  */
132 QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
133 		wmi_unified_t wmi_handle,
134 		uint8_t *evt_buf,
135 		struct wmi_twt_add_dialog_complete_event_param *params);
136 
137 /**
138  * wmi_extract_twt_del_dialog_comp_event() - Extract WMI event params for TWT
139  *                               delete dialog completion event
140  * @wmi_hdl: wmi handle
141  * @evt_buf: Pointer event buffer
142  * @params: Parameters to extract
143  *
144  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
145  */
146 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
147 		wmi_unified_t wmi_handle,
148 		uint8_t *evt_buf,
149 		struct wmi_twt_del_dialog_complete_event_param *params);
150 
151 /**
152  * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT
153  *                               pause dialog completion event
154  * @wmi_handle: wmi handle
155  * @evt_buf: Pointer event buffer
156  * @params: Parameters to extract
157  *
158  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
159  */
160 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
161 		wmi_unified_t wmi_handle,
162 		uint8_t *evt_buf,
163 		struct wmi_twt_pause_dialog_complete_event_param *params);
164 
165 /**
166  * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
167  *                               resume dialog completion event
168  * @wmi_handle: wmi handle
169  * @evt_buf: Pointer event buffer
170  * @params: Parameters to extract
171  *
172  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
173  */
174 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
175 		wmi_unified_t wmi_handle,
176 		uint8_t *evt_buf,
177 		struct wmi_twt_resume_dialog_complete_event_param *params);
178 
179 #ifdef WLAN_SUPPORT_TWT
180 void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle);
181 #else
182 static void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle)
183 {
184 	return;
185 }
186 #endif
187 
188 #endif /* _WMI_UNIFIED_TWT_API_H_ */
189