diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-03-12 13:16:18 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-03-12 13:16:18 +0100 |
| commit | f8cb22cbb8383c9f41e6ccbcd4fb94edb1048bda (patch) | |
| tree | 9b3a333224ec895c053a694dcaff526502b84e6c /arch/arm/kernel/setup.c | |
| parent | 044d408409cc4e1bc75c886e27ca85c270db104c (diff) | |
| parent | ebdcc81c71937b30e09110c02a1e8a21fa770b6f (diff) | |
| download | lwn-f8cb22cbb8383c9f41e6ccbcd4fb94edb1048bda.tar.gz lwn-f8cb22cbb8383c9f41e6ccbcd4fb94edb1048bda.zip | |
Merge branch 'linus' into irq/genirq
Diffstat (limited to 'arch/arm/kernel/setup.c')
| -rw-r--r-- | arch/arm/kernel/setup.c | 13 |
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; |
