diff options
| author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-03-19 12:20:24 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-03-19 12:20:24 -0400 |
| commit | be093beb608edf821b45fe00a8a080fb5c6ed4af (patch) | |
| tree | 05751248a909761dab9ccb29fd08bf2c5683ef0d | |
| parent | 14b6848bc0134b8838d374c423df3edda9b1490e (diff) | |
[ARM] pass reboot command line to arch_reset()
OMAP wishes to pass state to the boot loader upon reboot in order to
instruct it whether to wait for USB-based reflashing or not. There is
already a facility to do this via the reboot() syscall, except we ignore
the string passed to machine_restart().
This patch fixes things to pass this string to arch_reset(). This means
that we keep the reboot mode limited to telling the kernel _how_ to
perform the reboot which should be independent of what we request the
boot loader to do.
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
50 files changed, 65 insertions, 65 deletions
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 811be55f338e..0a0d49ae1e6d 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h | |||
| @@ -97,8 +97,8 @@ extern void __show_regs(struct pt_regs *); | |||
| 97 | extern int cpu_architecture(void); | 97 | extern int cpu_architecture(void); |
| 98 | extern void cpu_init(void); | 98 | extern void cpu_init(void); |
| 99 | 99 | ||
| 100 | void arm_machine_restart(char mode); | 100 | void arm_machine_restart(char mode, const char *cmd); |
| 101 | extern void (*arm_pm_restart)(char str); | 101 | extern void (*arm_pm_restart)(char str, const char *cmd); |
| 102 | 102 | ||
| 103 | #define UDBG_UNDEFINED (1 << 0) | 103 | #define UDBG_UNDEFINED (1 << 0) |
| 104 | #define UDBG_SYSCALL (1 << 1) | 104 | #define UDBG_SYSCALL (1 << 1) |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index af377c73d90b..2de14e2afdc5 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
| @@ -83,7 +83,7 @@ static int __init hlt_setup(char *__unused) | |||
| 83 | __setup("nohlt", nohlt_setup); | 83 | __setup("nohlt", nohlt_setup); |
| 84 | __setup("hlt", hlt_setup); | 84 | __setup("hlt", hlt_setup); |
| 85 | 85 | ||
| 86 | void arm_machine_restart(char mode) | 86 | void arm_machine_restart(char mode, const char *cmd) |
| 87 | { | 87 | { |
| 88 | /* | 88 | /* |
| 89 | * Clean and disable cache, and turn off interrupts | 89 | * Clean and disable cache, and turn off interrupts |
| @@ -100,7 +100,7 @@ void arm_machine_restart(char mode) | |||
| 100 | /* | 100 | /* |
| 101 | * Now call the architecture specific reboot code. | 101 | * Now call the architecture specific reboot code. |
| 102 | */ | 102 | */ |
| 103 | arch_reset(mode); | 103 | arch_reset(mode, cmd); |
| 104 | 104 | ||
| 105 | /* | 105 | /* |
| 106 | * Whoops - the architecture was unable to reboot. | 106 | * Whoops - the architecture was unable to reboot. |
| @@ -120,7 +120,7 @@ EXPORT_SYMBOL(pm_idle); | |||
| 120 | void (*pm_power_off)(void); | 120 | void (*pm_power_off)(void); |
| 121 | EXPORT_SYMBOL(pm_power_off); | 121 | EXPORT_SYMBOL(pm_power_off); |
| 122 | 122 | ||
| 123 | void (*arm_pm_restart)(char str) = arm_machine_restart; | 123 | void (*arm_pm_restart)(char str, const char *cmd) = arm_machine_restart; |
| 124 | EXPORT_SYMBOL_GPL(arm_pm_restart); | 124 | EXPORT_SYMBOL_GPL(arm_pm_restart); |
| 125 | 125 | ||
| 126 | 126 | ||
| @@ -195,9 +195,9 @@ void machine_power_off(void) | |||
| 195 | pm_power_off(); | 195 | pm_power_off(); |
| 196 | } | 196 | } |
| 197 | 197 | ||
| 198 | void machine_restart(char * __unused) | 198 | void machine_restart(char *cmd) |
| 199 | { | 199 | { |
| 200 | arm_pm_restart(reboot_mode); | 200 | arm_pm_restart(reboot_mode, cmd); |
| 201 | } | 201 | } |
| 202 | 202 | ||
| 203 | void __show_regs(struct pt_regs *regs) | 203 | void __show_regs(struct pt_regs *regs) |
diff --git a/arch/arm/mach-aaec2000/include/mach/system.h b/arch/arm/mach-aaec2000/include/mach/system.h index 8f4115d734ce..fe08ca1add6f 100644 --- a/arch/arm/mach-aaec2000/include/mach/system.h +++ b/arch/arm/mach-aaec2000/include/mach/system.h | |||
| @@ -16,7 +16,7 @@ static inline void arch_idle(void) | |||
| 16 | cpu_do_idle(); | 16 | cpu_do_idle(); |
| 17 | } | 17 | } |
| 18 | 18 | ||
| 19 | static inline void arch_reset(char mode) | 19 | static inline void arch_reset(char mode, const char *cmd) |
| 20 | { | 20 | { |
| 21 | cpu_reset(0); | 21 | cpu_reset(0); |
| 22 | } | 22 | } |
diff --git a/arch/arm/mach-at91/include/mach/system.h b/arch/arm/mach-at91/include/mach/system.h index e712658d966c..5268af3933c2 100644 --- a/arch/arm/mach-at91/include/mach/system.h +++ b/arch/arm/mach-at91/include/mach/system.h | |||
| @@ -43,7 +43,7 @@ static inline void arch_idle(void) | |||
| 43 | 43 | ||
| 44 | void (*at91_arch_reset)(void); | 44 | void (*at91_arch_reset)(void); |
| 45 | 45 | ||
| 46 | static inline void arch_reset(char mode) | 46 | static inline void arch_reset(char mode, const char *cmd) |
| 47 | { | 47 | { |
| 48 | /* call the CPU-specific reset function */ | 48 | /* call the CPU-specific reset function */ |
| 49 | if (at91_arch_reset) | 49 | if (at91_arch_reset) |
diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h index 24e96159e3e7..f916cd7a477d 100644 --- a/arch/arm/mach-clps711x/include/mach/system.h +++ b/arch/arm/mach-clps711x/include/mach/system.h | |||
| @@ -32,7 +32,7 @@ static inline void arch_idle(void) | |||
| 32 | mov r0, r0"); | 32 | mov r0, r0"); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | static inline void arch_reset(char mode) | 35 | static inline void arch_reset(char mode, const char *cmd) |
| 36 | { | 36 | { |
| 37 | cpu_reset(0); | 37 | cpu_reset(0); |
| 38 | } | 38 | } |
diff --git a/arch/arm/mach-davinci/include/mach/system.h b/arch/arm/mach-davinci/include/mach/system.h index 17ca41dc2c53..b7e7036674fa 100644 --- a/arch/arm/mach-davinci/include/mach/system.h +++ b/arch/arm/mach-davinci/include/mach/system.h | |||
| @@ -21,7 +21,7 @@ static void arch_idle(void) | |||
| 21 | cpu_do_idle(); | 21 | cpu_do_idle(); |
| 22 | } | 22 | } |
| 23 | 23 | ||
