aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dma-direct.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/dma-direct.h')
-rw-r--r--include/linux/dma-direct.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
index 8d9f33febde5..fbca184ff5a0 100644
--- a/include/linux/dma-direct.h
+++ b/include/linux/dma-direct.h
@@ -27,7 +27,8 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
27 if (!dev->dma_mask) 27 if (!dev->dma_mask)
28 return false; 28 return false;
29 29
30 return addr + size - 1 <= *dev->dma_mask; 30 return addr + size - 1 <=
31 min_not_zero(*dev->dma_mask, dev->bus_dma_mask);
31} 32}
32#endif /* !CONFIG_ARCH_HAS_PHYS_TO_DMA */ 33#endif /* !CONFIG_ARCH_HAS_PHYS_TO_DMA */
33 34
@@ -55,10 +56,15 @@ static inline void dma_mark_clean(void *addr, size_t size)
55} 56}
56#endif /* CONFIG_ARCH_HAS_DMA_MARK_CLEAN */ 57#endif /* CONFIG_ARCH_HAS_DMA_MARK_CLEAN */
57 58
59u64 dma_direct_get_required_mask(struct device *dev);
58void *dma_direct_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle, 60void *dma_direct_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
59 gfp_t gfp, unsigned long attrs); 61 gfp_t gfp, unsigned long attrs);
60void dma_direct_free(struct device *dev, size_t size, void *cpu_addr, 62void dma_direct_free(struct device *dev, size_t size, void *cpu_addr,
61 dma_addr_t dma_addr, unsigned long attrs); 63 dma_addr_t dma_addr, unsigned long attrs);
64void *dma_direct_alloc_pages(struct device *dev, size_t size,
65 dma_addr_t *dma_handle, gfp_t gfp, unsigned long attrs);
66void dma_direct_free_pages(struct device *dev, size_t size, void *cpu_addr,
67 dma_addr_t dma_addr, unsigned long attrs);
62dma_addr_t dma_direct_map_page(struct device *dev, struct page *page, 68dma_addr_t dma_direct_map_page(struct device *dev, struct page *page,
63 unsigned long offset, size_t size, enum dma_data_direction dir, 69 unsigned long offset, size_t size, enum dma_data_direction dir,
64 unsigned long attrs); 70 unsigned long attrs);