Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[linux-2.6-microblaze.git] / arch / mips / kernel / cpu-probe.c
index 12422fd..3382892 100644 (file)
@@ -289,6 +289,8 @@ static void cpu_set_fpu_opts(struct cpuinfo_mips *c)
                            MIPS_CPU_ISA_M32R6 | MIPS_CPU_ISA_M64R6)) {
                if (c->fpu_id & MIPS_FPIR_3D)
                        c->ases |= MIPS_ASE_MIPS3D;
+               if (c->fpu_id & MIPS_FPIR_UFRP)
+                       c->options |= MIPS_CPU_UFR;
                if (c->fpu_id & MIPS_FPIR_FREP)
                        c->options |= MIPS_CPU_FRE;
        }
@@ -1003,7 +1005,8 @@ static inline unsigned int decode_guest_config3(struct cpuinfo_mips *c)
        unsigned int config3, config3_dyn;
 
        probe_gc0_config_dyn(config3, config3, config3_dyn,
-                            MIPS_CONF_M | MIPS_CONF3_MSA | MIPS_CONF3_CTXTC);
+                            MIPS_CONF_M | MIPS_CONF3_MSA | MIPS_CONF3_ULRI |
+                            MIPS_CONF3_CTXTC);
 
        if (config3 & MIPS_CONF3_CTXTC)
                c->guest.options |= MIPS_CPU_CTXTC;
@@ -1013,6 +1016,9 @@ static inline unsigned int decode_guest_config3(struct cpuinfo_mips *c)
        if (config3 & MIPS_CONF3_PW)
                c->guest.options |= MIPS_CPU_HTW;
 
+       if (config3 & MIPS_CONF3_ULRI)
+               c->guest.options |= MIPS_CPU_ULRI;
+
        if (config3 & MIPS_CONF3_SC)
                c->guest.options |= MIPS_CPU_SEGMENTS;
 
@@ -1051,7 +1057,7 @@ static inline unsigned int decode_guest_config5(struct cpuinfo_mips *c)
        unsigned int config5, config5_dyn;
 
        probe_gc0_config_dyn(config5, config5, config5_dyn,
-                        MIPS_CONF_M | MIPS_CONF5_MRP);
+                        MIPS_CONF_M | MIPS_CONF5_MVH | MIPS_CONF5_MRP);
 
        if (config5 & MIPS_CONF5_MRP)
                c->guest.options |= MIPS_CPU_MAAR;
@@ -1061,6 +1067,9 @@ static inline unsigned int decode_guest_config5(struct cpuinfo_mips *c)
        if (config5 & MIPS_CONF5_LLB)
                c->guest.options |= MIPS_CPU_RW_LLB;
 
+       if (config5 & MIPS_CONF5_MVH)
+               c->guest.options |= MIPS_CPU_MVH;
+
        if (config5 & MIPS_CONF_M)
                c->guest.conf |= BIT(6);
        return config5 & MIPS_CONF_M;