ARM: 6528/1: Use CTR for the I-cache line size on ARMv7
authorCatalin Marinas <catalin.marinas@arm.com>
Tue, 7 Dec 2010 15:56:29 +0000 (16:56 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 12 Dec 2010 23:25:58 +0000 (23:25 +0000)
commitda30e0ac0f9a521f0cfec8145ddd1ad131f66d61
tree4a9002e6fca4d4763b40908403fc177153b9a6a8
parentf91e2c3bd427239c198351f44814dd39db91afe0
ARM: 6528/1: Use CTR for the I-cache line size on ARMv7

The current implementation of the v7_coherent_*_range function assumes
that the D and I cache lines have the same size, which is incorrect
architecturally. This patch adds the icache_line_size macro which reads
the CTR register. The main loop in v7_coherent_*_range is split in two
independent loops or the D and I caches. This also has the performance
advantage that the DSB is moved outside the main loop.

Reported-by: Kevin Sapp <ksapp@quicinc.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/cache-v7.S
arch/arm/mm/proc-macros.S