[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 case CPU_4KEC: 138 case CPU_4KSC: 139 case CPU_5KC: 140 - /* case CPU_20KC:*/ 141 case CPU_24K: 142 case CPU_25KF: 143 case CPU_34K: ··· 154 case CPU_AU1200: 155 if (allow_au1k_wait) 156 cpu_wait = au1k_wait; 157 break; 158 case CPU_RM9000: 159 if ((c->processor_id & 0x00ff) >= 0x40)
··· 137 case CPU_4KEC: 138 case CPU_4KSC: 139 case CPU_5KC: 140 case CPU_24K: 141 case CPU_25KF: 142 case CPU_34K: ··· 155 case CPU_AU1200: 156 if (allow_au1k_wait) 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; 169 break; 170 case CPU_RM9000: 171 if ((c->processor_id & 0x00ff) >= 0x40)