]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm/include/asm/dma-iommu.h
Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[karo-tx-linux.git] / arch / arm / include / asm / dma-iommu.h
1 #ifndef ASMARM_DMA_IOMMU_H
2 #define ASMARM_DMA_IOMMU_H
3
4 #ifdef __KERNEL__
5
6 #include <linux/mm_types.h>
7 #include <linux/scatterlist.h>
8 #include <linux/dma-debug.h>
9 #include <linux/kmemcheck.h>
10 #include <linux/kref.h>
11
12 struct dma_iommu_mapping {
13         /* iommu specific data */
14         struct iommu_domain     *domain;
15
16         void                    *bitmap;
17         size_t                  bits;
18         unsigned int            order;
19         dma_addr_t              base;
20
21         spinlock_t              lock;
22         struct kref             kref;
23 };
24
25 struct dma_iommu_mapping *
26 arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, size_t size,
27                          int order);
28
29 void arm_iommu_release_mapping(struct dma_iommu_mapping *mapping);
30
31 int arm_iommu_attach_device(struct device *dev,
32                                         struct dma_iommu_mapping *mapping);
33 void arm_iommu_detach_device(struct device *dev);
34
35 #endif /* __KERNEL__ */
36 #endif