aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/include/asm/mach/arch.h9
-rw-r--r--arch/arm/include/asm/system.h1
-rw-r--r--arch/arm/kernel/machine_kexec.c4
-rw-r--r--arch/arm/kernel/process.c35
-rw-r--r--arch/arm/kernel/setup.c7
-rw-r--r--arch/arm/mach-clps711x/include/mach/system.h2
-rw-r--r--arch/arm/mach-ebsa110/core.c2
-rw-r--r--arch/arm/mach-ebsa110/include/mach/system.h2
-rw-r--r--arch/arm/mach-footbridge/cats-hw.c2
-rw-r--r--arch/arm/mach-footbridge/include/mach/system.h2
-rw-r--r--arch/arm/mach-iop32x/include/mach/system.h2
-rw-r--r--arch/arm/mach-iop33x/include/mach/system.h2
-rw-r--r--arch/arm/mach-ixp4xx/include/mach/system.h2
-rw-r--r--arch/arm/mach-ks8695/include/mach/system.h2
-rw-r--r--arch/arm/mach-mmp/include/mach/system.h4
-rw-r--r--arch/arm/mach-mxs/system.c2
-rw-r--r--arch/arm/mach-pnx4008/include/mach/system.h2
-rw-r--r--arch/arm/mach-pxa/mioa701.c1
-rw-r--r--arch/arm/mach-pxa/reset.c2
-rw-r--r--arch/arm/mach-pxa/spitz.c3
-rw-r--r--arch/arm/mach-pxa/tosa.c1
-rw-r--r--arch/arm/mach-rpc/include/mach/system.h2
-rw-r--r--arch/arm/mach-s3c2410/include/mach/system-reset.h4
-rw-r--r--arch/arm/mach-s3c64xx/include/mach/system.h2
-rw-r--r--arch/arm/mach-sa1100/include/mach/system.h2
-rw-r--r--arch/arm/mach-shmobile/include/mach/system.h2
-rw-r--r--arch/arm/mach-w90x900/include/mach/system.h2
-rw-r--r--arch/arm/mm/idmap.c2
-rw-r--r--arch/arm/mm/nommu.c2
-rw-r--r--arch/arm/plat-mxc/system.c2
-rw-r--r--arch/arm/plat-spear/include/plat/system.h2
31 files changed, 64 insertions, 47 deletions
diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
index 2b0efc3104ac..bcb0c883e21e 100644
--- a/arch/arm/include/asm/mach/arch.h
+++ b/arch/arm/include/asm/mach/arch.h
@@ -31,10 +31,10 @@ struct machine_desc {
31 unsigned int video_start; /* start of video RAM */ 31 unsigned int video_start; /* start of video RAM */
32 unsigned int video_end; /* end of video RAM */ 32 unsigned int video_end; /* end of video RAM */
33 33
34 unsigned int reserve_lp0 :1; /* never has lp0 */ 34 unsigned char reserve_lp0 :1; /* never has lp0 */
35 unsigned int reserve_lp1 :1; /* never has lp1 */ 35 unsigned char reserve_lp1 :1; /* never has lp1 */
36 unsigned int reserve_lp2 :1; /* never has lp2 */ 36 unsigned char reserve_lp2 :1; /* never has lp2 */
37 unsigned int soft_reboot :1; /* soft reboot */ 37 char restart_mode; /* default restart mode */
38 void (*fixup)(struct tag *, char **, 38 void (*fixup)(struct tag *, char **,
39 struct meminfo *); 39 struct meminfo *);
40 void (*reserve)(void);/* reserve mem blocks */ 40 void (*reserve)(void);/* reserve mem blocks */
@@ -46,6 +46,7 @@ struct machine_desc {
46#ifdef CONFIG_MULTI_IRQ_HANDLER 46#ifdef CONFIG_MULTI_IRQ_HANDLER
47 void (*handle_irq)(struct pt_regs *); 47 void (*handle_irq)(struct pt_regs *);
48#endif 48#endif
49 void (*restart)(char, const char *);
49}; 50};
50 51
51/* 52/*
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
index 984014b92647..fe7de7571bac 100644
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -101,6 +101,7 @@ extern int __pure cpu_architecture(void);
101extern void cpu_init(void); 101extern void cpu_init(void);
102 102
103void arm_machine_restart(char mode, const char *cmd); 103void arm_machine_restart(char mode, const char *cmd);
104void soft_restart(unsigned long);
104extern void (*arm_pm_restart)(char str, const char *cmd); 105extern void (*arm_pm_restart)(char str, const char *cmd);
105 106
106#define UDBG_UNDEFINED (1 << 0) 107#define UDBG_UNDEFINED (1 << 0)
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
index e59bbd496c39..29620b632ed9 100644
--- a/arch/arm/kernel/machine_kexec.c
+++ b/arch/arm/kernel/machine_kexec.c
@@ -16,7 +16,7 @@
16extern const unsigned char relocate_new_kernel[]; 16extern const unsigned char relocate_new_kernel[];
17extern const unsigned int relocate_new_kernel_size; 17extern const unsigned int relocate_new_kernel_size;
18 18
19extern void setup_mm_for_reboot(char mode); 19extern void setup_mm_for_reboot(void);
20 20
21extern unsigned long kexec_start_address; 21extern unsigned long kexec_start_address;
22extern unsigned long kexec_indirection_page; 22extern unsigned long kexec_indirection_page;
@@ -113,7 +113,7 @@ void machine_kexec(struct kimage *image)
113 kexec_reinit(); 113 kexec_reinit();
114 local_irq_disable(); 114 local_irq_disable();
115 local_fiq_disable(); 115 local_fiq_disable();
116 setup_mm_for_reboot(0); /* mode is not used, so just pass 0*/ 116 setup_mm_for_reboot();
117 flush_cache_all(); 117 flush_cache_all();
118 outer_flush_all(); 118 outer_flush_all();
119 outer_disable(); 119 outer_disable();
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 3d0c6fb74ae4..eeb3e16c6046 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -57,7 +57,7 @@ static const char *isa_modes[] = {
57 "ARM" , "Thumb" , "Jazelle", "ThumbEE" 57 "ARM" , "Thumb" , "Jazelle", "ThumbEE"
58}; 58};
59 59
60extern void setup_mm_for_reboot(char mode); 60extern void setup_mm_for_reboot(void);
61 61
62static volatile int hlt_counter; 62static volatile int hlt_counter;
63 63
@@ -92,7 +92,7 @@ static int __init hlt_setup(char *__unused)
92__setup("nohlt", nohlt_setup); 92__setup("nohlt", nohlt_setup);
93__setup("hlt", hlt_setup); 93__setup("hlt", hlt_setup);
94 94
95void arm_machine_restart(char mode, const char *cmd) 95void soft_restart(unsigned long addr)
96{ 96{
97 /* Disable interrupts first */ 97 /* Disable interrupts first */
98 local_irq_disable(); 98 local_irq_disable();
@@ -103,7 +103,7 @@ void arm_machine_restart(char mode, const char *cmd)
103 * we may need it to insert some 1:1 mappings so that 103 * we may need it to insert some 1:1 mappings so that
104 * soft boot works. 104 * soft boot works.
105 */ 105 */
106 setup_mm_for_reboot(mode); 106 setup_mm_for_reboot();
107 107
108 /* Clean and invalidate caches */ 108 /* Clean and invalidate caches */
109 flush_cache_all(); 109 flush_cache_all();
@@ -114,18 +114,17 @@ void arm_machine_restart(char mode, const char *cmd)
114 /* Push out any further dirty data, and ensure cache is empty */ 114 /* Push out any further dirty data, and ensure cache is empty */
115 flush_cache_all(); 115 flush_cache_all();
116 116
117 /* 117 cpu_reset(addr);
118 * Now call the architecture specific reboot code. 118}
119 */
120 arch_reset(mode, cmd);
121 119
122 /* 120void arm_machine_restart(char mode, const char *cmd)
123 * Whoops - the architecture was unable to reboot. 121{
124 * Tell the user! 122 /* Disable interrupts first */
125 */ 123 local_irq_disable();
126 mdelay(1000); 124 local_fiq_disable();
127 printk("Reboot failed -- System halted\n"); 125
128 while (1); 126 /* Call the architecture specific reboot code. */
127 arch_reset(mode, cmd);
129} 128}
130 129
131/* 130/*
@@ -253,7 +252,15 @@ void machine_power_off(void)
253void machine_restart(char *cmd) 252void machine_restart(char *cmd)
254{ 253{
255 machine_shutdown(); 254 machine_shutdown();
255
256 arm_pm_restart(reboot_mode, cmd); 256 arm_pm_restart(reboot_mode, cmd);
257
258 /* Give a grace period for failure to restart of 1s */
259 mdelay(1000);
260
261 /* Whoops - the platform was unable to reboot. Tell the user! */
262 printk("Reboot failed -- System halted\n");
263 while (1);
257} 264}
258 265
259void __show_regs(struct pt_regs *regs) 266void __show_regs(struct pt_regs *regs)
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 8fc2c8fcbdc6..8b13930cdb0a 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -908,8 +908,8 @@ void __init setup_arch(char **cmdline_p)
908 arm_dma_zone_size = mdesc->dma_zone_size; 908 arm_dma_zone_size = mdesc->dma_zone_size;
909 } 909 }
910#endif 910#endif
911 if (mdesc->soft_reboot) 911 if (mdesc->restart_mode)
912 reboot_setup("s"); 912 reboot_setup(&mdesc->restart_mode);
913 913
914 init_mm.start_code = (unsigned long) _text; 914 init_mm.start_code = (unsigned long) _text;
915 init_mm.end_code = (unsigned long) _etext; 915 init_mm.end_code = (unsigned long) _etext;
@@ -928,6 +928,9 @@ void __init setup_arch(char **cmdline_p)
928 paging_init(mdesc); 928 paging_init(mdesc);
929 request_standard_resources(mdesc); 929 request_standard_resources(mdesc);
930 930
931 if (mdesc->restart)
932 arm_pm_restart = mdesc->restart;
933
931 unflatten_device_tree(); 934 unflatten_device_tree();
932 935
933#ifdef CONFIG_SMP 936#ifdef CONFIG_SMP
diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h
index f916cd7a477d..6c119937d398 100644
--- a/arch/arm/mach-clps711x/include/mach/system.h
+++ b/arch/arm/mach-clps711x/include/mach/system.h
@@ -34,7 +34,7 @@ static inline void arch_idle(void)
34 34
35static inline void arch_reset(char mode, const char *cmd) 35static inline void arch_reset(char mode, const char *cmd)
36{ 36{
37 cpu_reset(0); 37 soft_restart(0);
38} 38}
39 39
40#endif 40#endif
diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c
index d0ce8abdd4b6..ce3ed244c4b0 100644
--- a/arch/arm/mach-ebsa110/core.c
+++ b/arch/arm/mach-ebsa110/core.c
@@ -283,7 +283,7 @@ MACHINE_START(EBSA110, "EBSA110")
283 .atag_offset = 0x400, 283 .atag_offset = 0x400,
284 .reserve_lp0 = 1, 284 .reserve_lp0 = 1,
285 .reserve_lp2 = 1, 285 .reserve_lp2 = 1,
286 .soft_reboot = 1, 286 .restart_mode = 's',
287 .map_io = ebsa110_map_io, 287 .map_io = ebsa110_map_io,
288 .init_irq = ebsa110_init_irq, 288 .init_irq = ebsa110_init_irq,
289 .timer = &ebsa110_timer, 289 .timer = &ebsa110_timer,
diff --git a/arch/arm/mach-ebsa110/include/mach/system.h b/arch/arm/mach-ebsa110/include/mach/system.h
index 9a26245bf1fc..0d5df72a03f6 100644
--- a/arch/arm/mach-ebsa110/include/mach/system.h
+++ b/arch/arm/mach-ebsa110/include/mach/system.h
@@ -34,6 +34,6 @@ static inline void arch_idle(void)
34 asm volatile ("mcr p15, 0, ip, c15, c1, 2" : : : "cc"); 34 asm volatile ("mcr p15, 0, ip, c15, c1, 2" : : : "cc");
35} 35}
36 36
37#define arch_reset(mode, cmd) cpu_reset(0x80000000) 37#define arch_reset(mode, cmd) soft_restart(0x80000000)
38 38
39#endif 39#endif
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c
index d5f178540928..60b6774e1eaa 100644
--- a/arch/arm/mach-footbridge/cats-hw.c
+++ b/arch/arm/mach-footbridge/cats-hw.c
@@ -86,7 +86,7 @@ fixup_cats(struct tag *tags, char **cmdline, struct meminfo *mi)
86MACHINE_START(CATS, "Chalice-CATS") 86MACHINE_START(CATS, "Chalice-CATS")
87 /* Maintainer: Philip Blundell */ 87 /* Maintainer: Philip Blundell */
88 .atag_offset = 0x100, 88 .atag_offset = 0x100,
89 .soft_reboot = 1, 89 .restart_mode = 's',
90 .fixup = fixup_cats, 90 .fixup = fixup_cats,
91 .map_io = footbridge_map_io, 91 .map_io = footbridge_map_io,
92 .init_irq = footbridge_init_irq, 92 .init_irq = footbridge_init_irq,
diff --git a/arch/arm/mach-footbridge/include/mach/system.h b/arch/arm/mach-footbridge/include/mach/system.h
index 0b2931566209..249f895910fb 100644
--- a/arch/arm/mach-footbridge/include/mach/system.h
+++ b/arch/arm/mach-footbridge/include/mach/system.h
@@ -24,7 +24,7 @@ static inline void arch_reset(char mode, const char *cmd)
24 /* 24 /*
25 * Jump into the ROM 25 * Jump into the ROM
26 */ 26 */
27 cpu_reset(0x41000000); 27 soft_restart(0x41000000);
28 } else { 28 } else {
29 if (machine_is_netwinder()) { 29 if (machine_is_netwinder()) {
30 /* open up the SuperIO chip 30 /* open up the SuperIO chip
diff --git a/arch/arm/mach-iop32x/include/mach/system.h b/arch/arm/mach-iop32x/include/mach/system.h
index 5987196b89c4..b4f83e5973b2 100644
--- a/arch/arm/mach-iop32x/include/mach/system.h
+++ b/arch/arm/mach-iop32x/include/mach/system.h
@@ -28,5 +28,5 @@ static inline void arch_reset(char mode, const char *cmd)
28 *IOP3XX_PCSR = 0x30; 28 *IOP3XX_PCSR = 0x30;
29 29
30 /* Jump into ROM at address 0 */ 30 /* Jump into ROM at address 0 */
31 cpu_reset(0); 31 soft_restart(0);
32} 32}
diff --git a/arch/arm/mach-iop33x/include/mach/system.h b/arch/arm/mach-iop33x/include/mach/system.h
index f192a34be073..86d1b20dd692 100644
--- a/arch/arm/mach-iop33x/include/mach/system.h
+++ b/arch/arm/mach-iop33x/include/mach/system.h
@@ -19,5 +19,5 @@ static inline void arch_reset(char mode, const char *cmd)
19 *IOP3XX_PCSR = 0x30; 19 *IOP3XX_PCSR = 0x30;
20 20
21 /* Jump into ROM at address 0 */ 21 /* Jump into ROM at address 0 */
22 cpu_reset(0); 22 soft_restart(0);
23} 23}
diff --git a/arch/arm/mach-ixp4xx/include/mach/system.h b/arch/arm/mach-ixp4xx/include/mach/system.h
index 54c0af7fa2d4..24337d9d275b 100644
--- a/arch/arm/mach-ixp4xx/include/mach/system.h
+++ b/arch/arm/mach-ixp4xx/include/mach/system.h
@@ -26,7 +26,7 @@ static inline void arch_reset(char mode, const char *cmd)
26{ 26{
27 if ( 1 && mode == 's') { 27 if ( 1 && mode == 's') {
28 /* Jump into ROM at address 0 */ 28 /* Jump into ROM at address 0 */
29 cpu_reset(0); 29 soft_restart(0);
30 } else { 30 } else {
31 /* Use on-chip reset capability */ 31 /* Use on-chip reset capability */
32 32
diff --git a/arch/arm/mach-ks8695/include/mach/system.h b/arch/arm/mach-ks8695/include/mach/system.h
index fb1dda9be2d0..ceb19c90aa52 100644
--- a/arch/arm/mach-ks8695/include/mach/system.h
+++ b/arch/arm/mach-ks8695/include/mach/system.h
@@ -32,7 +32,7 @@ static void arch_reset(char mode, const char *cmd)
32 unsigned int reg; 32 unsigned int reg;
33 33
34 if (mode == 's') 34 if (mode == 's')
35 cpu_reset(0); 35 soft_restart(0);
36 36
37 /* disable timer0 */ 37 /* disable timer0 */
38 reg = __raw_readl(KS8695_TMR_VA + KS8695_TMCON); 38 reg = __raw_readl(KS8695_TMR_VA + KS8695_TMCON);
diff --git a/arch/arm/mach-mmp/include/mach/system.h b/arch/arm/mach-mmp/include/mach/system.h
index 1a8a25edb1b4..cb0637933a85 100644
--- a/arch/arm/mach-mmp/include/mach/system.h
+++ b/arch/arm/mach-mmp/include/mach/system.h
@@ -19,8 +19,8 @@ static inline void arch_idle(void)
19static inline void arch_reset(char mode, const char *cmd) 19static inline void arch_reset(char mode, const char *cmd)
20{ 20{
21 if (cpu_is_pxa168()) 21 if (cpu_is_pxa168())
22 cpu_reset(0xffff0000); 22 soft_restart(0xffff0000);
23 else 23 else
24 cpu_reset(0); 24 soft_restart(0);
25} 25}
26#endif /* __ASM_MACH_SYSTEM_H */ 26#endif /* __ASM_MACH_SYSTEM_H */
diff --git a/arch/arm/mach-mxs/system.c b/arch/arm/mach-mxs/system.c
index 20ec3bddf7cd..cab88364e7c1 100644
--- a/arch/arm/mach-mxs/system.c
+++ b/arch/arm/mach-mxs/system.c
@@ -53,7 +53,7 @@ void arch_reset(char mode, const char *cmd)
53 mdelay(50); 53 mdelay(50);
54 54
55 /* We'll take a jump through zero as a poor second */ 55 /* We'll take a jump through zero as a poor second */
56 cpu_reset(0); 56 soft_restart(0);
57} 57}
58 58
59static int __init mxs_arch_reset_init(void) 59static int __init mxs_arch_reset_init(void)
diff --git a/arch/arm/mach-pnx4008/include/mach/system.h b/arch/arm/mach-pnx4008/include/mach/system.h
index 5dda2bb55f8d..5d6384a6128c 100644
--- a/arch/arm/mach-pnx4008/include/mach/system.h
+++ b/arch/arm/mach-pnx4008/include/mach/system.h
@@ -32,7 +32,7 @@ static void arch_idle(void)
32 32
33static inline void arch_reset(char mode, const char *cmd) 33static inline void arch_reset(char mode, const char *cmd)
34{ 34{
35 cpu_reset(0); 35 soft_restart(0);
36} 36}
37 37
38#endif 38#endif
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c
index b938fc2c316a..4f47a760398f 100644
--- a/arch/arm/mach-pxa/mioa701.c
+++ b/arch/arm/mach-pxa/mioa701.c
@@ -752,6 +752,7 @@ static void mioa701_machine_exit(void)
752 752
753MACHINE_START(MIOA701, "MIO A701") 753MACHINE_START(MIOA701, "MIO A701")
754 .atag_offset = 0x100, 754 .atag_offset = 0x100,
755 .restart_mode = 's',
755 .map_io = &pxa27x_map_io, 756 .map_io = &pxa27x_map_io,
756 .init_irq = &pxa27x_init_irq, 757 .init_irq = &pxa27x_init_irq,
757 .handle_irq = &pxa27x_handle_irq, 758 .handle_irq = &pxa27x_handle_irq,
diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c
index 01e9d643394a..b8bcda15da81 100644
--- a/arch/arm/mach-pxa/reset.c
+++ b/arch/arm/mach-pxa/reset.c
@@ -88,7 +88,7 @@ void arch_reset(char mode, const char *cmd)
88 switch (mode) { 88 switch (mode) {
89 case 's': 89 case 's':
90 /* Jump into ROM at address 0 */ 90 /* Jump into ROM at address 0 */
91 cpu_reset(0); 91 soft_restart(0);
92 break; 92 break;
93 case 'g': 93 case 'g':
94 do_gpio_reset(); 94 do_gpio_reset();
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 953a9195f9e5..2f57d94de727 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -982,6 +982,7 @@ static void __init spitz_fixup(struct tag *tags, char **cmdline,
982 982
983#ifdef CONFIG_MACH_SPITZ 983#ifdef CONFIG_MACH_SPITZ
984MACHINE_START(SPITZ, "SHARP Spitz") 984MACHINE_START(SPITZ, "SHARP Spitz")
985 .restart_mode = 'g',
985 .fixup = spitz_fixup, 986 .fixup = spitz_fixup,
986 .map_io = pxa27x_map_io, 987 .map_io = pxa27x_map_io,
987 .init_irq = pxa27x_init_irq, 988 .init_irq = pxa27x_init_irq,
@@ -993,6 +994,7 @@ MACHINE_END
993 994
994#ifdef CONFIG_MACH_BORZOI 995#ifdef CONFIG_MACH_BORZOI
995MACHINE_START(BORZOI, "SHARP Borzoi") 996MACHINE_START(BORZOI, "SHARP Borzoi")
997 .restart_mode = 'g',
996 .fixup = spitz_fixup, 998 .fixup = spitz_fixup,
997 .map_io = pxa27x_map_io, 999 .map_io = pxa27x_map_io,
998 .init_irq = pxa27x_init_irq, 1000 .init_irq = pxa27x_init_irq,
@@ -1004,6 +1006,7 @@ MACHINE_END
1004 1006
1005#ifdef CONFIG_MACH_AKITA 1007#ifdef CONFIG_MACH_AKITA
1006MACHINE_START(AKITA, "SHARP Akita") 1008MACHINE_START(AKITA, "SHARP Akita")
1009 .restart_mode = 'g',
1007 .fixup = spitz_fixup, 1010 .fixup = spitz_fixup,
1008 .map_io = pxa27x_map_io, 1011 .map_io = pxa27x_map_io,
1009 .init_irq = pxa27x_init_irq, 1012 .init_irq = pxa27x_init_irq,
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index 402b0c96613b..ef6453041cf1 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -970,6 +970,7 @@ static void __init fixup_tosa(struct tag *tags, char **cmdline,
970} 970}
971 971
972MACHINE_START(TOSA, "SHARP Tosa") 972MACHINE_START(TOSA, "SHARP Tosa")
973 .restart_mode = 'g',
973 .fixup = fixup_tosa, 974 .fixup = fixup_tosa,
974 .map_io = pxa25x_map_io, 975 .map_io = pxa25x_map_io,
975 .nr_irqs = TOSA_NR_IRQS, 976 .nr_irqs = TOSA_NR_IRQS,
diff --git a/arch/arm/mach-rpc/include/mach/system.h b/arch/arm/mach-rpc/include/mach/system.h
index 45c7b935dc45..a354f4d092c8 100644
--- a/arch/arm/mach-rpc/include/mach/system.h
+++ b/arch/arm/mach-rpc/include/mach/system.h
@@ -23,5 +23,5 @@ static inline void arch_reset(char mode, const char *cmd)
23 /* 23 /*
24 * Jump into the ROM 24 * Jump into the ROM
25 */ 25 */
26 cpu_reset(0); 26 soft_restart(0);
27} 27}
diff --git a/arch/arm/mach-s3c2410/include/mach/system-reset.h b/arch/arm/mach-s3c2410/include/mach/system-reset.h
index 6faadcee7729..913893d44650 100644
--- a/arch/arm/mach-s3c2410/include/mach/system-reset.h
+++ b/arch/arm/mach-s3c2410/include/mach/system-reset.h
@@ -19,7 +19,7 @@ static void
19arch_reset(char mode, const char *cmd) 19arch_reset(char mode, const char *cmd)
20{ 20{
21 if (mode == 's') { 21 if (mode == 's') {
22 cpu_reset(0); 22 soft_restart(0);
23 } 23 }
24 24
25 if (s3c24xx_reset_hook) 25 if (s3c24xx_reset_hook)
@@ -28,5 +28,5 @@ arch_reset(char mode, const char *cmd)
28 arch_wdt_reset(); 28 arch_wdt_reset();
29 29
30 /* we'll take a jump through zero as a poor second */ 30 /* we'll take a jump through zero as a poor second */
31 cpu_reset(0); 31 soft_restart(0);
32} 32}
diff --git a/arch/arm/mach-s3c64xx/include/mach/system.h b/arch/arm/mach-s3c64xx/include/mach/system.h
index 2e58cb7a7147..d8ca5786ba25 100644
--- a/arch/arm/mach-s3c64xx/include/mach/system.h
+++ b/arch/arm/mach-s3c64xx/include/mach/system.h
@@ -24,7 +24,7 @@ static void arch_reset(char mode, const char *cmd)
24 arch_wdt_reset(); 24 arch_wdt_reset();
25 25
26 /* if all else fails, or mode was for soft, jump to 0 */ 26 /* if all else fails, or mode was for soft, jump to 0 */
27 cpu_reset(0); 27 soft_restart(0);
28} 28}
29 29
30#endif /* __ASM_ARCH_IRQ_H */ 30#endif /* __ASM_ARCH_IRQ_H */
diff --git a/arch/arm/mach-sa1100/include/mach/system.h b/arch/arm/mach-sa1100/include/mach/system.h
index ba9da9f7f183..345d35b7450c 100644
--- a/arch/arm/mach-sa1100/include/mach/system.h
+++ b/arch/arm/mach-sa1100/include/mach/system.h
@@ -14,7 +14,7 @@ static inline void arch_reset(char mode, const char *cmd)
14{ 14{
15 if (mode == 's') { 15 if (mode == 's') {
16 /* Jump into ROM at address 0 */ 16 /* Jump into ROM at address 0 */
17 cpu_reset(0); 17 soft_restart(0);
18 } else { 18 } else {
19 /* Use on-chip reset capability */ 19 /* Use on-chip reset capability */
20 RSRR = RSRR_SWR; 20 RSRR = RSRR_SWR;
diff --git a/arch/arm/mach-shmobile/include/mach/system.h b/arch/arm/mach-shmobile/include/mach/system.h
index 76a687eeaa22..956ac18ddbf9 100644
--- a/arch/arm/mach-shmobile/include/mach/system.h
+++ b/arch/arm/mach-shmobile/include/mach/system.h
@@ -8,7 +8,7 @@ static inline void arch_idle(void)
8 8
9static inline void arch_reset(char mode, const char *cmd) 9static inline void arch_reset(char mode, const char *cmd)
10{ 10{
11 cpu_reset(0); 11 soft_restart(0);
12} 12}
13 13
14#endif 14#endif
diff --git a/arch/arm/mach-w90x900/include/mach/system.h b/arch/arm/mach-w90x900/include/mach/system.h
index ce228bdc66dd..68875a1c16be 100644
--- a/arch/arm/mach-w90x900/include/mach/system.h
+++ b/arch/arm/mach-w90x900/include/mach/system.h
@@ -33,7 +33,7 @@ static void arch_reset(char mode, const char *cmd)
33{ 33{
34 if (mode == 's') { 34 if (mode == 's') {
35 /* Jump into ROM at address 0 */ 35 /* Jump into ROM at address 0 */
36 cpu_reset(0); 36 soft_restart(0);
37 } else { 37 } else {
38 __raw_writel(WTE | WTRE | WTCLK, WTCR); 38 __raw_writel(WTE | WTRE | WTCLK, WTCR);
39 } 39 }
diff --git a/arch/arm/mm/idmap.c b/arch/arm/mm/idmap.c
index 2be9139a4ef3..296ad2eaddb0 100644
--- a/arch/arm/mm/idmap.c
+++ b/arch/arm/mm/idmap.c
@@ -78,7 +78,7 @@ void identity_mapping_del(pgd_t *pgd, unsigned long addr, unsigned long end)
78 * the user-mode pages. This will then ensure that we have predictable 78 * the user-mode pages. This will then ensure that we have predictable
79 * results when turning the mmu off 79 * results when turning the mmu off
80 */ 80 */
81void setup_mm_for_reboot(char mode) 81void setup_mm_for_reboot(void)
82{ 82{
83 /* 83 /*
84 * We need to access to user-mode page tables here. For kernel threads 84 * We need to access to user-mode page tables here. For kernel threads
diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
index 941a98c9e8aa..88417514b2c6 100644
--- a/arch/arm/mm/nommu.c
+++ b/arch/arm/mm/nommu.c
@@ -43,7 +43,7 @@ void __init paging_init(struct machine_desc *mdesc)
43/* 43/*
44 * We don't need to do anything here for nommu machines. 44 * We don't need to do anything here for nommu machines.
45 */ 45 */
46void setup_mm_for_reboot(char mode) 46void setup_mm_for_reboot(void)
47{ 47{
48} 48}
49 49
diff --git a/arch/arm/plat-mxc/system.c b/arch/arm/plat-mxc/system.c
index d65fb31a55ca..7e5c76ea4466 100644
--- a/arch/arm/plat-mxc/system.c
+++ b/arch/arm/plat-mxc/system.c
@@ -71,7 +71,7 @@ void arch_reset(char mode, const char *cmd)
71 mdelay(50); 71 mdelay(50);
72 72
73 /* we'll take a jump through zero as a poor second */ 73 /* we'll take a jump through zero as a poor second */
74 cpu_reset(0); 74 soft_restart(0);
75} 75}
76 76
77void mxc_arch_reset_init(void __iomem *base) 77void mxc_arch_reset_init(void __iomem *base)
diff --git a/arch/arm/plat-spear/include/plat/system.h b/arch/arm/plat-spear/include/plat/system.h
index a235fa0ca777..1171f228d718 100644
--- a/arch/arm/plat-spear/include/plat/system.h
+++ b/arch/arm/plat-spear/include/plat/system.h
@@ -31,7 +31,7 @@ static inline void arch_reset(char mode, const char *cmd)
31{ 31{
32 if (mode == 's') { 32 if (mode == 's') {
33 /* software reset, Jump into ROM at address 0 */ 33 /* software reset, Jump into ROM at address 0 */
34 cpu_reset(0); 34 soft_restart(0);
35 } else { 35 } else {
36 /* hardware reset, Use on-chip reset capability */ 36 /* hardware reset, Use on-chip reset capability */
37 sysctl_soft_reset((void __iomem *)VA_SPEAR_SYS_CTRL_BASE); 37 sysctl_soft_reset((void __iomem *)VA_SPEAR_SYS_CTRL_BASE);