aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/vr41xx/common/pmu.c
diff options
context:
space:
mode:
authorYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>2007-08-16 09:20:11 -0400
committerRalf Baechle <ralf@linux-mips.org>2007-10-11 18:45:59 -0400
commit2f2a2d9987c4836493bfb2a80960056ef86742d2 (patch)
tree17bed3c7a493c8b308dbbd484ec0ef4859929973 /arch/mips/vr41xx/common/pmu.c
parent054c51b4368648406f487f54b7ed6ba75bbb3f8b (diff)
[MIPS] VR41xx: Add default restart routine.
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/vr41xx/common/pmu.c')
-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 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