dma-iommu.h 1003 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. #include <linux/iommu.h>
  8. #ifdef CONFIG_IOMMU_DMA
  9. void iommu_setup_dma_ops(struct device *dev);
  10. int iommu_get_dma_cookie(struct iommu_domain *domain);
  11. void iommu_put_dma_cookie(struct iommu_domain *domain);
  12. int iommu_dma_init_fq(struct iommu_domain *domain);
  13. void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list);
  14. extern bool iommu_dma_forcedac;
  15. #else /* CONFIG_IOMMU_DMA */
  16. static inline void iommu_setup_dma_ops(struct device *dev)
  17. {
  18. }
  19. static inline int iommu_dma_init_fq(struct iommu_domain *domain)
  20. {
  21. return -EINVAL;
  22. }
  23. static inline int iommu_get_dma_cookie(struct iommu_domain *domain)
  24. {
  25. return -ENODEV;
  26. }
  27. static inline void iommu_put_dma_cookie(struct iommu_domain *domain)
  28. {
  29. }
  30. static inline void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list)
  31. {
  32. }
  33. #endif /* CONFIG_IOMMU_DMA */
  34. #endif /* __DMA_IOMMU_H */