[MIPS] 20K: Handle WAIT related bugs according to errata information

We used to avoid the WAIT entirely on the 20K but really only need to do
this on early revs of the 20K. Without this a 20K was a bit of a
power hog. Well, in the lower power power hog category ;-)

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

+11 -1
+11 -1
arch/mips/kernel/cpu-probe.c
··· 137 137 case CPU_4KEC: 138 138 case CPU_4KSC: 139 139 case CPU_5KC: 140 - /* case CPU_20KC:*/ 141 140 case CPU_24K: 142 141 case CPU_25KF: 143 142 case CPU_34K: ··· 154 155 case CPU_AU1200: 155 156 if (allow_au1k_wait) 156 157 cpu_wait = au1k_wait; 158 + break; 159 + case CPU_20KC: 160 + /* 161 + * WAIT on Rev1.0 has E1, E2, E3 and E16. 162 + * WAIT on Rev2.0 and Rev3.0 has E16. 163 + * Rev3.1 WAIT is nop, why bother 164 + */ 165 + if ((c->processor_id & 0xff) <= 0x64) 166 + break; 167 + 168 + cpu_wait = r4k_wait; 157 169 break; 158 170 case CPU_RM9000: 159 171 if ((c->processor_id & 0x00ff) >= 0x40)