aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/vr41xx/common/pmu.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/mips/vr41xx/common/pmu.c b/arch/mips/vr41xx/common/pmu.c
index e0ffbe9a984..ba0a4f6483a 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