···435 }436}437000438static inline unsigned int decode_config0(struct cpuinfo_mips *c)439{440 unsigned int config0;···450 isa = (config0 & MIPS_CONF_AT) >> 13;451 switch (isa) {452 case 0:453- c->isa_level = MIPS_CPU_ISA_M32R1;000000000454 break;455 case 2:456- c->isa_level = MIPS_CPU_ISA_M64R1;000000000457 break;458 default:459- panic("Unsupported ISA type, cp0.config0.at: %d.", isa);460 }461462 return config0 & MIPS_CONF_M;000463}464465static inline unsigned int decode_config1(struct cpuinfo_mips *c)···592 break;593 case PRID_IMP_34K:594 c->cputype = CPU_34K;595- c->isa_level = MIPS_CPU_ISA_M32R1;596 break;597 }598}···714 c->fpu_id = cpu_get_fpu_id();715716 if (c->isa_level == MIPS_CPU_ISA_M32R1 ||717- c->isa_level == MIPS_CPU_ISA_M64R1) {00718 if (c->fpu_id & MIPS_FPIR_3D)719 c->ases |= MIPS_ASE_MIPS3D;720 }
···435 }436}437438+static char unknown_isa[] __initdata = KERN_ERR \439+ "Unsupported ISA type, c0.config0: %d.";440+441static inline unsigned int decode_config0(struct cpuinfo_mips *c)442{443 unsigned int config0;···447 isa = (config0 & MIPS_CONF_AT) >> 13;448 switch (isa) {449 case 0:450+ switch ((config0 >> 10) & 7) {451+ case 0:452+ c->isa_level = MIPS_CPU_ISA_M32R1;453+ break;454+ case 1:455+ c->isa_level = MIPS_CPU_ISA_M32R2;456+ break;457+ default:458+ goto unknown;459+ }460 break;461 case 2:462+ switch ((config0 >> 10) & 7) {463+ case 0:464+ c->isa_level = MIPS_CPU_ISA_M64R1;465+ break;466+ case 1:467+ c->isa_level = MIPS_CPU_ISA_M64R2;468+ break;469+ default:470+ goto unknown;471+ }472 break;473 default:474+ goto unknown;475 }476477 return config0 & MIPS_CONF_M;478+479+unknown:480+ panic(unknown_isa, config0);481}482483static inline unsigned int decode_config1(struct cpuinfo_mips *c)···568 break;569 case PRID_IMP_34K:570 c->cputype = CPU_34K;0571 break;572 }573}···691 c->fpu_id = cpu_get_fpu_id();692693 if (c->isa_level == MIPS_CPU_ISA_M32R1 ||694+ c->isa_level == MIPS_CPU_ISA_M32R2 ||695+ c->isa_level == MIPS_CPU_ISA_M64R1 ||696+ c->isa_level == MIPS_CPU_ISA_M64R2) {697 if (c->fpu_id & MIPS_FPIR_3D)698 c->ases |= MIPS_ASE_MIPS3D;699 }
+3-3
arch/mips/kernel/time.c
···628 mips_hpt_init = c0_hpt_init;629 }630631- if ((current_cpu_data.isa_level == MIPS_CPU_ISA_M32R1) ||632- (current_cpu_data.isa_level == MIPS_CPU_ISA_I) ||633- (current_cpu_data.isa_level == MIPS_CPU_ISA_II))634 /*635 * We need to calibrate the counter but we don't have636 * 64-bit division.
···628 mips_hpt_init = c0_hpt_init;629 }630631+ if (cpu_has_mips32r1 || cpu_has_mips32r2 ||632+ (current_cpu_data.isa_level == MIPS_CPU_ISA_I) ||633+ (current_cpu_data.isa_level == MIPS_CPU_ISA_II))634 /*635 * We need to calibrate the counter but we don't have636 * 64-bit division.