dma-mapping.c 660 B

12345678910111213141516171819202122232425262728293031323334
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <linux/dma-mapping.h>
  3. #include <linux/swiotlb.h>
  4. #include <linux/export.h>
  5. /* Set this to 1 if there is a HW IOMMU in the system */
  6. int iommu_detected __read_mostly;
  7. const struct dma_map_ops *dma_ops;
  8. EXPORT_SYMBOL(dma_ops);
  9. #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16)
  10. static int __init dma_init(void)
  11. {
  12. dma_debug_init(PREALLOC_DMA_DEBUG_ENTRIES);
  13. return 0;
  14. }
  15. fs_initcall(dma_init);
  16. const struct dma_map_ops *dma_get_ops(struct device *dev)
  17. {
  18. return dma_ops;
  19. }
  20. EXPORT_SYMBOL(dma_get_ops);
  21. #ifdef CONFIG_SWIOTLB
  22. void __init swiotlb_dma_init(void)
  23. {
  24. dma_ops = &swiotlb_dma_ops;
  25. swiotlb_init(1);
  26. }
  27. #endif