diff options
Diffstat (limited to 'arch/arm/mm/proc-arm1020e.S')
| -rw-r--r-- | arch/arm/mm/proc-arm1020e.S | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 41fe25d234f5..d27829805609 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
| @@ -258,7 +258,7 @@ ENTRY(arm1020e_flush_kern_dcache_area) | |||
| 258 | * | 258 | * |
| 259 | * (same as v4wb) | 259 | * (same as v4wb) |
| 260 | */ | 260 | */ |
| 261 | ENTRY(arm1020e_dma_inv_range) | 261 | arm1020e_dma_inv_range: |
| 262 | mov ip, #0 | 262 | mov ip, #0 |
| 263 | #ifndef CONFIG_CPU_DCACHE_DISABLE | 263 | #ifndef CONFIG_CPU_DCACHE_DISABLE |
| 264 | tst r0, #CACHE_DLINESIZE - 1 | 264 | tst r0, #CACHE_DLINESIZE - 1 |
| @@ -284,7 +284,7 @@ ENTRY(arm1020e_dma_inv_range) | |||
| 284 | * | 284 | * |
| 285 | * (same as v4wb) | 285 | * (same as v4wb) |
| 286 | */ | 286 | */ |
| 287 | ENTRY(arm1020e_dma_clean_range) | 287 | arm1020e_dma_clean_range: |
| 288 | mov ip, #0 | 288 | mov ip, #0 |
| 289 | #ifndef CONFIG_CPU_DCACHE_DISABLE | 289 | #ifndef CONFIG_CPU_DCACHE_DISABLE |
| 290 | bic r0, r0, #CACHE_DLINESIZE - 1 | 290 | bic r0, r0, #CACHE_DLINESIZE - 1 |
| @@ -316,6 +316,30 @@ ENTRY(arm1020e_dma_flush_range) | |||
| 316 | mcr p15, 0, ip, c7, c10, 4 @ drain WB | 316 | mcr p15, 0, ip, c7, c10, 4 @ drain WB |
| 317 | mov pc, lr | 317 | mov pc, lr |
| 318 | 318 | ||
| 319 | /* | ||
| 320 | * dma_map_area(start, size, dir) | ||
| 321 | * - start - kernel virtual start address | ||
| 322 | * - size - size of region | ||
| 323 | * - dir - DMA direction | ||
| 324 | */ | ||
| 325 | ENTRY(arm1020e_dma_map_area) | ||
| 326 | add r1, r1, r0 | ||
| 327 | cmp r2, #DMA_TO_DEVICE | ||
| 328 | beq arm1020e_dma_clean_range | ||
| 329 | bcs arm1020e_dma_inv_range | ||
| 330 | b arm1020e_dma_flush_range | ||
| 331 | ENDPROC(arm1020e_dma_map_area) | ||
| 332 | |||
| 333 | /* | ||
| 334 | * dma_unmap_area(start, size, dir) | ||
| 335 | * - start - kernel virtual start address | ||
| 336 | * - size - size of region | ||
| 337 | * - dir - DMA direction | ||
| 338 | */ | ||
| 339 | ENTRY(arm1020e_dma_unmap_area) | ||
| 340 | mov pc, lr | ||
| 341 | ENDPROC(arm1020e_dma_unmap_area) | ||
| 342 | |||
| 319 | ENTRY(arm1020e_cache_fns) | 343 | ENTRY(arm1020e_cache_fns) |
| 320 | .long arm1020e_flush_kern_cache_all | 344 | .long arm1020e_flush_kern_cache_all |
| 321 | .long arm1020e_flush_user_cache_all | 345 | .long arm1020e_flush_user_cache_all |
| @@ -323,8 +347,8 @@ ENTRY(arm1020e_cache_fns) | |||
| 323 | .long arm1020e_coherent_kern_range | 347 | .long arm1020e_coherent_kern_range |
| 324 | .long arm1020e_coherent_user_range | 348 | .long arm1020e_coherent_user_range |
| 325 | .long arm1020e_flush_kern_dcache_area | 349 | .long arm1020e_flush_kern_dcache_area |
| 326 | .long arm1020e_dma_inv_range | 350 | .long arm1020e_dma_map_area |
| 327 | .long arm1020e_dma_clean_range | 351 | .long arm1020e_dma_unmap_area |
| 328 | .long arm1020e_dma_flush_range | 352 | .long arm1020e_dma_flush_range |
| 329 | 353 | ||
| 330 | .align 5 | 354 | .align 5 |
