summaryrefslogtreecommitdiffstats
path: root/arch/mips/lib/cpu-probe.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/lib/cpu-probe.c')
-rw-r--r--arch/mips/lib/cpu-probe.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/mips/lib/cpu-probe.c b/arch/mips/lib/cpu-probe.c
index de45421df7..8235a54ae7 100644
--- a/arch/mips/lib/cpu-probe.c
+++ b/arch/mips/lib/cpu-probe.c
@@ -81,6 +81,24 @@ static void decode_configs(struct cpuinfo_mips *c)
BUG_ON(!ok); /* Arch spec violation! */
}
+static inline void cpu_probe_legacy(struct cpuinfo_mips *c)
+{
+ switch (c->processor_id & PRID_IMP_MASK) {
+ case PRID_IMP_LOONGSON1:
+ decode_configs(c);
+
+ c->cputype = CPU_LOONGSON1;
+
+ switch (c->processor_id & PRID_REV_MASK) {
+ case PRID_REV_LOONGSON1B:
+ __cpu_name = "Loongson 1B";
+ break;
+ }
+
+ break;
+ }
+}
+
static inline void cpu_probe_mips(struct cpuinfo_mips *c)
{
decode_configs(c);
@@ -130,6 +148,9 @@ void cpu_probe(void)
c->processor_id = read_c0_prid();
switch (c->processor_id & 0xff0000) {
+ case PRID_COMP_LEGACY:
+ cpu_probe_legacy(c);
+ break;
case PRID_COMP_MIPS:
cpu_probe_mips(c);
break;