Commit 1124d6d2 authored by Russell King's avatar Russell King Committed by Russell King

[ARM] dma: correct dma_supported() implementation

dma_supported() is supposed to indicate whether the system can support
the DMA mask it was passed, which depends on the maximal address which
can be returned for DMA allocations.  If the mask is smaller than that,
we are unable to guarantee that the driver can reliably obtain suitable
memory.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 70d13e08
...@@ -69,7 +69,9 @@ extern void dma_cache_maint(const void *kaddr, size_t size, int rw); ...@@ -69,7 +69,9 @@ extern void dma_cache_maint(const void *kaddr, size_t size, int rw);
*/ */
static inline int dma_supported(struct device *dev, u64 mask) static inline int dma_supported(struct device *dev, u64 mask)
{ {
return dev->dma_mask && *dev->dma_mask != 0; if (mask < ISA_DMA_THRESHOLD)
return 0;
return 1;
} }
static inline int dma_set_mask(struct device *dev, u64 dma_mask) static inline int dma_set_mask(struct device *dev, u64 dma_mask)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment