xref: /wlan-driver/qcacld-3.0/core/pld/src/pld_snoc.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-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
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name #ifndef __PLD_SNOC_H__
21*5113495bSYour Name #define __PLD_SNOC_H__
22*5113495bSYour Name 
23*5113495bSYour Name #ifdef CONFIG_CNSS_OUT_OF_TREE
24*5113495bSYour Name #ifdef CONFIG_PLD_SNOC_ICNSS
25*5113495bSYour Name #ifdef CONFIG_PLD_SNOC_ICNSS2
26*5113495bSYour Name #include "icnss2.h"
27*5113495bSYour Name #else
28*5113495bSYour Name #include "icnss.h"
29*5113495bSYour Name #endif
30*5113495bSYour Name #endif
31*5113495bSYour Name #else
32*5113495bSYour Name #ifdef CONFIG_PLD_SNOC_ICNSS
33*5113495bSYour Name #ifdef CONFIG_PLD_SNOC_ICNSS2
34*5113495bSYour Name #include <soc/qcom/icnss2.h>
35*5113495bSYour Name #else
36*5113495bSYour Name #include <soc/qcom/icnss.h>
37*5113495bSYour Name #endif
38*5113495bSYour Name #endif
39*5113495bSYour Name #endif
40*5113495bSYour Name 
41*5113495bSYour Name #include "pld_internal.h"
42*5113495bSYour Name 
43*5113495bSYour Name #ifndef CONFIG_PLD_SNOC_ICNSS
pld_snoc_register_driver(void)44*5113495bSYour Name static inline int pld_snoc_register_driver(void)
45*5113495bSYour Name {
46*5113495bSYour Name 	return 0;
47*5113495bSYour Name }
48*5113495bSYour Name 
pld_snoc_unregister_driver(void)49*5113495bSYour Name static inline void pld_snoc_unregister_driver(void)
50*5113495bSYour Name {
51*5113495bSYour Name }
pld_snoc_wlan_enable(struct device * dev,struct pld_wlan_enable_cfg * config,enum pld_driver_mode mode,const char * host_version)52*5113495bSYour Name static inline int pld_snoc_wlan_enable(struct device *dev,
53*5113495bSYour Name 			struct pld_wlan_enable_cfg *config,
54*5113495bSYour Name 			enum pld_driver_mode mode, const char *host_version)
55*5113495bSYour Name {
56*5113495bSYour Name 	return 0;
57*5113495bSYour Name }
pld_snoc_wlan_disable(struct device * dev,enum pld_driver_mode mode)58*5113495bSYour Name static inline int pld_snoc_wlan_disable(struct device *dev,
59*5113495bSYour Name 					enum pld_driver_mode mode)
60*5113495bSYour Name {
61*5113495bSYour Name 	return 0;
62*5113495bSYour Name }
pld_snoc_ce_request_irq(struct device * dev,unsigned int ce_id,irqreturn_t (* handler)(int,void *),unsigned long flags,const char * name,void * ctx)63*5113495bSYour Name static inline int pld_snoc_ce_request_irq(struct device *dev,
64*5113495bSYour Name 					  unsigned int ce_id,
65*5113495bSYour Name 					  irqreturn_t (*handler)(int, void *),
66*5113495bSYour Name 					  unsigned long flags,
67*5113495bSYour Name 					  const char *name, void *ctx)
68*5113495bSYour Name {
69*5113495bSYour Name 	return 0;
70*5113495bSYour Name }
pld_snoc_ce_free_irq(struct device * dev,unsigned int ce_id,void * ctx)71*5113495bSYour Name static inline int pld_snoc_ce_free_irq(struct device *dev,
72*5113495bSYour Name 				       unsigned int ce_id, void *ctx)
73*5113495bSYour Name {
74*5113495bSYour Name 	return 0;
75*5113495bSYour Name }
pld_snoc_enable_irq(struct device * dev,unsigned int ce_id)76*5113495bSYour Name static inline void pld_snoc_enable_irq(struct device *dev, unsigned int ce_id)
77*5113495bSYour Name {
78*5113495bSYour Name }
pld_snoc_disable_irq(struct device * dev,unsigned int ce_id)79*5113495bSYour Name static inline void pld_snoc_disable_irq(struct device *dev, unsigned int ce_id)
80*5113495bSYour Name {
81*5113495bSYour Name }
pld_snoc_get_soc_info(struct device * dev,struct pld_soc_info * info)82*5113495bSYour Name static inline int pld_snoc_get_soc_info(struct device *dev, struct pld_soc_info *info)
83*5113495bSYour Name {
84*5113495bSYour Name 	return 0;
85*5113495bSYour Name }
pld_snoc_get_ce_id(struct device * dev,int irq)86*5113495bSYour Name static inline int pld_snoc_get_ce_id(struct device *dev, int irq)
87*5113495bSYour Name {
88*5113495bSYour Name 	return 0;
89*5113495bSYour Name }
pld_snoc_power_on(struct device * dev)90*5113495bSYour Name static inline int pld_snoc_power_on(struct device *dev)
91*5113495bSYour Name {
92*5113495bSYour Name 	return 0;
93*5113495bSYour Name }
pld_snoc_power_off(struct device * dev)94*5113495bSYour Name static inline int pld_snoc_power_off(struct device *dev)
95*5113495bSYour Name {
96*5113495bSYour Name 	return 0;
97*5113495bSYour Name }
pld_snoc_get_irq(struct device * dev,int ce_id)98*5113495bSYour Name static inline int pld_snoc_get_irq(struct device *dev, int ce_id)
99*5113495bSYour Name {
100*5113495bSYour Name 	return 0;
101*5113495bSYour Name }
pld_snoc_athdiag_read(struct device * dev,uint32_t offset,uint32_t memtype,uint32_t datalen,uint8_t * output)102*5113495bSYour Name static inline int pld_snoc_athdiag_read(struct device *dev, uint32_t offset,
103*5113495bSYour Name 					uint32_t memtype, uint32_t datalen,
104*5113495bSYour Name 					uint8_t *output)
105*5113495bSYour Name {
106*5113495bSYour Name 	return 0;
107*5113495bSYour Name }
pld_snoc_athdiag_write(struct device * dev,uint32_t offset,uint32_t memtype,uint32_t datalen,uint8_t * input)108*5113495bSYour Name static inline int pld_snoc_athdiag_write(struct device *dev, uint32_t offset,
109*5113495bSYour Name 					 uint32_t memtype, uint32_t datalen,
110*5113495bSYour Name 					 uint8_t *input)
111*5113495bSYour Name {
112*5113495bSYour Name 	return 0;
113*5113495bSYour Name }
114*5113495bSYour Name 
115*5113495bSYour Name #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0))
pld_snoc_smmu_get_domain(struct device * dev)116*5113495bSYour Name static inline void *pld_snoc_smmu_get_domain(struct device *dev)
117*5113495bSYour Name {
118*5113495bSYour Name 	return NULL;
119*5113495bSYour Name }
120*5113495bSYour Name 
121*5113495bSYour Name #else
pld_snoc_smmu_get_mapping(struct device * dev)122*5113495bSYour Name static inline void *pld_snoc_smmu_get_mapping(struct device *dev)
123*5113495bSYour Name {
124*5113495bSYour Name 	return NULL;
125*5113495bSYour Name }
126*5113495bSYour Name #endif
127*5113495bSYour Name 
pld_snoc_idle_restart(struct device * dev)128*5113495bSYour Name static inline int pld_snoc_idle_restart(struct device *dev)
129*5113495bSYour Name {
130*5113495bSYour Name 	return 0;
131*5113495bSYour Name }
132*5113495bSYour Name 
pld_snoc_idle_shutdown(struct device * dev)133*5113495bSYour Name static inline int pld_snoc_idle_shutdown(struct device *dev)
134*5113495bSYour Name {
135*5113495bSYour Name 	return 0;
136*5113495bSYour Name }
137*5113495bSYour Name 
pld_snoc_get_device_config(void)138*5113495bSYour Name static inline unsigned long pld_snoc_get_device_config(void)
139*5113495bSYour Name {
140*5113495bSYour Name 	return 0;
141*5113495bSYour Name }
142*5113495bSYour Name 
pld_snoc_smmu_map(struct device * dev,phys_addr_t paddr,uint32_t * iova_addr,size_t size)143*5113495bSYour Name static inline int pld_snoc_smmu_map(struct device *dev, phys_addr_t paddr,
144*5113495bSYour Name 				    uint32_t *iova_addr, size_t size)
145*5113495bSYour Name {
146*5113495bSYour Name 	return 0;
147*5113495bSYour Name }
148*5113495bSYour Name 
pld_snoc_smmu_unmap(struct device * dev,uint32_t iova_addr,size_t size)149*5113495bSYour Name static inline int pld_snoc_smmu_unmap(struct device *dev,
150*5113495bSYour Name 				      uint32_t iova_addr, size_t size)
151*5113495bSYour Name {
152*5113495bSYour Name 	return 0;
153*5113495bSYour Name }
154*5113495bSYour Name 
155*5113495bSYour Name static inline
pld_snoc_socinfo_get_serial_number(struct device * dev)156*5113495bSYour Name unsigned int pld_snoc_socinfo_get_serial_number(struct device *dev)
157*5113495bSYour Name {
158*5113495bSYour Name 	return 0;
159*5113495bSYour Name }
pld_snoc_is_qmi_disable(struct device * dev)160*5113495bSYour Name static inline int pld_snoc_is_qmi_disable(struct device *dev)
161*5113495bSYour Name {
162*5113495bSYour Name 	return 0;
163*5113495bSYour Name }
164*5113495bSYour Name 
pld_snoc_is_fw_down(struct device * dev)165*5113495bSYour Name static inline int pld_snoc_is_fw_down(struct device *dev)
166*5113495bSYour Name {
167*5113495bSYour Name 	return 0;
168*5113495bSYour Name }
169*5113495bSYour Name 
pld_snoc_is_low_power_mode(struct device * dev)170*5113495bSYour Name static inline int pld_snoc_is_low_power_mode(struct device *dev)
171*5113495bSYour Name {
172*5113495bSYour Name 	return 0;
173*5113495bSYour Name }
174*5113495bSYour Name 
pld_snoc_set_fw_log_mode(struct device * dev,u8 fw_log_mode)175*5113495bSYour Name static inline int pld_snoc_set_fw_log_mode(struct device *dev, u8 fw_log_mode)
176*5113495bSYour Name {
177*5113495bSYour Name 	return 0;
178*5113495bSYour Name }
pld_snoc_force_assert_target(struct device * dev)179*5113495bSYour Name static inline int pld_snoc_force_assert_target(struct device *dev)
180*5113495bSYour Name {
181*5113495bSYour Name 	return 0;
182*5113495bSYour Name }
183*5113495bSYour Name 
pld_snoc_is_pdr(void)184*5113495bSYour Name static inline int pld_snoc_is_pdr(void)
185*5113495bSYour Name {
186*5113495bSYour Name 	return 0;
187*5113495bSYour Name }
188*5113495bSYour Name 
pld_snoc_is_fw_rejuvenate(void)189*5113495bSYour Name static inline int pld_snoc_is_fw_rejuvenate(void)
190*5113495bSYour Name {
191*5113495bSYour Name 	return 0;
192*5113495bSYour Name }
193*5113495bSYour Name 
pld_snoc_block_shutdown(bool status)194*5113495bSYour Name static inline void pld_snoc_block_shutdown(bool status)
195*5113495bSYour Name {
196*5113495bSYour Name }
197*5113495bSYour Name 
198*5113495bSYour Name #ifdef FEATURE_WLAN_TIME_SYNC_FTM
199*5113495bSYour Name static inline int
pld_snoc_get_audio_wlan_timestamp(struct device * dev,enum pld_wlan_time_sync_trigger_type type,uint64_t * ts)200*5113495bSYour Name pld_snoc_get_audio_wlan_timestamp(struct device *dev,
201*5113495bSYour Name 				  enum pld_wlan_time_sync_trigger_type type,
202*5113495bSYour Name 				  uint64_t *ts)
203*5113495bSYour Name {
204*5113495bSYour Name 	return 0;
205*5113495bSYour Name }
206*5113495bSYour Name #endif /* FEATURE_WLAN_TIME_SYNC_FTM */
207*5113495bSYour Name 
208*5113495bSYour Name #else
209*5113495bSYour Name /**
210*5113495bSYour Name  * pld_snoc_register_driver() - Register platform device callback functions
211*5113495bSYour Name  *
212*5113495bSYour Name  * Return: int
213*5113495bSYour Name  */
214*5113495bSYour Name int pld_snoc_register_driver(void);
215*5113495bSYour Name 
216*5113495bSYour Name /**
217*5113495bSYour Name  * pld_snoc_unregister_driver() - Unregister platform device callback functions
218*5113495bSYour Name  *
219*5113495bSYour Name  * Return: void
220*5113495bSYour Name  */
221*5113495bSYour Name void pld_snoc_unregister_driver(void);
222*5113495bSYour Name 
223*5113495bSYour Name /**
224*5113495bSYour Name  * pld_snoc_wlan_enable() - Enable WLAN
225*5113495bSYour Name  * @dev: device
226*5113495bSYour Name  * @config: WLAN configuration data
227*5113495bSYour Name  * @mode: WLAN mode
228*5113495bSYour Name  * @host_version: host software version
229*5113495bSYour Name  *
230*5113495bSYour Name  * This function enables WLAN FW. It passed WLAN configuration data,
231*5113495bSYour Name  * WLAN mode and host software version to FW.
232*5113495bSYour Name  *
233*5113495bSYour Name  * Return: 0 for success
234*5113495bSYour Name  *         Non zero failure code for errors
235*5113495bSYour Name  */
236*5113495bSYour Name int pld_snoc_wlan_enable(struct device *dev,
237*5113495bSYour Name 			 struct pld_wlan_enable_cfg *config,
238*5113495bSYour Name 			 enum pld_driver_mode mode, const char *host_version);
239*5113495bSYour Name 
240*5113495bSYour Name /**
241*5113495bSYour Name  * pld_snoc_wlan_disable() - Disable WLAN
242*5113495bSYour Name  * @dev: device
243*5113495bSYour Name  * @mode: WLAN mode
244*5113495bSYour Name  *
245*5113495bSYour Name  * This function disables WLAN FW. It passes WLAN mode to FW.
246*5113495bSYour Name  *
247*5113495bSYour Name  * Return: 0 for success
248*5113495bSYour Name  *         Non zero failure code for errors
249*5113495bSYour Name  */
250*5113495bSYour Name int pld_snoc_wlan_disable(struct device *dev, enum pld_driver_mode mode);
251*5113495bSYour Name 
252*5113495bSYour Name /**
253*5113495bSYour Name  * pld_snoc_get_soc_info() - Get SOC information
254*5113495bSYour Name  * @dev: device
255*5113495bSYour Name  * @info: buffer to SOC information
256*5113495bSYour Name  *
257*5113495bSYour Name  * Return SOC info to the buffer.
258*5113495bSYour Name  *
259*5113495bSYour Name  * Return: 0 for success
260*5113495bSYour Name  *         Non zero failure code for errors
261*5113495bSYour Name  */
262*5113495bSYour Name int pld_snoc_get_soc_info(struct device *dev, struct pld_soc_info *info);
263*5113495bSYour Name 
264*5113495bSYour Name #ifdef FEATURE_WLAN_TIME_SYNC_FTM
265*5113495bSYour Name /**
266*5113495bSYour Name  * pld_snoc_get_audio_wlan_timestamp() - Get audio timestamp
267*5113495bSYour Name  * @dev: device
268*5113495bSYour Name  * @type: trigger type
269*5113495bSYour Name  * @ts: timestamp
270*5113495bSYour Name  *
271*5113495bSYour Name  * Return audio timestamp to the ts.
272*5113495bSYour Name  *
273*5113495bSYour Name  * Return: 0 for success
274*5113495bSYour Name  *         Non zero failure code for errors
275*5113495bSYour Name  */
276*5113495bSYour Name static inline int
pld_snoc_get_audio_wlan_timestamp(struct device * dev,enum pld_wlan_time_sync_trigger_type type,uint64_t * ts)277*5113495bSYour Name pld_snoc_get_audio_wlan_timestamp(struct device *dev,
278*5113495bSYour Name 				  enum pld_wlan_time_sync_trigger_type type,
279*5113495bSYour Name 				  uint64_t *ts)
280*5113495bSYour Name {
281*5113495bSYour Name 	if (!dev)
282*5113495bSYour Name 		return -ENODEV;
283*5113495bSYour Name 
284*5113495bSYour Name 	return 0;
285*5113495bSYour Name }
286*5113495bSYour Name #endif /* FEATURE_WLAN_TIME_SYNC_FTM */
pld_snoc_ce_request_irq(struct device * dev,unsigned int ce_id,irqreturn_t (* handler)(int,void *),unsigned long flags,const char * name,void * ctx)287*5113495bSYour Name static inline int pld_snoc_ce_request_irq(struct device *dev,
288*5113495bSYour Name 					  unsigned int ce_id,
289*5113495bSYour Name 					  irqreturn_t (*handler)(int, void *),
290*5113495bSYour Name 					  unsigned long flags,
291*5113495bSYour Name 					  const char *name, void *ctx)
292*5113495bSYour Name {
293*5113495bSYour Name 	if (!dev)
294*5113495bSYour Name 		return -ENODEV;
295*5113495bSYour Name 
296*5113495bSYour Name 	return icnss_ce_request_irq(dev, ce_id, handler, flags, name, ctx);
297*5113495bSYour Name }
298*5113495bSYour Name 
pld_snoc_ce_free_irq(struct device * dev,unsigned int ce_id,void * ctx)299*5113495bSYour Name static inline int pld_snoc_ce_free_irq(struct device *dev,
300*5113495bSYour Name 				       unsigned int ce_id, void *ctx)
301*5113495bSYour Name {
302*5113495bSYour Name 	if (!dev)
303*5113495bSYour Name 		return -ENODEV;
304*5113495bSYour Name 
305*5113495bSYour Name 	return icnss_ce_free_irq(dev, ce_id, ctx);
306*5113495bSYour Name }
307*5113495bSYour Name 
pld_snoc_enable_irq(struct device * dev,unsigned int ce_id)308*5113495bSYour Name static inline void pld_snoc_enable_irq(struct device *dev, unsigned int ce_id)
309*5113495bSYour Name {
310*5113495bSYour Name 	if (dev)
311*5113495bSYour Name 		icnss_enable_irq(dev, ce_id);
312*5113495bSYour Name }
313*5113495bSYour Name 
pld_snoc_disable_irq(struct device * dev,unsigned int ce_id)314*5113495bSYour Name static inline void pld_snoc_disable_irq(struct device *dev, unsigned int ce_id)
315*5113495bSYour Name {
316*5113495bSYour Name 	if (dev)
317*5113495bSYour Name 		icnss_disable_irq(dev, ce_id);
318*5113495bSYour Name }
319*5113495bSYour Name 
pld_snoc_get_ce_id(struct device * dev,int irq)320*5113495bSYour Name static inline int pld_snoc_get_ce_id(struct device *dev, int irq)
321*5113495bSYour Name {
322*5113495bSYour Name 	if (!dev)
323*5113495bSYour Name 		return -ENODEV;
324*5113495bSYour Name 
325*5113495bSYour Name 	return icnss_get_ce_id(dev, irq);
326*5113495bSYour Name }
327*5113495bSYour Name 
pld_snoc_get_irq(struct device * dev,int ce_id)328*5113495bSYour Name static inline int pld_snoc_get_irq(struct device *dev, int ce_id)
329*5113495bSYour Name {
330*5113495bSYour Name 	if (!dev)
331*5113495bSYour Name 		return -ENODEV;
332*5113495bSYour Name 
333*5113495bSYour Name 	return icnss_get_irq(dev, ce_id);
334*5113495bSYour Name }
335*5113495bSYour Name 
pld_snoc_power_on(struct device * dev)336*5113495bSYour Name static inline int pld_snoc_power_on(struct device *dev)
337*5113495bSYour Name {
338*5113495bSYour Name 	return icnss_power_on(dev);
339*5113495bSYour Name }
pld_snoc_power_off(struct device * dev)340*5113495bSYour Name static inline int pld_snoc_power_off(struct device *dev)
341*5113495bSYour Name {
342*5113495bSYour Name 	return icnss_power_off(dev);
343*5113495bSYour Name }
pld_snoc_athdiag_read(struct device * dev,uint32_t offset,uint32_t memtype,uint32_t datalen,uint8_t * output)344*5113495bSYour Name static inline int pld_snoc_athdiag_read(struct device *dev, uint32_t offset,
345*5113495bSYour Name 					uint32_t memtype, uint32_t datalen,
346*5113495bSYour Name 					uint8_t *output)
347*5113495bSYour Name {
348*5113495bSYour Name 	return icnss_athdiag_read(dev, offset, memtype, datalen, output);
349*5113495bSYour Name }
pld_snoc_athdiag_write(struct device * dev,uint32_t offset,uint32_t memtype,uint32_t datalen,uint8_t * input)350*5113495bSYour Name static inline int pld_snoc_athdiag_write(struct device *dev, uint32_t offset,
351*5113495bSYour Name 					 uint32_t memtype, uint32_t datalen,
352*5113495bSYour Name 					 uint8_t *input)
353*5113495bSYour Name {
354*5113495bSYour Name 	return icnss_athdiag_write(dev, offset, memtype, datalen, input);
355*5113495bSYour Name }
356*5113495bSYour Name 
357*5113495bSYour Name #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0))
pld_snoc_smmu_get_domain(struct device * dev)358*5113495bSYour Name static inline void *pld_snoc_smmu_get_domain(struct device *dev)
359*5113495bSYour Name {
360*5113495bSYour Name 	return icnss_smmu_get_domain(dev);
361*5113495bSYour Name }
362*5113495bSYour Name 
363*5113495bSYour Name #else
pld_snoc_smmu_get_mapping(struct device * dev)364*5113495bSYour Name static inline void *pld_snoc_smmu_get_mapping(struct device *dev)
365*5113495bSYour Name {
366*5113495bSYour Name 	return icnss_smmu_get_mapping(dev);
367*5113495bSYour Name }
368*5113495bSYour Name #endif
369*5113495bSYour Name 
pld_snoc_smmu_map(struct device * dev,phys_addr_t paddr,uint32_t * iova_addr,size_t size)370*5113495bSYour Name static inline int pld_snoc_smmu_map(struct device *dev, phys_addr_t paddr,
371*5113495bSYour Name 				    uint32_t *iova_addr, size_t size)
372*5113495bSYour Name {
373*5113495bSYour Name 	return icnss_smmu_map(dev, paddr, iova_addr, size);
374*5113495bSYour Name }
375*5113495bSYour Name 
376*5113495bSYour Name #ifdef CONFIG_SMMU_S1_UNMAP
pld_snoc_smmu_unmap(struct device * dev,uint32_t iova_addr,size_t size)377*5113495bSYour Name static inline int pld_snoc_smmu_unmap(struct device *dev,
378*5113495bSYour Name 				      uint32_t iova_addr, size_t size)
379*5113495bSYour Name {
380*5113495bSYour Name 	return icnss_smmu_unmap(dev, iova_addr, size);
381*5113495bSYour Name }
382*5113495bSYour Name 
383*5113495bSYour Name #else
pld_snoc_smmu_unmap(struct device * dev,uint32_t iova_addr,size_t size)384*5113495bSYour Name static inline int pld_snoc_smmu_unmap(struct device *dev,
385*5113495bSYour Name 				      uint32_t iova_addr, size_t size)
386*5113495bSYour Name {
387*5113495bSYour Name 	return 0;
388*5113495bSYour Name }
389*5113495bSYour Name #endif
390*5113495bSYour Name 
391*5113495bSYour Name static inline
pld_snoc_socinfo_get_serial_number(struct device * dev)392*5113495bSYour Name unsigned int pld_snoc_socinfo_get_serial_number(struct device *dev)
393*5113495bSYour Name {
394*5113495bSYour Name 	return icnss_socinfo_get_serial_number(dev);
395*5113495bSYour Name }
396*5113495bSYour Name 
pld_snoc_is_fw_down(struct device * dev)397*5113495bSYour Name static inline int pld_snoc_is_fw_down(struct device *dev)
398*5113495bSYour Name {
399*5113495bSYour Name 	return icnss_is_fw_down();
400*5113495bSYour Name }
401*5113495bSYour Name 
402*5113495bSYour Name #ifdef CONFIG_ENABLE_LOW_POWER_MODE
pld_snoc_is_low_power_mode(struct device * dev)403*5113495bSYour Name static inline int pld_snoc_is_low_power_mode(struct device *dev)
404*5113495bSYour Name {
405*5113495bSYour Name 	return icnss_is_low_power();
406*5113495bSYour Name }
407*5113495bSYour Name #else
pld_snoc_is_low_power_mode(struct device * dev)408*5113495bSYour Name static inline int pld_snoc_is_low_power_mode(struct device *dev)
409*5113495bSYour Name {
410*5113495bSYour Name 	return 0;
411*5113495bSYour Name }
412*5113495bSYour Name #endif
413*5113495bSYour Name 
pld_snoc_is_qmi_disable(struct device * dev)414*5113495bSYour Name static inline int pld_snoc_is_qmi_disable(struct device *dev)
415*5113495bSYour Name {
416*5113495bSYour Name 	if (!dev)
417*5113495bSYour Name 		return -ENODEV;
418*5113495bSYour Name 
419*5113495bSYour Name 	return icnss_is_qmi_disable(dev);
420*5113495bSYour Name }
421*5113495bSYour Name 
pld_snoc_set_fw_log_mode(struct device * dev,u8 fw_log_mode)422*5113495bSYour Name static inline int pld_snoc_set_fw_log_mode(struct device *dev, u8 fw_log_mode)
423*5113495bSYour Name {
424*5113495bSYour Name 	if (!dev)
425*5113495bSYour Name 		return -ENODEV;
426*5113495bSYour Name 
427*5113495bSYour Name 	return icnss_set_fw_log_mode(dev, fw_log_mode);
428*5113495bSYour Name }
429*5113495bSYour Name 
pld_snoc_force_assert_target(struct device * dev)430*5113495bSYour Name static inline int pld_snoc_force_assert_target(struct device *dev)
431*5113495bSYour Name {
432*5113495bSYour Name 	return icnss_trigger_recovery(dev);
433*5113495bSYour Name }
434*5113495bSYour Name 
pld_snoc_is_pdr(void)435*5113495bSYour Name static inline int pld_snoc_is_pdr(void)
436*5113495bSYour Name {
437*5113495bSYour Name 	return icnss_is_pdr();
438*5113495bSYour Name }
439*5113495bSYour Name 
pld_snoc_is_fw_rejuvenate(void)440*5113495bSYour Name static inline int pld_snoc_is_fw_rejuvenate(void)
441*5113495bSYour Name {
442*5113495bSYour Name 	return icnss_is_rejuvenate();
443*5113495bSYour Name }
444*5113495bSYour Name 
pld_snoc_block_shutdown(bool status)445*5113495bSYour Name static inline void pld_snoc_block_shutdown(bool status)
446*5113495bSYour Name {
447*5113495bSYour Name 	icnss_block_shutdown(status);
448*5113495bSYour Name }
449*5113495bSYour Name 
pld_snoc_idle_restart(struct device * dev)450*5113495bSYour Name static inline int pld_snoc_idle_restart(struct device *dev)
451*5113495bSYour Name {
452*5113495bSYour Name 	return icnss_idle_restart(dev);
453*5113495bSYour Name }
454*5113495bSYour Name 
pld_snoc_idle_shutdown(struct device * dev)455*5113495bSYour Name static inline int pld_snoc_idle_shutdown(struct device *dev)
456*5113495bSYour Name {
457*5113495bSYour Name 	return icnss_idle_shutdown(dev);
458*5113495bSYour Name }
459*5113495bSYour Name 
pld_snoc_get_device_config(void)460*5113495bSYour Name static inline unsigned long pld_snoc_get_device_config(void)
461*5113495bSYour Name {
462*5113495bSYour Name 	return icnss_get_device_config();
463*5113495bSYour Name }
464*5113495bSYour Name #endif
465*5113495bSYour Name #endif
466