[ARM] 3439/2: xsc3: add I/O coherency support
authorLennert Buytenhek <buytenh@wantstofly.org>
Sat, 1 Apr 2006 23:07:39 +0000 (00:07 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 1 Apr 2006 23:07:39 +0000 (00:07 +0100)
commit23759dc6430428897a36c4d493f611eca55c9481
treec62050927599b36ed223753c35fd737e3c0c6762
parentd3f4c571b6e596f9d39c596426269006a309d3b8
[ARM] 3439/2: xsc3: add I/O coherency support

Patch from Lennert Buytenhek

This patch adds support for the I/O coherent cache available on the
xsc3.  The approach is to provide a simple API to determine whether the
chipset supports coherency by calling arch_is_coherent() and then
setting the appropriate system memory PTE and PMD bits.  In addition,
we call this API on dma_alloc_coherent() and dma_map_single() calls.
A generic version exists that will compile out all the coherency-related
code that is not needed on the majority of ARM systems.

Note that we do not check for coherency in the dma_alloc_writecombine()
function as that still requires a special PTE setting.  We also don't
touch dma_mmap_coherent() as that is a special ARM-only API that is by
definition only used on non-coherent system.

Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/setup.c
arch/arm/mach-ixp23xx/pci.c
arch/arm/mm/consistent.c
arch/arm/mm/mm-armv.c
arch/arm/mm/proc-xsc3.S
include/asm-arm/arch-ixp23xx/memory.h
include/asm-arm/dma-mapping.h
include/asm-arm/memory.h
include/asm-arm/pgtable-hwdef.h
include/asm-arm/pgtable.h