You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
694 B
22 lines
694 B
14 years ago
|
--- a/arch/arm/include/asm/dma-mapping.h
|
||
|
+++ b/arch/arm/include/asm/dma-mapping.h
|
||
|
@@ -350,7 +350,8 @@ static inline dma_addr_t dma_map_page(st
|
||
|
static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
|
||
|
size_t size, enum dma_data_direction dir)
|
||
|
{
|
||
|
- /* nothing to do */
|
||
|
+ if (dir != DMA_TO_DEVICE)
|
||
|
+ dma_cache_maint(dma_to_virt(dev, handle), size, DMA_FROM_DEVICE);
|
||
|
}
|
||
|
#endif /* CONFIG_DMABOUNCE */
|
||
|
|
||
|
@@ -398,6 +399,8 @@ static inline void dma_sync_single_range
|
||
|
{
|
||
|
BUG_ON(!valid_dma_direction(dir));
|
||
|
|
||
|
+ if (dir != DMA_TO_DEVICE)
|
||
|
+ dma_cache_maint(dma_to_virt(dev, handle) + offset, size, DMA_FROM_DEVICE);
|
||
|
dmabounce_sync_for_cpu(dev, handle, offset, size, dir);
|
||
|
}
|
||
|
|