Merge branch 'for_3.8-rc1' into v4l_for_linus
[deliverable/linux.git] / arch / mips / kernel / cpu-probe.c
index bc58bd10a607aa256340651fc48f330cecdd4af8..cce3782c96c9b792e412abc32fed55547dcde7c9 100644 (file)
@@ -142,7 +142,7 @@ int __cpuinitdata mips_dsp_disabled;
 
 static int __init dsp_disable(char *s)
 {
-       cpu_data[0].ases &= ~MIPS_ASE_DSP;
+       cpu_data[0].ases &= ~(MIPS_ASE_DSP | MIPS_ASE_DSP2P);
        mips_dsp_disabled = 1;
 
        return 1;
@@ -429,6 +429,8 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c)
                c->options |= MIPS_CPU_RIXI;
        if (config3 & MIPS_CONF3_DSP)
                c->ases |= MIPS_ASE_DSP;
+       if (config3 & MIPS_CONF3_DSP2P)
+               c->ases |= MIPS_ASE_DSP2P;
        if (config3 & MIPS_CONF3_VINT)
                c->options |= MIPS_CPU_VINT;
        if (config3 & MIPS_CONF3_VEIC)
@@ -508,7 +510,6 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c, unsigned int cpu)
                                c->cputype = CPU_R3000A;
                                __cpu_name[cpu] = "R3000A";
                        }
-                       break;
                } else {
                        c->cputype = CPU_R3000;
                        __cpu_name[cpu] = "R3000";
@@ -1180,7 +1181,7 @@ __cpuinit void cpu_probe(void)
                c->options &= ~MIPS_CPU_FPU;
 
        if (mips_dsp_disabled)
-               c->ases &= ~MIPS_ASE_DSP;
+               c->ases &= ~(MIPS_ASE_DSP | MIPS_ASE_DSP2P);
 
        if (c->options & MIPS_CPU_FPU) {
                c->fpu_id = cpu_get_fpu_id();
@@ -1194,8 +1195,11 @@ __cpuinit void cpu_probe(void)
                }
        }
 
-       if (cpu_has_mips_r2)
+       if (cpu_has_mips_r2) {
                c->srsets = ((read_c0_srsctl() >> 26) & 0x0f) + 1;
+               /* R2 has Performance Counter Interrupt indicator */
+               c->options |= MIPS_CPU_PCI;
+       }
        else
                c->srsets = 1;
 
This page took 0.02529 seconds and 5 git commands to generate.