ARM: dma-mapping: switch ARMv7 DMA mappings to retain 'memory' attribute
commit26a26d329688ab018e068b412b03d43d7c299f0a
authorRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 20 Nov 2009 21:06:43 +0000 (20 21:06 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 24 Nov 2009 17:41:36 +0000 (24 17:41 +0000)
treef33ea6faa4f8d9409098654354548fa28c7b41ad
parentacaac256b3a14a09ab278409a72d119f2d75b02b
ARM: dma-mapping: switch ARMv7 DMA mappings to retain 'memory' attribute

On ARMv7, it is invalid to map the same physical address multiple times
with different memory types.  Since system RAM is already mapped as
'memory', subsequent remapping of it must retain this attribute.

However, DMA memory maps it as "strongly ordered".  Fix this by introducing
'pgprot_dmacoherent()' which provides the necessary page table bits for
DMA mappings.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Greg Ungerer <gerg@uclinux.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm/include/asm/pgtable.h
arch/arm/include/asm/system.h
arch/arm/mm/dma-mapping.c