xref: /wlan-dirver/qca-wifi-host-cmn/target_if/twt/inc/target_if_ext_twt.h (revision d0c05845839e5f2ba5a8dcebe0cd3e4cd4e8dfcf)
1 /*
2  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 /**
18  *  DOC: target_if_ext_twt.h
19  *  This file contains twt component's target related APIs
20  */
21 
22 #ifndef _TARGET_IF_EXT_TWT_H_
23 #define _TARGET_IF_EXT_TWT_H_
24 
25 #include <wlan_lmac_if_def.h>
26 
27 #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
28 
29 /**
30  * target_if_twt_register_ext_events() - Register twt ext wmi events
31  * @psoc: psoc handle
32  *
33  * Register TWT ext (outside of qcacmn) WMI events
34  *
35  * return: QDF_STATUS
36  */
37 QDF_STATUS
38 target_if_twt_register_ext_events(struct wlan_objmgr_psoc *psoc);
39 
40 /**
41  * target_if_twt_deregister_ext_events() - De-register twt ext wmi events
42  * @psoc: psoc handle
43  *
44  * Register TWT ext (outside of qcacmn) WMI events
45  *
46  * return: QDF_STATUS
47  */
48 QDF_STATUS
49 target_if_twt_deregister_ext_events(struct wlan_objmgr_psoc *psoc);
50 
51 /**
52  * target_if_twt_register_ext_tx_ops() - Register twt tx ops
53  * @twt_tx_ops: twt_tx_ops structure
54  *
55  * return: QDF_STATUS
56  */
57 QDF_STATUS
58 target_if_twt_register_ext_tx_ops(struct wlan_lmac_if_twt_tx_ops *twt_tx_ops);
59 
60 /**
61  * target_if_twt_setup_req() - target if twt setup request
62  * @psoc: psoc handle
63  * @req: TWT add dialog request structure
64  *
65  * return: QDF_STATUS
66  */
67 QDF_STATUS
68 target_if_twt_setup_req(struct wlan_objmgr_psoc *psoc,
69 			struct twt_add_dialog_param *req);
70 
71 /**
72  * target_if_twt_teardown_req() - target if twt teardown request
73  * @psoc: psoc handle
74  * @req: TWT del dialog request structure
75  *
76  * return: QDF_STATUS
77  */
78 QDF_STATUS
79 target_if_twt_teardown_req(struct wlan_objmgr_psoc *psoc,
80 			   struct twt_del_dialog_param *req);
81 
82 /**
83  * target_if_twt_pause_req() - target if twt pause request
84  * @psoc: psoc handle
85  * @req: TWT pause dialog request structure
86  *
87  * return: QDF_STATUS
88  */
89 QDF_STATUS
90 target_if_twt_pause_req(struct wlan_objmgr_psoc *psoc,
91 			struct twt_pause_dialog_cmd_param *req);
92 
93 /**
94  * target_if_twt_resume_req() - target if twt resume request
95  * @psoc: psoc handle
96  * @req: TWT resume dialog request structure
97  *
98  * return: QDF_STATUS
99  */
100 QDF_STATUS
101 target_if_twt_resume_req(struct wlan_objmgr_psoc *psoc,
102 			 struct twt_resume_dialog_cmd_param *req);
103 
104 /**
105  * target_if_twt_nudge_req() - target if twt nudge request
106  * @psoc: psoc handle
107  * @req: TWT nudge dialog request structure
108  *
109  * return: QDF_STATUS
110  */
111 QDF_STATUS
112 target_if_twt_nudge_req(struct wlan_objmgr_psoc *psoc,
113 			struct twt_nudge_dialog_cmd_param *req);
114 
115 /**
116  * target_if_twt_ac_param_send() - pdev TWT param send
117  * @psoc: Pointer to psoc object
118  * @twt_ac: TWT access category
119  * @mac_id: radio context
120  *
121  * Return: QDF Status
122  */
123 QDF_STATUS
124 target_if_twt_ac_param_send(struct wlan_objmgr_psoc *psoc,
125 			    enum twt_traffic_ac twt_ac, uint8_t mac_id);
126 #else
127 static inline QDF_STATUS
128 target_if_twt_register_ext_tx_ops(struct wlan_lmac_if_twt_tx_ops *twt_tx_ops)
129 {
130 	return QDF_STATUS_SUCCESS;
131 }
132 
133 static inline QDF_STATUS
134 target_if_twt_register_ext_events(struct wlan_objmgr_psoc *psoc)
135 {
136 	return QDF_STATUS_SUCCESS;
137 }
138 
139 static inline QDF_STATUS
140 target_if_twt_deregister_ext_events(struct wlan_objmgr_psoc *psoc)
141 {
142 	return QDF_STATUS_SUCCESS;
143 }
144 
145 static inline QDF_STATUS
146 target_if_twt_setup_req(struct wlan_objmgr_psoc *psoc,
147 			struct twt_add_dialog_param *req)
148 {
149 	return QDF_STATUS_SUCCESS;
150 }
151 
152 static inline QDF_STATUS
153 target_if_twt_teardown_req(struct wlan_objmgr_psoc *psoc,
154 			   struct twt_del_dialog_param *req)
155 {
156 	return QDF_STATUS_SUCCESS;
157 }
158 
159 static inline QDF_STATUS
160 target_if_twt_pause_req(struct wlan_objmgr_psoc *psoc,
161 			struct twt_pause_dialog_cmd_param *req)
162 {
163 	return QDF_STATUS_SUCCESS;
164 }
165 
166 static inline QDF_STATUS
167 target_if_twt_resume_req(struct wlan_objmgr_psoc *psoc,
168 			 struct twt_resume_dialog_cmd_param *req)
169 {
170 	return QDF_STATUS_SUCCESS;
171 }
172 
173 static inline QDF_STATUS
174 target_if_twt_nudge_req(struct wlan_objmgr_psoc *psoc,
175 			struct twt_nudge_dialog_cmd_param *req)
176 {
177 	return QDF_STATUS_SUCCESS;
178 }
179 
180 QDF_STATUS
181 target_if_twt_ac_param_send(struct wlan_objmgr_psoc *psoc,
182 			    enum twt_traffic_ac twt_ac, uint8_t mac_id)
183 {
184 	return QDF_STATUS_SUCCESS;
185 }
186 #endif
187 #endif /*_TARGET_IF_EXT_TWT_H_ */
188 
189