diff options
Diffstat (limited to 'arch/arm/include/asm/dma-mapping.h')
-rw-r--r-- | arch/arm/include/asm/dma-mapping.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index f5945d4e4e9f..8acfef48124a 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h @@ -10,7 +10,6 @@ #include <asm-generic/dma-coherent.h> #include <asm/memory.h> -#include <asm/cacheflush.h> #include <xen/xen.h> #include <asm/xen/hypervisor.h> @@ -113,15 +112,12 @@ static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr) static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) { u64 limit, mask; - - if (dev->dma_mask) - mask = *dev->dma_mask; - else - mask = dev->coherent_dma_mask; - if (mask == 0) + if (!dev->dma_mask) return 0; + mask = *dev->dma_mask; + limit = (mask + 1) & ~mask; if (limit && size > limit) return 0; |