1 /* 2 * Arch specific extensions to struct device 3 * 4 * This file is released under the GPLv2 5 */ 6 #ifndef ASMARM_DEVICE_H 7 #define ASMARM_DEVICE_H 8 9 struct dev_archdata { 10 #ifdef CONFIG_DMABOUNCE 11 struct dmabounce_device_info *dmabounce; 12 #endif 13 #ifdef CONFIG_IOMMU_API 14 void *iommu; /* private IOMMU data */ 15 #endif 16 #ifdef CONFIG_ARM_DMA_USE_IOMMU 17 struct dma_iommu_mapping *mapping; 18 #endif 19 #ifdef CONFIG_XEN 20 const struct dma_map_ops *dev_dma_ops; 21 #endif 22 bool dma_coherent; 23 }; 24 25 struct omap_device; 26 27 struct pdev_archdata { 28 #ifdef CONFIG_ARCH_OMAP 29 struct omap_device *od; 30 #endif 31 }; 32 33 #ifdef CONFIG_ARM_DMA_USE_IOMMU 34 #define to_dma_iommu_mapping(dev) ((dev)->archdata.mapping) 35 #else 36 #define to_dma_iommu_mapping(dev) NULL 37 #endif 38 39 #endif 40