summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/setup.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-03-13 02:14:25 +0100
committerIngo Molnar <mingo@elte.hu>2009-03-13 02:14:25 +0100
commit25d500067d5a666d1336598d1b324793554e5496 (patch)
tree3402308c4c69a66d02ce55f5c165e242fad2a8a9 /arch/arm/kernel/setup.c
parent0b13fda1e0936b3d64c4c407f183d33fa6bd2ad4 (diff)
parent9ead64974b05501bbac0d63a47c99fa786d064ba (diff)
downloadlinux-25d500067d5a666d1336598d1b324793554e5496.tar.gz
linux-25d500067d5a666d1336598d1b324793554e5496.tar.bz2
linux-25d500067d5a666d1336598d1b324793554e5496.zip
Merge branch 'linus' into core/ipi
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r--arch/arm/kernel/setup.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 7049815d66d5..68d6494c0389 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -233,12 +233,13 @@ static void __init cacheid_init(void)
unsigned int cachetype = read_cpuid_cachetype();
unsigned int arch = cpu_architecture();
- if (arch >= CPU_ARCH_ARMv7) {
- cacheid = CACHEID_VIPT_NONALIASING;
- if ((cachetype & (3 << 14)) == 1 << 14)
- cacheid |= CACHEID_ASID_TAGGED;
- } else if (arch >= CPU_ARCH_ARMv6) {
- if (cachetype & (1 << 23))
+ if (arch >= CPU_ARCH_ARMv6) {
+ if ((cachetype & (7 << 29)) == 4 << 29) {
+ /* ARMv7 register format */
+ cacheid = CACHEID_VIPT_NONALIASING;
+ if ((cachetype & (3 << 14)) == 1 << 14)
+ cacheid |= CACHEID_ASID_TAGGED;
+ } else if (cachetype & (1 << 23))
cacheid = CACHEID_VIPT_ALIASING;
else
cacheid = CACHEID_VIPT_NONALIASING;