diff options
Diffstat (limited to 'arch/arm/mm/cache-v3.S')
| -rw-r--r-- | arch/arm/mm/cache-v3.S | 43 | 
1 files changed, 20 insertions, 23 deletions
diff --git a/arch/arm/mm/cache-v3.S b/arch/arm/mm/cache-v3.S index 2a482731ea3..c2ff3c599fe 100644 --- a/arch/arm/mm/cache-v3.S +++ b/arch/arm/mm/cache-v3.S @@ -84,20 +84,6 @@ ENTRY(v3_flush_kern_dcache_area)  	/* FALLTHROUGH */  /* - *	dma_inv_range(start, end) - * - *	Invalidate (discard) the specified virtual address range. - *	May not write back any entries.  If 'start' or 'end' - *	are not cache line aligned, those lines must be written - *	back. - * - *	- start  - virtual start address - *	- end	 - virtual end address - */ -ENTRY(v3_dma_inv_range) -	/* FALLTHROUGH */ - -/*   *	dma_flush_range(start, end)   *   *	Clean and invalidate the specified virtual address range. @@ -108,18 +94,29 @@ ENTRY(v3_dma_inv_range)  ENTRY(v3_dma_flush_range)  	mov	r0, #0  	mcr	p15, 0, r0, c7, c0, 0		@ flush ID cache +	mov	pc, lr + +/* + *	dma_unmap_area(start, size, dir) + *	- start	- kernel virtual start address + *	- size	- size of region + *	- dir	- DMA direction + */ +ENTRY(v3_dma_unmap_area) +	teq	r2, #DMA_TO_DEVICE +	bne	v3_dma_flush_range  	/* FALLTHROUGH */  /* - *	dma_clean_range(start, end) - * - *	Clean (write back) the specified virtual address range. - * - *	- start  - virtual start address - *	- end	 - virtual end address + *	dma_map_area(start, size, dir) + *	- start	- kernel virtual start address + *	- size	- size of region + *	- dir	- DMA direction   */ -ENTRY(v3_dma_clean_range) +ENTRY(v3_dma_map_area)  	mov	pc, lr +ENDPROC(v3_dma_unmap_area) +ENDPROC(v3_dma_map_area)  	__INITDATA @@ -131,7 +128,7 @@ ENTRY(v3_cache_fns)  	.long	v3_coherent_kern_range  	.long	v3_coherent_user_range  	.long	v3_flush_kern_dcache_area -	.long	v3_dma_inv_range -	.long	v3_dma_clean_range +	.long	v3_dma_map_area +	.long	v3_dma_unmap_area  	.long	v3_dma_flush_range  	.size	v3_cache_fns, . - v3_cache_fns  |