projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a0b00ca
)
powerpc: add dma_capable() to replace is_buffer_dma_capable()
author
FUJITA Tomonori
<
[email protected]
>
Fri, 10 Jul 2009 01:04:57 +0000
(10:04 +0900)
committer
FUJITA Tomonori
<
[email protected]
>
Tue, 28 Jul 2009 05:19:19 +0000
(14:19 +0900)
dma_capable() eventually replaces is_buffer_dma_capable(), which tells
if a memory area is dma-capable or not. The problem of
is_buffer_dma_capable() is that it doesn't take a pointer to struct
device so it doesn't work for POWERPC.
Signed-off-by: FUJITA Tomonori <
[email protected]
>
Acked-by: Becky Bruce <
[email protected]
>
arch/powerpc/include/asm/dma-mapping.h
patch
|
blob
|
history
diff --git
a/arch/powerpc/include/asm/dma-mapping.h
b/arch/powerpc/include/asm/dma-mapping.h
index b44aaabdd1a685f2c52c98fe3cf7ae798c779e31..6ff1f8581d7958e1e1911da5ffa4be8e41685184 100644
(file)
--- a/
arch/powerpc/include/asm/dma-mapping.h
+++ b/
arch/powerpc/include/asm/dma-mapping.h
@@
-424,6
+424,19
@@
static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
#endif
}
+static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
+{
+ struct dma_mapping_ops *ops = get_dma_ops(dev);
+
+ if (ops->addr_needs_map && ops->addr_needs_map(dev, addr, size))
+ return 0;
+
+ if (!dev->dma_mask)
+ return 0;
+
+ return addr + size <= *dev->dma_mask;
+}
+
#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
#ifdef CONFIG_NOT_COHERENT_CACHE