diff options
| -rw-r--r-- | arch/mips/kernel/cpu-probe.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 0cf15457ecac..41a1d07b4750 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
| @@ -652,21 +652,24 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c) | |||
| 652 | 652 | ||
| 653 | static void __cpuinit decode_configs(struct cpuinfo_mips *c) | 653 | static void __cpuinit decode_configs(struct cpuinfo_mips *c) |
| 654 | { | 654 | { |
| 655 | int ok; | ||
| 656 | |||
| 655 | /* MIPS32 or MIPS64 compliant CPU. */ | 657 | /* MIPS32 or MIPS64 compliant CPU. */ |
| 656 | c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER | | 658 | c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER | |
| 657 | MIPS_CPU_DIVEC | MIPS_CPU_LLSC | MIPS_CPU_MCHECK; | 659 | MIPS_CPU_DIVEC | MIPS_CPU_LLSC | MIPS_CPU_MCHECK; |
| 658 | 660 | ||
| 659 | c->scache.flags = MIPS_CACHE_NOT_PRESENT; | 661 | c->scache.flags = MIPS_CACHE_NOT_PRESENT; |
| 660 | 662 | ||
| 661 | /* Read Config registers. */ | 663 | ok = decode_config0(c); /* Read Config registers. */ |
| 662 | if (!decode_config0(c)) | 664 | BUG_ON(!ok); /* Arch spec violation! */ |
| 663 | return; /* actually worth a panic() */ | 665 | if (ok) |
| 664 | if (!decode_config1(c)) | 666 | ok = decode_config1(c); |
| 665 | return; | 667 | if (ok) |
| 666 | if (!decode_config2(c)) | 668 | ok = decode_config2(c); |
| 667 | return; | 669 | if (ok) |
| 668 | if (!decode_config3(c)) | 670 | ok = decode_config3(c); |
| 669 | return; | 671 | |
| 672 | mips_probe_watch_registers(c); | ||
| 670 | } | 673 | } |
| 671 | 674 | ||
| 672 | #ifdef CONFIG_CPU_MIPSR2 | 675 | #ifdef CONFIG_CPU_MIPSR2 |
| @@ -678,7 +681,6 @@ static inline void spram_config(void) {} | |||
| 678 | static inline void cpu_probe_mips(struct cpuinfo_mips *c) | 681 | static inline void cpu_probe_mips(struct cpuinfo_mips *c) |
| 679 | { | 682 | { |
| 680 | decode_configs(c); | 683 | decode_configs(c); |
| 681 | mips_probe_watch_registers(c); | ||
| 682 | switch (c->processor_id & 0xff00) { | 684 | switch (c->processor_id & 0xff00) { |
| 683 | case PRID_IMP_4KC: | 685 | case PRID_IMP_4KC: |
| 684 | c->cputype = CPU_4KC; | 686 | c->cputype = CPU_4KC; |
