sh: Record the major cut revision for probed SH-4A parts.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 2 Jul 2008 08:46:40 +0000 (17:46 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 28 Jul 2008 09:10:32 +0000 (18:10 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/cpu/sh4/probe.c

index db442f37852dc4cb09d99aa68414c83b02e80633..2e42572b1b119aa832c50a104d8f4fd5c1fe0acf 100644 (file)
@@ -50,23 +50,24 @@ int __init detect_cpu_and_cache_system(void)
        boot_cpu_data.dcache.ways               = 1;
        boot_cpu_data.dcache.linesz             = L1_CACHE_BYTES;
 
+       /* We don't know the chip cut */
+       boot_cpu_data.cut_major = boot_cpu_data.cut_minor = -1;
+
        /*
         * Setup some generic flags we can probe on SH-4A parts
         */
-       if (((pvr >> 24) & 0xff) == 0x10) {
+       if (((pvr >> 16) & 0xff) == 0x10) {
                if ((cvr & 0x10000000) == 0)
                        boot_cpu_data.flags |= CPU_HAS_DSP;
 
                boot_cpu_data.flags |= CPU_HAS_LLSC;
+               boot_cpu_data.cut_major = pvr & 0x7f;
        }
 
        /* FPU detection works for everyone */
        if ((cvr & 0x20000000) == 1)
                boot_cpu_data.flags |= CPU_HAS_FPU;
 
-       /* We don't know the chip cut */
-       boot_cpu_data.cut_major = boot_cpu_data.cut_minor = -1;
-
        /* Mask off the upper chip ID */
        pvr &= 0xffff;