1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2014-2015 ARM Ltd. 4 */ 5 #ifndef __DMA_IOMMU_H 6 #define __DMA_IOMMU_H 7 8 #include <linux/iommu.h> 9 10 #ifdef CONFIG_IOMMU_DMA 11 12 void iommu_setup_dma_ops(struct device *dev); 13 14 int iommu_get_dma_cookie(struct iommu_domain *domain); 15 void iommu_put_dma_cookie(struct iommu_domain *domain); 16 17 int iommu_dma_init_fq(struct iommu_domain *domain); 18 19 void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list); 20 21 extern bool iommu_dma_forcedac; 22 23 #else /* CONFIG_IOMMU_DMA */ 24 iommu_setup_dma_ops(struct device * dev)25static inline void iommu_setup_dma_ops(struct device *dev) 26 { 27 } 28 iommu_dma_init_fq(struct iommu_domain * domain)29static inline int iommu_dma_init_fq(struct iommu_domain *domain) 30 { 31 return -EINVAL; 32 } 33 iommu_get_dma_cookie(struct iommu_domain * domain)34static inline int iommu_get_dma_cookie(struct iommu_domain *domain) 35 { 36 return -ENODEV; 37 } 38 iommu_put_dma_cookie(struct iommu_domain * domain)39static inline void iommu_put_dma_cookie(struct iommu_domain *domain) 40 { 41 } 42 iommu_dma_get_resv_regions(struct device * dev,struct list_head * list)43static inline void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list) 44 { 45 } 46 47 #endif /* CONFIG_IOMMU_DMA */ 48 #endif /* __DMA_IOMMU_H */ 49