--- zzzz-none-000/linux-3.10.107/arch/arm/include/asm/dma-iommu.h 2017-06-27 09:49:32.000000000 +0000 +++ scorpion-7490-727/linux-3.10.107/arch/arm/include/asm/dma-iommu.h 2021-02-04 17:41:59.000000000 +0000 @@ -8,23 +8,28 @@ #include #include #include +#include struct dma_iommu_mapping { /* iommu specific data */ struct iommu_domain *domain; - void *bitmap; - size_t bits; - unsigned int order; + unsigned long **bitmaps; /* array of bitmaps */ + unsigned int nr_bitmaps; /* nr of elements in array */ + unsigned int extensions; + size_t bitmap_size; /* size of a single bitmap */ + size_t bits; /* per bitmap */ dma_addr_t base; + u64 size; spinlock_t lock; struct kref kref; + + struct dma_fast_smmu_mapping *fast; }; -struct dma_iommu_mapping * -arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, size_t size, - int order); +struct dma_iommu_mapping *arm_iommu_create_mapping(struct device *dev, + struct bus_type *bus, dma_addr_t base, u64 size); void arm_iommu_release_mapping(struct dma_iommu_mapping *mapping);