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 9struct 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 unsigned int dma_coherent:1; 23 unsigned int dma_ops_setup:1; 24}; 25 26struct omap_device; 27 28struct pdev_archdata { 29#ifdef CONFIG_ARCH_OMAP 30 struct omap_device *od; 31#endif 32}; 33 34#ifdef CONFIG_ARM_DMA_USE_IOMMU 35#define to_dma_iommu_mapping(dev) ((dev)->archdata.mapping) 36#else 37#define to_dma_iommu_mapping(dev) NULL 38#endif 39 40#endif 41