xref: /wlan-dirver/qca-wifi-host-cmn/qdf/inc/qdf_ipa_wdi3.h (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
1 /*
2  * Copyright (c) 2017-2019, 2021, The Linux Foundation. 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: qdf_ipa_wdi3.h
19  * This file provides OS abstraction for IPA WDI APIs.
20  */
21 
22 #ifndef _QDF_IPA_WDI3_H
23 #define _QDF_IPA_WDI3_H
24 
25 #ifdef IPA_OFFLOAD
26 
27 #include <qdf_ipa.h>
28 #include <i_qdf_ipa_wdi3.h>
29 
30 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) || \
31 	defined(CONFIG_IPA_WDI_UNIFIED_API)
32 
33 /**
34  * qdf_ipa_wdi_version_t - IPA WDI version
35  */
36 typedef __qdf_ipa_wdi_version_t qdf_ipa_wdi_version_t;
37 
38 /**
39  * qdf_ipa_wdi_init_in_params_t - wdi init input parameters
40  */
41 typedef __qdf_ipa_wdi_init_in_params_t qdf_ipa_wdi_init_in_params_t;
42 
43 #define QDF_IPA_WDI_INIT_IN_PARAMS_WDI_VERSION(in_params)	\
44 	__QDF_IPA_WDI_INIT_IN_PARAMS_WDI_VERSION(in_params)
45 #define QDF_IPA_WDI_INIT_IN_PARAMS_NOTIFY(in_params)	\
46 	__QDF_IPA_WDI_INIT_IN_PARAMS_NOTIFY(in_params)
47 #define QDF_IPA_WDI_INIT_IN_PARAMS_PRIV(in_params)	\
48 	__QDF_IPA_WDI_INIT_IN_PARAMS_PRIV(in_params)
49 #define QDF_IPA_WDI_INIT_IN_PARAMS_WDI_NOTIFY(in_params)	\
50 	__QDF_IPA_WDI_INIT_IN_PARAMS_WDI_NOTIFY(in_params)
51 
52 /**
53  * qdf_ipa_wdi_init_out_params_t - wdi init output parameters
54  */
55 typedef __qdf_ipa_wdi_init_out_params_t qdf_ipa_wdi_init_out_params_t;
56 
57 #define QDF_IPA_WDI_INIT_OUT_PARAMS_IS_UC_READY(out_params)	\
58 	__QDF_IPA_WDI_INIT_OUT_PARAMS_IS_UC_READY(out_params)
59 #define QDF_IPA_WDI_INIT_OUT_PARAMS_IS_SMMU_ENABLED(out_params)	\
60 	__QDF_IPA_WDI_INIT_OUT_PARAMS_IS_SMMU_ENABLED(out_params)
61 
62 /**
63  * qdf_ipa_wdi_pipe_setup_info_smmu_t - WDI TX/Rx configuration
64  */
65 typedef __qdf_ipa_wdi_pipe_setup_info_smmu_t qdf_ipa_wdi_pipe_setup_info_smmu_t;
66 
67 #define QDF_IPA_WDI_SETUP_INFO_SMMU_EP_CFG(txrx)	\
68 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EP_CFG(txrx)
69 
70 #define QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(txrx)	\
71 	__QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(txrx)
72 #define QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_BASE(txrx)	\
73 	__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_BASE(txrx)
74 #define QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_SIZE(txrx)	\
75 	__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_SIZE(txrx)
76 #define QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(txrx)	\
77 	__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(txrx)
78 #define QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(txrx)	\
79 	__QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(txrx)
80 #define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(txrx)	\
81 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(txrx)
82 #define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_SIZE(txrx)	\
83 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_SIZE(txrx)
84 #define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(txrx)	\
85 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(txrx)
86 #define QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(txrx)	\
87 	__QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(txrx)
88 #define QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(txrx)	\
89 	__QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(txrx)
90 #define QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(txrx)	\
91 	__QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(txrx)
92 #define QDF_IPA_WDI_SETUP_INFO_SMMU_DESC_FORMAT_TEMPLATE(txrx)	\
93 	__QDF_IPA_WDI_SETUP_INFO_SMMU_DESC_FORMAT_TEMPLATE(txrx)
94 
95 typedef __qdf_ipa_ep_cfg_t qdf_ipa_ep_cfg_t;
96 
97 #define QDF_IPA_EP_CFG_NAT_EN(cfg)	\
98 	__QDF_IPA_EP_CFG_NAT_EN(cfg)
99 #define QDF_IPA_EP_CFG_HDR_LEN(cfg)	\
100 	__QDF_IPA_EP_CFG_HDR_LEN(cfg)
101 #define QDF_IPA_EP_CFG_HDR_OFST_METADATA_VALID(cfg)	\
102 	__QDF_IPA_EP_CFG_HDR_OFST_METADATA_VALID(cfg)
103 #define QDF_IPA_EP_CFG_HDR_METADATA_REG_VALID(cfg)	\
104 	__QDF_IPA_EP_CFG_HDR_METADATA_REG_VALID(cfg)
105 #define QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE_VALID(cfg)	\
106 	__QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE_VALID(cfg)
107 #define QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE(cfg)	\
108 	__QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE(cfg)
109 #define QDF_IPA_EP_CFG_HDR_ADDITIONAL_CONST_LEN(cfg)	\
110 	__QDF_IPA_EP_CFG_HDR_ADDITIONAL_CONST_LEN(cfg)
111 #define QDF_IPA_EP_CFG_MODE(cfg)	\
112 	__QDF_IPA_EP_CFG_MODE(cfg)
113 #define QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(cfg)	\
114 	__QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(cfg)
115 
116 /**
117  * qdf_ipa_wdi_init - Client should call this function to
118  * init WDI IPA offload data path
119  *
120  * Note: Should not be called from atomic context and only
121  * after checking IPA readiness using ipa_register_ipa_ready_cb()
122  *
123  * @Return 0 on success, negative on failure
124  */
125 static inline int qdf_ipa_wdi_init(qdf_ipa_wdi_init_in_params_t *in,
126 		 qdf_ipa_wdi_init_out_params_t *out)
127 {
128 	return __qdf_ipa_wdi_init(in, out);
129 }
130 
131 /**
132  * qdf_ipa_wdi_cleanup - Client should call this function to
133  * clean up WDI IPA offload data path
134  *
135  * @Return 0 on success, negative on failure
136  */
137 static inline int qdf_ipa_wdi_cleanup(void)
138 {
139 	return __qdf_ipa_wdi_cleanup();
140 }
141 #endif /* CONFIG_IPA_WDI_UNIFIED_API */
142 
143 /**
144  * qdf_ipa_wdi_hdr_info_t - Header to install on IPA HW
145  */
146 typedef __qdf_ipa_wdi_hdr_info_t qdf_ipa_wdi_hdr_info_t;
147 
148 #define QDF_IPA_WDI_HDR_INFO_HDR(hdr_info)	\
149 	__QDF_IPA_WDI_HDR_INFO_HDR(hdr_info)
150 #define QDF_IPA_WDI_HDR_INFO_HDR_LEN(hdr_info)	\
151 	__QDF_IPA_WDI_HDR_INFO_HDR_LEN(hdr_info)
152 #define QDF_IPA_WDI_HDR_INFO_DST_MAC_ADDR_OFFSET(hdr_info)	\
153 	__QDF_IPA_WDI_HDR_INFO_DST_MAC_ADDR_OFFSET(hdr_info)
154 #define QDF_IPA_WDI_HDR_INFO_HDR_TYPE(hdr_info)	\
155 	__QDF_IPA_WDI_HDR_INFO_HDR_TYPE(hdr_info)
156 
157 /**
158  * qdf_ipa_wdi_reg_intf_in_params_t - parameters for uC offload
159  *	interface registration
160  */
161 typedef __qdf_ipa_wdi_reg_intf_in_params_t qdf_ipa_wdi_reg_intf_in_params_t;
162 
163 #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_NETDEV_NAME(in)	\
164 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_NETDEV_NAME(in)
165 #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_HDR_INFO(in)	\
166 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_HDR_INFO(in)
167 #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_ALT_DST_PIPE(in)	\
168 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_ALT_DST_PIPE(in)
169 #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_META_DATA_VALID(in)	\
170 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_META_DATA_VALID(in)
171 #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA(in)	\
172 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA(in)
173 #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA_MASK(in)	\
174 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA_MASK(in)
175 #ifdef IPA_WDI3_TX_TWO_PIPES
176 #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_TX1_USED(in)	\
177 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_TX1_USED(in)
178 #endif
179 
180 /**
181  * qdf_ipa_wdi_pipe_setup_info_t - WDI TX/Rx configuration
182  */
183 typedef __qdf_ipa_wdi_pipe_setup_info_t qdf_ipa_wdi_pipe_setup_info_t;
184 
185 #define QDF_IPA_WDI_SETUP_INFO_EP_CFG(txrx)	\
186 	__QDF_IPA_WDI_SETUP_INFO_EP_CFG(txrx)
187 
188 #define QDF_IPA_WDI_SETUP_INFO_NAT_EN(txrx)	\
189 	__QDF_IPA_WDI_SETUP_INFO_NAT_EN(txrx)
190 #define QDF_IPA_WDI_SETUP_INFO_HDR_LEN(txrx)	\
191 	__QDF_IPA_WDI_SETUP_INFO_HDR_LEN(txrx)
192 #define QDF_IPA_WDI_SETUP_INFO_HDR_OFST_METADATA_VALID(txrx)	\
193 	__QDF_IPA_WDI_SETUP_INFO_HDR_OFST_METADATA_VALID(txrx)
194 #define QDF_IPA_WDI_SETUP_INFO_HDR_METADATA_REG_VALID(txrx)	\
195 	__QDF_IPA_WDI_SETUP_INFO_HDR_METADATA_REG_VALID(txrx)
196 #define QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE_VALID(txrx)	\
197 	__QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE_VALID(txrx)
198 #define QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE(txrx)	\
199 	__QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE(txrx)
200 #define QDF_IPA_WDI_SETUP_INFO_HDR_ADDITIONAL_CONST_LEN(txrx)	\
201 	__QDF_IPA_WDI_SETUP_INFO_HDR_ADDITIONAL_CONST_LEN(txrx)
202 #define QDF_IPA_WDI_SETUP_INFO_MODE(txrx)	\
203 	__QDF_IPA_WDI_SETUP_INFO_MODE(txrx)
204 #define QDF_IPA_WDI_SETUP_INFO_HDR_LITTLE_ENDIAN(txrx)	\
205 	__QDF_IPA_WDI_SETUP_INFO_HDR_LITTLE_ENDIAN(txrx)
206 
207 #define QDF_IPA_WDI_SETUP_INFO_CLIENT(txrx)	\
208 	__QDF_IPA_WDI_SETUP_INFO_CLIENT(txrx)
209 #define QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_BASE_PA(txrx)	\
210 	__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_BASE_PA(txrx)
211 #define QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_SIZE(txrx)	\
212 	__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_SIZE(txrx)
213 #define QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(txrx)	\
214 	__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(txrx)
215 #define QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(txrx)	\
216 	__QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(txrx)
217 #define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(txrx)	\
218 	__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(txrx)
219 #define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_SIZE(txrx)	\
220 	__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_SIZE(txrx)
221 #define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(txrx)	\
222 	__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(txrx)
223 #define QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(txrx)	\
224 	__QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(txrx)
225 #define QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(txrx)	\
226 	__QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(txrx)
227 #define QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(txrx)	\
228 	__QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(txrx)
229 #define QDF_IPA_WDI_SETUP_INFO_DESC_FORMAT_TEMPLATE(txrx)	\
230 	__QDF_IPA_WDI_SETUP_INFO_DESC_FORMAT_TEMPLATE(txrx)
231 
232 /**
233  * qdf_ipa_wdi_conn_in_params_t - information provided by
234  *		uC offload client
235  */
236 typedef __qdf_ipa_wdi_conn_in_params_t qdf_ipa_wdi_conn_in_params_t;
237 
238 #define QDF_IPA_WDI_CONN_IN_PARAMS_NOTIFY(pipe_in)	\
239 	__QDF_IPA_WDI_CONN_IN_PARAMS_NOTIFY(pipe_in)
240 #define QDF_IPA_WDI_CONN_IN_PARAMS_PRIV(pipe_in)	\
241 	__QDF_IPA_WDI_CONN_IN_PARAMS_PRIV(pipe_in)
242 #define QDF_IPA_WDI_CONN_IN_PARAMS_SMMU_ENABLED(pipe_in)	\
243 	__QDF_IPA_WDI_CONN_IN_PARAMS_SMMU_ENABLED(pipe_in)
244 #define QDF_IPA_WDI_CONN_IN_PARAMS_NUM_SYS_PIPE_NEEDED(pipe_in)	\
245 	__QDF_IPA_WDI_CONN_IN_PARAMS_NUM_SYS_PIPE_NEEDED(pipe_in)
246 #define QDF_IPA_WDI_CONN_IN_PARAMS_SYS_IN(in)	\
247 	__QDF_IPA_WDI_CONN_IN_PARAMS_SYS_IN(in)
248 #define QDF_IPA_WDI_CONN_IN_PARAMS_TX(pipe_in)	\
249 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX(pipe_in)
250 #define QDF_IPA_WDI_CONN_IN_PARAMS_TX_SMMU(pipe_in)	\
251 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX_SMMU(pipe_in)
252 #define QDF_IPA_WDI_CONN_IN_PARAMS_RX(pipe_in)	\
253 	__QDF_IPA_WDI_CONN_IN_PARAMS_RX(pipe_in)
254 #define QDF_IPA_WDI_CONN_IN_PARAMS_RX_SMMU(pipe_in)	\
255 	__QDF_IPA_WDI_CONN_IN_PARAMS_RX_SMMU(pipe_in)
256 #ifdef IPA_WDI3_TX_TWO_PIPES
257 #define QDF_IPA_WDI_CONN_IN_PARAMS_IS_TX1_USED(pipe_in)	\
258 	__QDF_IPA_WDI_CONN_IN_PARAMS_IS_TX1_USED(pipe_in)
259 #define QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE(pipe_in)	\
260 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE(pipe_in)
261 #define QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE_SMMU(pipe_in)	\
262 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE_SMMU(pipe_in)
263 #define QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_ALT_DB_PA(pipe_out)	\
264 	__QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_ALT_DB_PA(pipe_out)
265 #endif
266 
267 /**
268  * qdf_ipa_wdi_conn_out_params_t - information provided
269  *				to WLAN druver
270  */
271 typedef __qdf_ipa_wdi_conn_out_params_t qdf_ipa_wdi_conn_out_params_t;
272 
273 #define QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_PA(pipe_out)	\
274 	__QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_PA(pipe_out)
275 #define QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_VA(pipe_out)	\
276 	__QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_VA(pipe_out)
277 #define QDF_IPA_WDI_CONN_OUT_PARAMS_RX_UC_DB_PA(pipe_out)	\
278 	__QDF_IPA_WDI_CONN_OUT_PARAMS_RX_UC_DB_PA(pipe_out)
279 #define QDF_IPA_WDI_CONN_OUT_PARAMS_IS_DB_DDR_MAPPED(pipe_out)	\
280 	__QDF_IPA_WDI_CONN_OUT_PARAMS_IS_DB_DDR_MAPPED(pipe_out)
281 
282 /**
283  * qdf_ipa_wdi_perf_profile_t - To set BandWidth profile
284  */
285 typedef __qdf_ipa_wdi_perf_profile_t qdf_ipa_wdi_perf_profile_t;
286 
287 #define QDF_IPA_WDI_PERF_PROFILE_CLIENT(profile)	\
288 	__QDF_IPA_WDI_PERF_PROFILE_CLIENT(profile)
289 #define QDF_IPA_WDI_PERF_PROFILE_MAX_SUPPORTED_BW_MBPS(profile)	\
290 	__QDF_IPA_WDI_PERF_PROFILE_MAX_SUPPORTED_BW_MBPS(profile)
291 
292 /**
293  * qdf_ipa_wdi_reg_intf - Client should call this function to
294  * init WDI IPA offload data path
295  *
296  * Note: Should not be called from atomic context and only
297  * after checking IPA readiness using ipa_register_ipa_ready_cb()
298  *
299  * @Return 0 on success, negative on failure
300  */
301 static inline int qdf_ipa_wdi_reg_intf(
302 	qdf_ipa_wdi_reg_intf_in_params_t *in)
303 {
304 	return __qdf_ipa_wdi_reg_intf(in);
305 }
306 
307 /**
308  * qdf_ipa_wdi_dereg_intf - Client Driver should call this
309  * function to deregister before unload and after disconnect
310  *
311  * @Return 0 on success, negative on failure
312  */
313 static inline int qdf_ipa_wdi_dereg_intf(const char *netdev_name)
314 {
315 	return __qdf_ipa_wdi_dereg_intf(netdev_name);
316 }
317 
318 /**
319  * qdf_ipa_wdi_conn_pipes - Client should call this
320  * function to connect pipes
321  *
322  * @in:	[in] input parameters from client
323  * @out: [out] output params to client
324  *
325  * Note: Should not be called from atomic context and only
326  * after checking IPA readiness using ipa_register_ipa_ready_cb()
327  *
328  * @Return 0 on success, negative on failure
329  */
330 static inline int qdf_ipa_wdi_conn_pipes(qdf_ipa_wdi_conn_in_params_t *in,
331 			qdf_ipa_wdi_conn_out_params_t *out)
332 {
333 	return __qdf_ipa_wdi_conn_pipes(in, out);
334 }
335 
336 /**
337  * qdf_ipa_wdi_disconn_pipes() - Client should call this
338  *		function to disconnect pipes
339  *
340  * Note: Should not be called from atomic context
341  *
342  * Returns: 0 on success, negative on failure
343  */
344 static inline int qdf_ipa_wdi_disconn_pipes(void)
345 {
346 	return __qdf_ipa_wdi_disconn_pipes();
347 }
348 
349 /**
350  * qdf_ipa_wdi_enable_pipes() - Client should call this
351  *		function to enable IPA offload data path
352  *
353  * Note: Should not be called from atomic context
354  *
355  * Returns: 0 on success, negative on failure
356  */
357 static inline int qdf_ipa_wdi_enable_pipes(void)
358 {
359 	return __qdf_ipa_wdi_enable_pipes();
360 }
361 
362 /**
363  * qdf_ipa_wdi_disable_pipes() - Client should call this
364  *		function to disable IPA offload data path
365  *
366  * Note: Should not be called from atomic context
367  *
368  * Returns: 0 on success, negative on failure
369  */
370 static inline int qdf_ipa_wdi_disable_pipes(void)
371 {
372 	return __qdf_ipa_wdi_disable_pipes();
373 }
374 
375 /**
376  * qdf_ipa_wdi_set_perf_profile() - Client should call this function to
377  *		set IPA clock bandwidth based on data rates
378  *
379  * @profile: [in] BandWidth profile to use
380  *
381  * Returns: 0 on success, negative on failure
382  */
383 static inline int qdf_ipa_wdi_set_perf_profile(
384 			qdf_ipa_wdi_perf_profile_t *profile)
385 {
386 	return __qdf_ipa_wdi_set_perf_profile(profile);
387 }
388 
389 /**
390  * qdf_ipa_wdi_create_smmu_mapping() - Client should call this function to
391  *		create smmu mapping
392  *
393  * @num_buffers: [in] number of buffers
394  * @info: [in] wdi buffer info
395  *
396  * Returns: 0 on success, negative on failure
397  */
398 static inline int qdf_ipa_wdi_create_smmu_mapping(uint32_t num_buffers,
399 		qdf_ipa_wdi_buffer_info_t *info)
400 {
401 	return __qdf_ipa_wdi_create_smmu_mapping(num_buffers, info);
402 }
403 
404 /**
405  * qdf_ipa_wdi_release_smmu_mapping() - Client should call this function to
406  *		release smmu mapping
407  *
408  * @num_buffers: [in] number of buffers
409  * @info: [in] wdi buffer info
410  *
411  * Returns: 0 on success, negative on failure
412  */
413 static inline int qdf_ipa_wdi_release_smmu_mapping(uint32_t num_buffers,
414 		qdf_ipa_wdi_buffer_info_t *info)
415 {
416 	return __qdf_ipa_wdi_release_smmu_mapping(num_buffers, info);
417 }
418 
419 #ifdef WDI3_STATS_UPDATE
420 /**
421  * qdf_ipa_wdi_wlan_stats() - Client should call this function to
422  *		send Tx byte counts to IPA driver
423  * @tx_count: number of Tx bytes
424  *
425  * Returns: 0 on success, negative on failure
426  */
427 static inline int qdf_ipa_wdi_wlan_stats(qdf_ipa_wdi_tx_info_t *tx_stats)
428 {
429 	return __qdf_ipa_wdi_wlan_stats(tx_stats);
430 }
431 
432 /**
433  * qdf_ipa_uc_bw_monitor() - start/stop uc bw monitoring
434  * @bw_info: set bw info levels to monitor
435  *
436  * Returns: 0 on success, negative on failure
437  */
438 static inline int qdf_ipa_uc_bw_monitor(qdf_ipa_wdi_bw_info_t *bw_info)
439 {
440 	return __qdf_ipa_uc_bw_monitor(bw_info);
441 }
442 #endif
443 
444 #endif /* IPA_OFFLOAD */
445 #endif /* _QDF_IPA_WDI3_H */
446