diff options
Diffstat (limited to 'arch/sh/mm/consistent.c')
| -rw-r--r-- | arch/sh/mm/consistent.c | 15 | 
1 files changed, 7 insertions, 8 deletions
| diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c index 038793286990..40733a952402 100644 --- a/arch/sh/mm/consistent.c +++ b/arch/sh/mm/consistent.c | |||
| @@ -79,21 +79,20 @@ void dma_generic_free_coherent(struct device *dev, size_t size, | |||
| 79 | void dma_cache_sync(struct device *dev, void *vaddr, size_t size, | 79 | void dma_cache_sync(struct device *dev, void *vaddr, size_t size, | 
| 80 | enum dma_data_direction direction) | 80 | enum dma_data_direction direction) | 
| 81 | { | 81 | { | 
| 82 | #if defined(CONFIG_CPU_SH5) || defined(CONFIG_PMB) | 82 | void *addr; | 
| 83 | void *p1addr = vaddr; | 83 | |
| 84 | #else | 84 | addr = __in_29bit_mode() ? | 
| 85 | void *p1addr = (void*) P1SEGADDR((unsigned long)vaddr); | 85 | (void *)P1SEGADDR((unsigned long)vaddr) : vaddr; | 
| 86 | #endif | ||
| 87 | 86 | ||
| 88 | switch (direction) { | 87 | switch (direction) { | 
| 89 | case DMA_FROM_DEVICE: /* invalidate only */ | 88 | case DMA_FROM_DEVICE: /* invalidate only */ | 
| 90 | __flush_invalidate_region(p1addr, size); | 89 | __flush_invalidate_region(addr, size); | 
| 91 | break; | 90 | break; | 
| 92 | case DMA_TO_DEVICE: /* writeback only */ | 91 | case DMA_TO_DEVICE: /* writeback only */ | 
| 93 | __flush_wback_region(p1addr, size); | 92 | __flush_wback_region(addr, size); | 
| 94 | break; | 93 | break; | 
| 95 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ | 94 | case DMA_BIDIRECTIONAL: /* writeback and invalidate */ | 
| 96 | __flush_purge_region(p1addr, size); | 95 | __flush_purge_region(addr, size); | 
| 97 | break; | 96 | break; | 
| 98 | default: | 97 | default: | 
| 99 | BUG(); | 98 | BUG(); | 
