Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.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
11 struct dma_iommu_mapping {
12         /* iommu specific data */
13         struct iommu_domain     *domain;
14
15         void                    *bitmap;
16         size_t                  bits;
17         unsigned int            order;
18         dma_addr_t              base;
19
20         spinlock_t              lock;
21         struct kref             kref;
22 };
23
24 struct dma_iommu_mapping *
25 arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, size_t size,
26                          int order);
27
28 void arm_iommu_release_mapping(struct dma_iommu_mapping *mapping);
29
30 int arm_iommu_attach_device(struct device *dev,
31                                         struct dma_iommu_mapping *mapping);
32
33 #endif /* __KERNEL__ */
34 #endif