]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/mips/kernel/cpu-probe.c
[MIPS] 20K: Handle WAIT related bugs according to errata information
[linux-2.6-omap-h63xx.git] / arch / mips / kernel / cpu-probe.c
index ab755ea26c6a252587b936fe04b5f472b0354402..0fc90ba16ae1594d5ad7b9ba2dba771b954f1e05 100644 (file)
@@ -137,7 +137,6 @@ static inline void check_wait(void)
        case CPU_4KEC:
        case CPU_4KSC:
        case CPU_5KC:
-/*     case CPU_20KC:*/
        case CPU_24K:
        case CPU_25KF:
        case CPU_34K:
@@ -156,6 +155,17 @@ static inline void check_wait(void)
                if (allow_au1k_wait)
                        cpu_wait = au1k_wait;
                break;
+       case CPU_20KC:
+               /*
+                * WAIT on Rev1.0 has E1, E2, E3 and E16.
+                * WAIT on Rev2.0 and Rev3.0 has E16.
+                * Rev3.1 WAIT is nop, why bother
+                */
+               if ((c->processor_id & 0xff) <= 0x64)
+                       break;
+
+               cpu_wait = r4k_wait;
+               break;
        case CPU_RM9000:
                if ((c->processor_id & 0x00ff) >= 0x40)
                        cpu_wait = r4k_wait;