diff options
-rw-r--r-- | arch/mips/vr41xx/common/pmu.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/mips/vr41xx/common/pmu.c b/arch/mips/vr41xx/common/pmu.c index e0ffbe9a9844..ba0a4f6483a2 100644 --- a/arch/mips/vr41xx/common/pmu.c +++ b/arch/mips/vr41xx/common/pmu.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/sched.h> | 25 | #include <linux/sched.h> |
26 | #include <linux/types.h> | 26 | #include <linux/types.h> |
27 | 27 | ||
28 | #include <asm/cacheflush.h> | ||
28 | #include <asm/cpu.h> | 29 | #include <asm/cpu.h> |
29 | #include <asm/io.h> | 30 | #include <asm/io.h> |
30 | #include <asm/processor.h> | 31 | #include <asm/processor.h> |
@@ -70,6 +71,11 @@ static inline void software_reset(void) | |||
70 | pmu_write(PMUCNT2REG, pmucnt2); | 71 | pmu_write(PMUCNT2REG, pmucnt2); |
71 | break; | 72 | break; |
72 | default: | 73 | default: |
74 | set_c0_status(ST0_BEV | ST0_ERL); | ||
75 | change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED); | ||
76 | flush_cache_all(); | ||
77 | write_c0_wired(0); | ||
78 | __asm__("jr %0"::"r"(0xbfc00000)); | ||
73 | break; | 79 | break; |
74 | } | 80 | } |
75 | } | 81 | } |
@@ -78,7 +84,6 @@ static void vr41xx_restart(char *command) | |||
78 | { | 84 | { |
79 | local_irq_disable(); | 85 | local_irq_disable(); |
80 | software_reset(); | 86 | software_reset(); |
81 | printk(KERN_NOTICE "\nYou can reset your system\n"); | ||
82 | while (1) ; | 87 | while (1) ; |
83 | } | 88 | } |
84 | 89 | ||