xref: /wlan-driver/qca-wifi-host-cmn/qdf/inc/qdf_ipa_wdi3.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2017-2019, 2021, The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
6*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
7*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16*5113495bSYour Name  */
17*5113495bSYour Name 
18*5113495bSYour Name /**
19*5113495bSYour Name  * DOC: qdf_ipa_wdi3.h
20*5113495bSYour Name  * This file provides OS abstraction for IPA WDI APIs.
21*5113495bSYour Name  */
22*5113495bSYour Name 
23*5113495bSYour Name #ifndef _QDF_IPA_WDI3_H
24*5113495bSYour Name #define _QDF_IPA_WDI3_H
25*5113495bSYour Name 
26*5113495bSYour Name #ifdef IPA_OFFLOAD
27*5113495bSYour Name 
28*5113495bSYour Name #include <qdf_ipa.h>
29*5113495bSYour Name #include <i_qdf_ipa_wdi3.h>
30*5113495bSYour Name 
31*5113495bSYour Name #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) || \
32*5113495bSYour Name 	defined(CONFIG_IPA_WDI_UNIFIED_API)
33*5113495bSYour Name 
34*5113495bSYour Name /**
35*5113495bSYour Name  * qdf_ipa_wdi_version_t - IPA WDI version
36*5113495bSYour Name  */
37*5113495bSYour Name typedef __qdf_ipa_wdi_version_t qdf_ipa_wdi_version_t;
38*5113495bSYour Name 
39*5113495bSYour Name /**
40*5113495bSYour Name  * qdf_ipa_wdi_hdl_t - IPA handle
41*5113495bSYour Name  */
42*5113495bSYour Name typedef __qdf_ipa_wdi_hdl_t qdf_ipa_wdi_hdl_t;
43*5113495bSYour Name 
44*5113495bSYour Name /**
45*5113495bSYour Name  * qdf_ipa_wdi_capabilities_out_params_t - wdi capabilities output parameters
46*5113495bSYour Name  */
47*5113495bSYour Name typedef __qdf_ipa_wdi_capabilities_out_params_t	\
48*5113495bSYour Name 		qdf_ipa_wdi_capabilities_out_params_t;
49*5113495bSYour Name 
50*5113495bSYour Name #define QDF_IPA_WDI_CAPABILITIES_OUT_PARAMS_NUM_INSTANCES(out_params)	\
51*5113495bSYour Name 	__QDF_IPA_WDI_CAPABILITIES_OUT_PARAMS_NUM_INSTANCES(out_params)
52*5113495bSYour Name 
qdf_ipa_wdi_get_capabilities(qdf_ipa_wdi_capabilities_out_params_t * out)53*5113495bSYour Name static inline int qdf_ipa_wdi_get_capabilities(
54*5113495bSYour Name 		qdf_ipa_wdi_capabilities_out_params_t *out)
55*5113495bSYour Name {
56*5113495bSYour Name 	return __qdf_ipa_wdi_get_capabilities(out);
57*5113495bSYour Name }
58*5113495bSYour Name 
59*5113495bSYour Name /**
60*5113495bSYour Name  * qdf_ipa_wdi_init_in_params_t - wdi init input parameters
61*5113495bSYour Name  */
62*5113495bSYour Name typedef __qdf_ipa_wdi_init_in_params_t qdf_ipa_wdi_init_in_params_t;
63*5113495bSYour Name 
64*5113495bSYour Name #define QDF_IPA_WDI_INIT_IN_PARAMS_WDI_VERSION(in_params)	\
65*5113495bSYour Name 	__QDF_IPA_WDI_INIT_IN_PARAMS_WDI_VERSION(in_params)
66*5113495bSYour Name #define QDF_IPA_WDI_INIT_IN_PARAMS_NOTIFY(in_params)	\
67*5113495bSYour Name 	__QDF_IPA_WDI_INIT_IN_PARAMS_NOTIFY(in_params)
68*5113495bSYour Name #define QDF_IPA_WDI_INIT_IN_PARAMS_PRIV(in_params)	\
69*5113495bSYour Name 	__QDF_IPA_WDI_INIT_IN_PARAMS_PRIV(in_params)
70*5113495bSYour Name #define QDF_IPA_WDI_INIT_IN_PARAMS_WDI_NOTIFY(in_params)	\
71*5113495bSYour Name 	__QDF_IPA_WDI_INIT_IN_PARAMS_WDI_NOTIFY(in_params)
72*5113495bSYour Name #define QDF_IPA_WDI_INIT_IN_PARAMS_INSTANCE_ID(in_params)	\
73*5113495bSYour Name 	__QDF_IPA_WDI_INIT_IN_PARAMS_INSTANCE_ID(in_params)
74*5113495bSYour Name 
75*5113495bSYour Name #ifdef IPA_WDS_EASYMESH_FEATURE
76*5113495bSYour Name #define QDF_IPA_WDI_INIT_IN_PARAMS_WDS_UPDATE(in_params)	\
77*5113495bSYour Name 	__QDF_IPA_WDI_INIT_IN_PARAMS_WDS_UPDATE(in_params)
78*5113495bSYour Name #endif
79*5113495bSYour Name 
80*5113495bSYour Name /**
81*5113495bSYour Name  * qdf_ipa_wdi_init_out_params_t - wdi init output parameters
82*5113495bSYour Name  */
83*5113495bSYour Name typedef __qdf_ipa_wdi_init_out_params_t qdf_ipa_wdi_init_out_params_t;
84*5113495bSYour Name 
85*5113495bSYour Name #define QDF_IPA_WDI_INIT_OUT_PARAMS_IS_UC_READY(out_params)	\
86*5113495bSYour Name 	__QDF_IPA_WDI_INIT_OUT_PARAMS_IS_UC_READY(out_params)
87*5113495bSYour Name #define QDF_IPA_WDI_INIT_OUT_PARAMS_IS_SMMU_ENABLED(out_params)	\
88*5113495bSYour Name 	__QDF_IPA_WDI_INIT_OUT_PARAMS_IS_SMMU_ENABLED(out_params)
89*5113495bSYour Name #define QDF_IPA_WDI_INIT_OUT_PARAMS_HANDLE(out_params)	\
90*5113495bSYour Name 	__QDF_IPA_WDI_INIT_OUT_PARAMS_HANDLE(out_params)
91*5113495bSYour Name #define QDF_IPA_WDI_INIT_OUT_PARAMS_OPT_WIFI_DP(out_params)   \
92*5113495bSYour Name 	__QDF_IPA_WDI_INIT_OUT_PARAMS_OPT_WIFI_DP(out_params)
93*5113495bSYour Name 
94*5113495bSYour Name /**
95*5113495bSYour Name  * qdf_ipa_wdi_pipe_setup_info_smmu_t - WDI TX/Rx configuration
96*5113495bSYour Name  */
97*5113495bSYour Name typedef __qdf_ipa_wdi_pipe_setup_info_smmu_t qdf_ipa_wdi_pipe_setup_info_smmu_t;
98*5113495bSYour Name 
99*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_EP_CFG(txrx)	\
100*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EP_CFG(txrx)
101*5113495bSYour Name 
102*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(txrx)	\
103*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_CLIENT(txrx)
104*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_BASE(txrx)	\
105*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_BASE(txrx)
106*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_SIZE(txrx)	\
107*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_SIZE(txrx)
108*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(txrx)	\
109*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(txrx)
110*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(txrx)	\
111*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(txrx)
112*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(txrx)	\
113*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(txrx)
114*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_SIZE(txrx)	\
115*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_SIZE(txrx)
116*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(txrx)	\
117*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(txrx)
118*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(txrx)	\
119*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(txrx)
120*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(txrx)	\
121*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(txrx)
122*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(txrx)	\
123*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(txrx)
124*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_DESC_FORMAT_TEMPLATE(txrx)	\
125*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_DESC_FORMAT_TEMPLATE(txrx)
126*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_RX_BANK_ID(txrx, bid)	\
127*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_RX_BANK_ID(txrx, bid)
128*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_SMMU_RX_PMAC_ID(txrx, pmac_id)	\
129*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_SMMU_RX_PMAC_ID(txrx, pmac_id)
130*5113495bSYour Name 
131*5113495bSYour Name typedef __qdf_ipa_ep_cfg_t qdf_ipa_ep_cfg_t;
132*5113495bSYour Name 
133*5113495bSYour Name #define QDF_IPA_EP_CFG_NAT_EN(cfg)	\
134*5113495bSYour Name 	__QDF_IPA_EP_CFG_NAT_EN(cfg)
135*5113495bSYour Name #define QDF_IPA_EP_CFG_HDR_LEN(cfg)	\
136*5113495bSYour Name 	__QDF_IPA_EP_CFG_HDR_LEN(cfg)
137*5113495bSYour Name #define QDF_IPA_EP_CFG_HDR_OFST_METADATA_VALID(cfg)	\
138*5113495bSYour Name 	__QDF_IPA_EP_CFG_HDR_OFST_METADATA_VALID(cfg)
139*5113495bSYour Name #define QDF_IPA_EP_CFG_HDR_METADATA_REG_VALID(cfg)	\
140*5113495bSYour Name 	__QDF_IPA_EP_CFG_HDR_METADATA_REG_VALID(cfg)
141*5113495bSYour Name #define QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE_VALID(cfg)	\
142*5113495bSYour Name 	__QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE_VALID(cfg)
143*5113495bSYour Name #define QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE(cfg)	\
144*5113495bSYour Name 	__QDF_IPA_EP_CFG_HDR_OFST_PKT_SIZE(cfg)
145*5113495bSYour Name #define QDF_IPA_EP_CFG_HDR_ADDITIONAL_CONST_LEN(cfg)	\
146*5113495bSYour Name 	__QDF_IPA_EP_CFG_HDR_ADDITIONAL_CONST_LEN(cfg)
147*5113495bSYour Name #define QDF_IPA_EP_CFG_MODE(cfg)	\
148*5113495bSYour Name 	__QDF_IPA_EP_CFG_MODE(cfg)
149*5113495bSYour Name #define QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(cfg)	\
150*5113495bSYour Name 	__QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(cfg)
151*5113495bSYour Name 
152*5113495bSYour Name /**
153*5113495bSYour Name  * qdf_ipa_wdi_init - Client should call this function to
154*5113495bSYour Name  * init WDI IPA offload data path
155*5113495bSYour Name  *
156*5113495bSYour Name  * Note: Should not be called from atomic context and only
157*5113495bSYour Name  * after checking IPA readiness using ipa_register_ipa_ready_cb()
158*5113495bSYour Name  *
159*5113495bSYour Name  * @Return 0 on success, negative on failure
160*5113495bSYour Name  */
qdf_ipa_wdi_init(qdf_ipa_wdi_init_in_params_t * in,qdf_ipa_wdi_init_out_params_t * out)161*5113495bSYour Name static inline int qdf_ipa_wdi_init(qdf_ipa_wdi_init_in_params_t *in,
162*5113495bSYour Name 		 qdf_ipa_wdi_init_out_params_t *out)
163*5113495bSYour Name {
164*5113495bSYour Name 	return __qdf_ipa_wdi_init(in, out);
165*5113495bSYour Name }
166*5113495bSYour Name 
167*5113495bSYour Name /**
168*5113495bSYour Name  * qdf_ipa_wdi_cleanup - Client should call this function to
169*5113495bSYour Name  * clean up WDI IPA offload data path
170*5113495bSYour Name  * @hdl: IPA handle
171*5113495bSYour Name  *
172*5113495bSYour Name  * @Return 0 on success, negative on failure
173*5113495bSYour Name  */
qdf_ipa_wdi_cleanup(qdf_ipa_wdi_hdl_t hdl)174*5113495bSYour Name static inline int qdf_ipa_wdi_cleanup(qdf_ipa_wdi_hdl_t hdl)
175*5113495bSYour Name {
176*5113495bSYour Name 	return __qdf_ipa_wdi_cleanup(hdl);
177*5113495bSYour Name }
178*5113495bSYour Name #endif /* CONFIG_IPA_WDI_UNIFIED_API */
179*5113495bSYour Name 
180*5113495bSYour Name /**
181*5113495bSYour Name  * qdf_ipa_wdi_hdr_info_t - Header to install on IPA HW
182*5113495bSYour Name  */
183*5113495bSYour Name typedef __qdf_ipa_wdi_hdr_info_t qdf_ipa_wdi_hdr_info_t;
184*5113495bSYour Name 
185*5113495bSYour Name #define QDF_IPA_WDI_HDR_INFO_HDR(hdr_info)	\
186*5113495bSYour Name 	__QDF_IPA_WDI_HDR_INFO_HDR(hdr_info)
187*5113495bSYour Name #define QDF_IPA_WDI_HDR_INFO_HDR_LEN(hdr_info)	\
188*5113495bSYour Name 	__QDF_IPA_WDI_HDR_INFO_HDR_LEN(hdr_info)
189*5113495bSYour Name #define QDF_IPA_WDI_HDR_INFO_DST_MAC_ADDR_OFFSET(hdr_info)	\
190*5113495bSYour Name 	__QDF_IPA_WDI_HDR_INFO_DST_MAC_ADDR_OFFSET(hdr_info)
191*5113495bSYour Name #define QDF_IPA_WDI_HDR_INFO_HDR_TYPE(hdr_info)	\
192*5113495bSYour Name 	__QDF_IPA_WDI_HDR_INFO_HDR_TYPE(hdr_info)
193*5113495bSYour Name 
194*5113495bSYour Name /**
195*5113495bSYour Name  * qdf_ipa_wdi_reg_intf_in_params_t - parameters for uC offload
196*5113495bSYour Name  *	interface registration
197*5113495bSYour Name  */
198*5113495bSYour Name typedef __qdf_ipa_wdi_reg_intf_in_params_t qdf_ipa_wdi_reg_intf_in_params_t;
199*5113495bSYour Name 
200*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_NETDEV_NAME(in)	\
201*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_NETDEV_NAME(in)
202*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_HDR_INFO(in)	\
203*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_HDR_INFO(in)
204*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_ALT_DST_PIPE(in)	\
205*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_ALT_DST_PIPE(in)
206*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_META_DATA_VALID(in)	\
207*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_META_DATA_VALID(in)
208*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA(in)	\
209*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA(in)
210*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA_MASK(in)	\
211*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_META_DATA_MASK(in)
212*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_HANDLE(in)	\
213*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_HANDLE(in)
214*5113495bSYour Name #ifdef IPA_WDI3_TX_TWO_PIPES
215*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_TX1_USED(in)	\
216*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_TX1_USED(in)
217*5113495bSYour Name #endif
218*5113495bSYour Name #ifdef IPA_WDI3_VLAN_SUPPORT
219*5113495bSYour Name #define QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_RX1_USED(in)	\
220*5113495bSYour Name 	__QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_RX1_USED(in)
221*5113495bSYour Name #endif
222*5113495bSYour Name 
223*5113495bSYour Name /**
224*5113495bSYour Name  * qdf_ipa_wdi_pipe_setup_info_t - WDI TX/Rx configuration
225*5113495bSYour Name  */
226*5113495bSYour Name typedef __qdf_ipa_wdi_pipe_setup_info_t qdf_ipa_wdi_pipe_setup_info_t;
227*5113495bSYour Name 
228*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_EP_CFG(txrx)	\
229*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_EP_CFG(txrx)
230*5113495bSYour Name 
231*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_NAT_EN(txrx)	\
232*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_NAT_EN(txrx)
233*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_HDR_LEN(txrx)	\
234*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_HDR_LEN(txrx)
235*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_HDR_OFST_METADATA_VALID(txrx)	\
236*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_HDR_OFST_METADATA_VALID(txrx)
237*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_HDR_METADATA_REG_VALID(txrx)	\
238*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_HDR_METADATA_REG_VALID(txrx)
239*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE_VALID(txrx)	\
240*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE_VALID(txrx)
241*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE(txrx)	\
242*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_HDR_OFST_PKT_SIZE(txrx)
243*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_HDR_ADDITIONAL_CONST_LEN(txrx)	\
244*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_HDR_ADDITIONAL_CONST_LEN(txrx)
245*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_MODE(txrx)	\
246*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_MODE(txrx)
247*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_HDR_LITTLE_ENDIAN(txrx)	\
248*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_HDR_LITTLE_ENDIAN(txrx)
249*5113495bSYour Name 
250*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_CLIENT(txrx)	\
251*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_CLIENT(txrx)
252*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_BASE_PA(txrx)	\
253*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_BASE_PA(txrx)
254*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_SIZE(txrx)	\
255*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_SIZE(txrx)
256*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(txrx)	\
257*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(txrx)
258*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(txrx)	\
259*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(txrx)
260*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(txrx)	\
261*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(txrx)
262*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_SIZE(txrx)	\
263*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_SIZE(txrx)
264*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(txrx)	\
265*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(txrx)
266*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(txrx)	\
267*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(txrx)
268*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(txrx)	\
269*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(txrx)
270*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(txrx)	\
271*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(txrx)
272*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_DESC_FORMAT_TEMPLATE(txrx)	\
273*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_DESC_FORMAT_TEMPLATE(txrx)
274*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_RX_BANK_ID(txrx, bid)	\
275*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_RX_BANK_ID(txrx, bid)
276*5113495bSYour Name #define QDF_IPA_WDI_SETUP_INFO_RX_PMAC_ID(txrx, pmac_id)	\
277*5113495bSYour Name 	__QDF_IPA_WDI_SETUP_INFO_RX_PMAC_ID(txrx, pmac_id)
278*5113495bSYour Name 
279*5113495bSYour Name /**
280*5113495bSYour Name  * qdf_ipa_wdi_conn_in_params_t - information provided by
281*5113495bSYour Name  *		uC offload client
282*5113495bSYour Name  */
283*5113495bSYour Name typedef __qdf_ipa_wdi_conn_in_params_t qdf_ipa_wdi_conn_in_params_t;
284*5113495bSYour Name 
285*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_NOTIFY(pipe_in)	\
286*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_NOTIFY(pipe_in)
287*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_PRIV(pipe_in)	\
288*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_PRIV(pipe_in)
289*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_SMMU_ENABLED(pipe_in)	\
290*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_SMMU_ENABLED(pipe_in)
291*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_NUM_SYS_PIPE_NEEDED(pipe_in)	\
292*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_NUM_SYS_PIPE_NEEDED(pipe_in)
293*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_SYS_IN(in)	\
294*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_SYS_IN(in)
295*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_TX(pipe_in)	\
296*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX(pipe_in)
297*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_TX_SMMU(pipe_in)	\
298*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX_SMMU(pipe_in)
299*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_RX(pipe_in)	\
300*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_RX(pipe_in)
301*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_RX_SMMU(pipe_in)	\
302*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_RX_SMMU(pipe_in)
303*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_HANDLE(pipe_in)	\
304*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_HANDLE(pipe_in)
305*5113495bSYour Name 
306*5113495bSYour Name #ifdef IPA_WDS_EASYMESH_FEATURE
307*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_AST_NOTIFY(pipe_in)	\
308*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_AST_NOTIFY(pipe_in)
309*5113495bSYour Name #endif
310*5113495bSYour Name 
311*5113495bSYour Name #ifdef IPA_WDI3_TX_TWO_PIPES
312*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_IS_TX1_USED(pipe_in)	\
313*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_IS_TX1_USED(pipe_in)
314*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE(pipe_in)	\
315*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE(pipe_in)
316*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE_SMMU(pipe_in)	\
317*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_TX_ALT_PIPE_SMMU(pipe_in)
318*5113495bSYour Name #define QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_ALT_DB_PA(pipe_out)	\
319*5113495bSYour Name 	__QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_ALT_DB_PA(pipe_out)
320*5113495bSYour Name #endif
321*5113495bSYour Name #ifdef IPA_WDI3_VLAN_SUPPORT
322*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_IS_RX1_USED(pipe_in)	\
323*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_IS_RX1_USED(pipe_in)
324*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_RX_ALT(pipe_in)	\
325*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_RX_ALT(pipe_in)
326*5113495bSYour Name #define QDF_IPA_WDI_CONN_IN_PARAMS_RX_ALT_SMMU(pipe_in)	\
327*5113495bSYour Name 	__QDF_IPA_WDI_CONN_IN_PARAMS_RX_ALT_SMMU(pipe_in)
328*5113495bSYour Name #endif
329*5113495bSYour Name /**
330*5113495bSYour Name  * qdf_ipa_wdi_conn_out_params_t - information provided
331*5113495bSYour Name  *				to WLAN druver
332*5113495bSYour Name  */
333*5113495bSYour Name typedef __qdf_ipa_wdi_conn_out_params_t qdf_ipa_wdi_conn_out_params_t;
334*5113495bSYour Name 
335*5113495bSYour Name #define QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_PA(pipe_out)	\
336*5113495bSYour Name 	__QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_PA(pipe_out)
337*5113495bSYour Name #define QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_VA(pipe_out)	\
338*5113495bSYour Name 	__QDF_IPA_WDI_CONN_OUT_PARAMS_TX_UC_DB_VA(pipe_out)
339*5113495bSYour Name #define QDF_IPA_WDI_CONN_OUT_PARAMS_RX_UC_DB_PA(pipe_out)	\
340*5113495bSYour Name 	__QDF_IPA_WDI_CONN_OUT_PARAMS_RX_UC_DB_PA(pipe_out)
341*5113495bSYour Name #ifdef IPA_WDI3_VLAN_SUPPORT
342*5113495bSYour Name #define QDF_IPA_WDI_CONN_OUT_PARAMS_RX_ALT_UC_DB_PA(pipe_out)	\
343*5113495bSYour Name 	__QDF_IPA_WDI_CONN_OUT_PARAMS_RX_ALT_UC_DB_PA(pipe_out)
344*5113495bSYour Name #endif
345*5113495bSYour Name #define QDF_IPA_WDI_CONN_OUT_PARAMS_IS_DB_DDR_MAPPED(pipe_out)	\
346*5113495bSYour Name 	__QDF_IPA_WDI_CONN_OUT_PARAMS_IS_DB_DDR_MAPPED(pipe_out)
347*5113495bSYour Name 
348*5113495bSYour Name /**
349*5113495bSYour Name  * qdf_ipa_wdi_perf_profile_t - To set BandWidth profile
350*5113495bSYour Name  */
351*5113495bSYour Name typedef __qdf_ipa_wdi_perf_profile_t qdf_ipa_wdi_perf_profile_t;
352*5113495bSYour Name 
353*5113495bSYour Name #define QDF_IPA_WDI_PERF_PROFILE_CLIENT(profile)	\
354*5113495bSYour Name 	__QDF_IPA_WDI_PERF_PROFILE_CLIENT(profile)
355*5113495bSYour Name #define QDF_IPA_WDI_PERF_PROFILE_MAX_SUPPORTED_BW_MBPS(profile)	\
356*5113495bSYour Name 	__QDF_IPA_WDI_PERF_PROFILE_MAX_SUPPORTED_BW_MBPS(profile)
357*5113495bSYour Name 
358*5113495bSYour Name /**
359*5113495bSYour Name  * qdf_ipa_wdi_reg_intf - Client should call this function to
360*5113495bSYour Name  * init WDI IPA offload data path
361*5113495bSYour Name  *
362*5113495bSYour Name  * Note: Should not be called from atomic context and only
363*5113495bSYour Name  * after checking IPA readiness using ipa_register_ipa_ready_cb()
364*5113495bSYour Name  *
365*5113495bSYour Name  * @Return 0 on success, negative on failure
366*5113495bSYour Name  */
qdf_ipa_wdi_reg_intf(qdf_ipa_wdi_reg_intf_in_params_t * in)367*5113495bSYour Name static inline int qdf_ipa_wdi_reg_intf(
368*5113495bSYour Name 	qdf_ipa_wdi_reg_intf_in_params_t *in)
369*5113495bSYour Name {
370*5113495bSYour Name 	return __qdf_ipa_wdi_reg_intf(in);
371*5113495bSYour Name }
372*5113495bSYour Name 
373*5113495bSYour Name /**
374*5113495bSYour Name  * qdf_ipa_wdi_dereg_intf - Client Driver should call this
375*5113495bSYour Name  * function to deregister before unload and after disconnect
376*5113495bSYour Name  * @netdev_name: Net device name
377*5113495bSYour Name  * @hdl: IPA handle
378*5113495bSYour Name  *
379*5113495bSYour Name  * @Return 0 on success, negative on failure
380*5113495bSYour Name  */
qdf_ipa_wdi_dereg_intf(const char * netdev_name,qdf_ipa_wdi_hdl_t hdl)381*5113495bSYour Name static inline int qdf_ipa_wdi_dereg_intf(const char *netdev_name,
382*5113495bSYour Name 					 qdf_ipa_wdi_hdl_t hdl)
383*5113495bSYour Name {
384*5113495bSYour Name 	return __qdf_ipa_wdi_dereg_intf(netdev_name, hdl);
385*5113495bSYour Name }
386*5113495bSYour Name 
387*5113495bSYour Name /**
388*5113495bSYour Name  * qdf_ipa_wdi_conn_pipes - Client should call this
389*5113495bSYour Name  * function to connect pipes
390*5113495bSYour Name  * @in:	[in] input parameters from client
391*5113495bSYour Name  * @out: [out] output params to client
392*5113495bSYour Name  *
393*5113495bSYour Name  * Note: Should not be called from atomic context and only
394*5113495bSYour Name  * after checking IPA readiness using ipa_register_ipa_ready_cb()
395*5113495bSYour Name  *
396*5113495bSYour Name  * @Return 0 on success, negative on failure
397*5113495bSYour Name  */
qdf_ipa_wdi_conn_pipes(qdf_ipa_wdi_conn_in_params_t * in,qdf_ipa_wdi_conn_out_params_t * out)398*5113495bSYour Name static inline int qdf_ipa_wdi_conn_pipes(qdf_ipa_wdi_conn_in_params_t *in,
399*5113495bSYour Name 			qdf_ipa_wdi_conn_out_params_t *out)
400*5113495bSYour Name {
401*5113495bSYour Name 	return __qdf_ipa_wdi_conn_pipes(in, out);
402*5113495bSYour Name }
403*5113495bSYour Name 
404*5113495bSYour Name /**
405*5113495bSYour Name  * qdf_ipa_wdi_disconn_pipes() - Client should call this
406*5113495bSYour Name  *		function to disconnect pipes
407*5113495bSYour Name  * @hdl: IPA handle
408*5113495bSYour Name  *
409*5113495bSYour Name  * Note: Should not be called from atomic context
410*5113495bSYour Name  *
411*5113495bSYour Name  * Returns: 0 on success, negative on failure
412*5113495bSYour Name  */
qdf_ipa_wdi_disconn_pipes(qdf_ipa_wdi_hdl_t hdl)413*5113495bSYour Name static inline int qdf_ipa_wdi_disconn_pipes(qdf_ipa_wdi_hdl_t hdl)
414*5113495bSYour Name {
415*5113495bSYour Name 	return __qdf_ipa_wdi_disconn_pipes(hdl);
416*5113495bSYour Name }
417*5113495bSYour Name 
418*5113495bSYour Name /**
419*5113495bSYour Name  * qdf_ipa_wdi_enable_pipes() - Client should call this
420*5113495bSYour Name  *		function to enable IPA offload data path
421*5113495bSYour Name  * @hdl: IPA handle
422*5113495bSYour Name  *
423*5113495bSYour Name  * Note: Should not be called from atomic context
424*5113495bSYour Name  *
425*5113495bSYour Name  * Returns: 0 on success, negative on failure
426*5113495bSYour Name  */
qdf_ipa_wdi_enable_pipes(qdf_ipa_wdi_hdl_t hdl)427*5113495bSYour Name static inline int qdf_ipa_wdi_enable_pipes(qdf_ipa_wdi_hdl_t hdl)
428*5113495bSYour Name {
429*5113495bSYour Name 	return __qdf_ipa_wdi_enable_pipes(hdl);
430*5113495bSYour Name }
431*5113495bSYour Name 
432*5113495bSYour Name /**
433*5113495bSYour Name  * qdf_ipa_wdi_disable_pipes() - Client should call this
434*5113495bSYour Name  *		function to disable IPA offload data path
435*5113495bSYour Name  * @hdl: IPA handle
436*5113495bSYour Name  *
437*5113495bSYour Name  * Note: Should not be called from atomic context
438*5113495bSYour Name  *
439*5113495bSYour Name  * Returns: 0 on success, negative on failure
440*5113495bSYour Name  */
qdf_ipa_wdi_disable_pipes(qdf_ipa_wdi_hdl_t hdl)441*5113495bSYour Name static inline int qdf_ipa_wdi_disable_pipes(qdf_ipa_wdi_hdl_t hdl)
442*5113495bSYour Name {
443*5113495bSYour Name 	return __qdf_ipa_wdi_disable_pipes(hdl);
444*5113495bSYour Name }
445*5113495bSYour Name 
446*5113495bSYour Name /**
447*5113495bSYour Name  * qdf_ipa_wdi_set_perf_profile() - Client should call this function to
448*5113495bSYour Name  *		set IPA clock bandwidth based on data rates
449*5113495bSYour Name  * @hdl: IPA handle
450*5113495bSYour Name  * @profile: [in] BandWidth profile to use
451*5113495bSYour Name  *
452*5113495bSYour Name  * Returns: 0 on success, negative on failure
453*5113495bSYour Name  */
qdf_ipa_wdi_set_perf_profile(qdf_ipa_wdi_hdl_t hdl,qdf_ipa_wdi_perf_profile_t * profile)454*5113495bSYour Name static inline int qdf_ipa_wdi_set_perf_profile(qdf_ipa_wdi_hdl_t hdl,
455*5113495bSYour Name 					       qdf_ipa_wdi_perf_profile_t *profile)
456*5113495bSYour Name {
457*5113495bSYour Name 	return __qdf_ipa_wdi_set_perf_profile(hdl, profile);
458*5113495bSYour Name }
459*5113495bSYour Name 
460*5113495bSYour Name /**
461*5113495bSYour Name  * qdf_ipa_wdi_create_smmu_mapping() - Client should call this function to
462*5113495bSYour Name  *		create smmu mapping
463*5113495bSYour Name  * @hdl: IPA handle
464*5113495bSYour Name  * @num_buffers: [in] number of buffers
465*5113495bSYour Name  * @info: [in] wdi buffer info
466*5113495bSYour Name  *
467*5113495bSYour Name  * Returns: 0 on success, negative on failure
468*5113495bSYour Name  */
qdf_ipa_wdi_create_smmu_mapping(qdf_ipa_wdi_hdl_t hdl,uint32_t num_buffers,qdf_ipa_wdi_buffer_info_t * info)469*5113495bSYour Name static inline int qdf_ipa_wdi_create_smmu_mapping(qdf_ipa_wdi_hdl_t hdl,
470*5113495bSYour Name 						  uint32_t num_buffers,
471*5113495bSYour Name 						  qdf_ipa_wdi_buffer_info_t *info)
472*5113495bSYour Name {
473*5113495bSYour Name 	return __qdf_ipa_wdi_create_smmu_mapping(hdl, num_buffers, info);
474*5113495bSYour Name }
475*5113495bSYour Name 
476*5113495bSYour Name /**
477*5113495bSYour Name  * qdf_ipa_wdi_release_smmu_mapping() - Client should call this function to
478*5113495bSYour Name  *		release smmu mapping
479*5113495bSYour Name  * @hdl: IPA handle
480*5113495bSYour Name  * @num_buffers: [in] number of buffers
481*5113495bSYour Name  * @info: [in] wdi buffer info
482*5113495bSYour Name  *
483*5113495bSYour Name  * Returns: 0 on success, negative on failure
484*5113495bSYour Name  */
qdf_ipa_wdi_release_smmu_mapping(qdf_ipa_wdi_hdl_t hdl,uint32_t num_buffers,qdf_ipa_wdi_buffer_info_t * info)485*5113495bSYour Name static inline int qdf_ipa_wdi_release_smmu_mapping(qdf_ipa_wdi_hdl_t hdl,
486*5113495bSYour Name 						   uint32_t num_buffers,
487*5113495bSYour Name 						   qdf_ipa_wdi_buffer_info_t *info)
488*5113495bSYour Name {
489*5113495bSYour Name 	return __qdf_ipa_wdi_release_smmu_mapping(hdl, num_buffers, info);
490*5113495bSYour Name }
491*5113495bSYour Name 
492*5113495bSYour Name #ifdef WDI3_STATS_UPDATE
493*5113495bSYour Name /**
494*5113495bSYour Name  * qdf_ipa_wdi_wlan_stats() - Client should call this function to
495*5113495bSYour Name  *		send Tx byte counts to IPA driver
496*5113495bSYour Name  * @tx_count: number of Tx bytes
497*5113495bSYour Name  *
498*5113495bSYour Name  * Returns: 0 on success, negative on failure
499*5113495bSYour Name  */
qdf_ipa_wdi_wlan_stats(qdf_ipa_wdi_tx_info_t * tx_stats)500*5113495bSYour Name static inline int qdf_ipa_wdi_wlan_stats(qdf_ipa_wdi_tx_info_t *tx_stats)
501*5113495bSYour Name {
502*5113495bSYour Name 	return __qdf_ipa_wdi_wlan_stats(tx_stats);
503*5113495bSYour Name }
504*5113495bSYour Name 
505*5113495bSYour Name /**
506*5113495bSYour Name  * qdf_ipa_uc_bw_monitor() - start/stop uc bw monitoring
507*5113495bSYour Name  * @bw_info: set bw info levels to monitor
508*5113495bSYour Name  *
509*5113495bSYour Name  * Returns: 0 on success, negative on failure
510*5113495bSYour Name  */
qdf_ipa_uc_bw_monitor(qdf_ipa_wdi_bw_info_t * bw_info)511*5113495bSYour Name static inline int qdf_ipa_uc_bw_monitor(qdf_ipa_wdi_bw_info_t *bw_info)
512*5113495bSYour Name {
513*5113495bSYour Name 	return __qdf_ipa_uc_bw_monitor(bw_info);
514*5113495bSYour Name }
515*5113495bSYour Name 
516*5113495bSYour Name #endif
517*5113495bSYour Name 
518*5113495bSYour Name #ifdef IPA_OPT_WIFI_DP
519*5113495bSYour Name /**
520*5113495bSYour Name  * qdf_ipa_wdi_register_flt_cb() - register cb functions with IPA
521*5113495bSYour Name  * for optional wifi datapath
522*5113495bSYour Name  * @hdl: ipa hdl
523*5113495bSYour Name  * @flt_rsrv_cb: cb for filter reservation
524*5113495bSYour Name  * @flt_rsrv_rel_cb: cb for filter release
525*5113495bSYour Name  * @flt_add_cb: cb for filter addition
526*5113495bSYour Name  * @flt_rem_cb: cb for filter removal
527*5113495bSYour Name  *
528*5113495bSYour Name  * Return: 0 on success, negative on failure
529*5113495bSYour Name  */
qdf_ipa_wdi_register_flt_cb(ipa_wdi_hdl_t hdl,ipa_wdi_opt_dpath_flt_rsrv_cb flt_rsrv_cb,ipa_wdi_opt_dpath_flt_rsrv_rel_cb flt_rsrv_rel_cb,ipa_wdi_opt_dpath_flt_add_cb flt_add_cb,ipa_wdi_opt_dpath_flt_rem_cb flt_rem_cb)530*5113495bSYour Name static inline int qdf_ipa_wdi_register_flt_cb(
531*5113495bSYour Name 			ipa_wdi_hdl_t hdl,
532*5113495bSYour Name 			ipa_wdi_opt_dpath_flt_rsrv_cb flt_rsrv_cb,
533*5113495bSYour Name 			ipa_wdi_opt_dpath_flt_rsrv_rel_cb flt_rsrv_rel_cb,
534*5113495bSYour Name 			ipa_wdi_opt_dpath_flt_add_cb flt_add_cb,
535*5113495bSYour Name 			ipa_wdi_opt_dpath_flt_rem_cb flt_rem_cb)
536*5113495bSYour Name {
537*5113495bSYour Name 	return __qdf_ipa_wdi_register_flt_cb((__qdf_ipa_wdi_hdl_t)hdl,
538*5113495bSYour Name 					     flt_rsrv_cb, flt_rsrv_rel_cb,
539*5113495bSYour Name 					     flt_add_cb, flt_rem_cb);
540*5113495bSYour Name }
541*5113495bSYour Name 
542*5113495bSYour Name /**
543*5113495bSYour Name  * ipa_wdi_opt_dpath_notify_flt_rsvd_per_inst() - notify IPA with filter
544*5113495bSYour Name  * reserve response for optional wifi datapath
545*5113495bSYour Name  * @hdl: ipa hdl
546*5113495bSYour Name  * @is_succes: true for success, false or failure
547*5113495bSYour Name  *
548*5113495bSYour Name  * Return: 0 on success, negative on failure
549*5113495bSYour Name  */
qdf_ipa_wdi_opt_dpath_notify_flt_rsvd_per_inst(ipa_wdi_hdl_t hdl,bool is_success)550*5113495bSYour Name static inline int qdf_ipa_wdi_opt_dpath_notify_flt_rsvd_per_inst(
551*5113495bSYour Name 					    ipa_wdi_hdl_t hdl, bool is_success)
552*5113495bSYour Name {
553*5113495bSYour Name 	return __qdf_ipa_wdi_opt_dpath_notify_flt_rsvd_per_inst(hdl,
554*5113495bSYour Name 								is_success);
555*5113495bSYour Name }
556*5113495bSYour Name 
557*5113495bSYour Name /**
558*5113495bSYour Name  * qdf_ipa_wdi_opt_dpath_notify_flt_rlsd_per_inst() - notify IPA with filter
559*5113495bSYour Name  * release response for optional wifi datapath
560*5113495bSYour Name  * @hdl: ipa hdl
561*5113495bSYour Name  * @is_succes: true for success, false or failure
562*5113495bSYour Name  *
563*5113495bSYour Name  * Return: 0 on success, negative on failure
564*5113495bSYour Name  */
qdf_ipa_wdi_opt_dpath_notify_flt_rlsd_per_inst(ipa_wdi_hdl_t hdl,bool is_success)565*5113495bSYour Name static inline int qdf_ipa_wdi_opt_dpath_notify_flt_rlsd_per_inst(
566*5113495bSYour Name 				ipa_wdi_hdl_t hdl, bool is_success)
567*5113495bSYour Name {
568*5113495bSYour Name 	return __qdf_ipa_wdi_opt_dpath_notify_flt_rlsd_per_inst(hdl,
569*5113495bSYour Name 								is_success);
570*5113495bSYour Name }
571*5113495bSYour Name 
572*5113495bSYour Name #else
qdf_ipa_wdi_opt_dpath_notify_flt_rsvd_per_inst(ipa_wdi_hdl_t hdl,bool is_success)573*5113495bSYour Name static inline int qdf_ipa_wdi_opt_dpath_notify_flt_rsvd_per_inst(
574*5113495bSYour Name 				ipa_wdi_hdl_t hdl, bool is_success)
575*5113495bSYour Name {
576*5113495bSYour Name 	return 0;
577*5113495bSYour Name }
578*5113495bSYour Name 
qdf_ipa_wdi_opt_dpath_notify_flt_rlsd_per_inst(ipa_wdi_hdl_t hdl,bool is_success)579*5113495bSYour Name static inline int qdf_ipa_wdi_opt_dpath_notify_flt_rlsd_per_inst(
580*5113495bSYour Name 				ipa_wdi_hdl_t hdl, bool is_success)
581*5113495bSYour Name {
582*5113495bSYour Name 	return 0;
583*5113495bSYour Name }
584*5113495bSYour Name #endif /* IPA_OPT_WIFI_DP  */
585*5113495bSYour Name #endif /* IPA_OFFLOAD */
586*5113495bSYour Name #endif /* QDF_IPA_WDI3_H */
587