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