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 /arch/arm/mach-pxa | |
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>
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r-- | arch/arm/mach-pxa/corgi.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/include/mach/system.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/mioa701.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/poodle.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/reset.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-pxa/spitz.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-pxa/tosa.c | 4 |
7 files changed, 15 insertions, 15 deletions
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 3b89e5010fb3..cdf21dd135b4 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -635,16 +635,16 @@ static void corgi_poweroff(void) | |||
635 | /* Green LED off tells the bootloader to halt */ | 635 | /* Green LED off tells the bootloader to halt */ |
636 | gpio_set_value(CORGI_GPIO_LED_GREEN, 0); | 636 | gpio_set_value(CORGI_GPIO_LED_GREEN, 0); |
637 | 637 | ||
638 | arm_machine_restart('h'); | 638 | arm_machine_restart('h', NULL); |
639 | } | 639 | } |
640 | 640 | ||
641 | static void corgi_restart(char mode) | 641 | static void corgi_restart(char mode, const char *cmd) |
642 | { | 642 | { |
643 | if (!machine_is_corgi()) | 643 | if (!machine_is_corgi()) |
644 | /* Green LED on tells the bootloader to reboot */ | 644 | /* Green LED on tells the bootloader to reboot */ |
645 | gpio_set_value(CORGI_GPIO_LED_GREEN, 1); | 645 | gpio_set_value(CORGI_GPIO_LED_GREEN, 1); |
646 | 646 | ||
647 | arm_machine_restart('h'); | 647 | arm_machine_restart('h', cmd); |
648 | } | 648 | } |
649 | 649 | ||
650 | static void __init corgi_init(void) | 650 | static void __init corgi_init(void) |
diff --git a/arch/arm/mach-pxa/include/mach/system.h b/arch/arm/mach-pxa/include/mach/system.h index 0a587c4ec709..d1fce8b6d105 100644 --- a/arch/arm/mach-pxa/include/mach/system.h +++ b/arch/arm/mach-pxa/include/mach/system.h | |||
@@ -20,4 +20,4 @@ static inline void arch_idle(void) | |||
20 | } | 20 | } |
21 | 21 | ||
22 | 22 | ||
23 | void arch_reset(char mode); | 23 | void arch_reset(char mode, const char *cmd); |
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index 025772785d36..97c93a7a285c 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c | |||
@@ -788,13 +788,13 @@ static void mioa701_machine_exit(void); | |||
788 | static void mioa701_poweroff(void) | 788 | static void mioa701_poweroff(void) |
789 | { | 789 | { |
790 | mioa701_machine_exit(); | 790 | mioa701_machine_exit(); |
791 | arm_machine_restart('s'); | 791 | arm_machine_restart('s', NULL); |
792 | } | 792 | } |
793 | 793 | ||
794 | static void mioa701_restart(char c) | 794 | static void mioa701_restart(char c, const char *cmd) |
795 | { | 795 | { |
796 | mioa701_machine_exit(); | 796 | mioa701_machine_exit(); |
797 | arm_machine_restart('s'); | 797 | arm_machine_restart('s', cmd); |
798 | } | 798 | } |
799 | 799 | ||
800 | struct gpio_ress global_gpios[] = { | 800 | struct gpio_ress global_gpios[] = { |
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 572ddec2b3e6..036bbde4d221 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
@@ -501,12 +501,12 @@ static struct platform_device *devices[] __initdata = { | |||
501 | 501 | ||
502 | static void poodle_poweroff(void) | 502 | static void poodle_poweroff(void) |
503 | { | 503 | { |
504 | arm_machine_restart('h'); | 504 | arm_machine_restart('h', NULL); |
505 | } | 505 | } |
506 | 506 | ||
507 | static void poodle_restart(char mode) | 507 | static void poodle_restart(char mode, const char *cmd) |
508 | { | 508 | { |
509 | arm_machine_restart('h'); | 509 | arm_machine_restart('h', cmd); |
510 | } | 510 | } |
511 | 511 | ||
512 | static void __init poodle_init(void) | 512 | static void __init poodle_init(void) |
diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c index 867c95c09618..df29d45fb4e7 100644 --- a/arch/arm/mach-pxa/reset.c +++ b/arch/arm/mach-pxa/reset.c | |||
@@ -81,7 +81,7 @@ static void do_hw_reset(void) | |||
81 | OSMR3 = OSCR + 368640; /* ... in 100 ms */ | 81 | OSMR3 = OSCR + 368640; /* ... in 100 ms */ |
82 | } | 82 | } |
83 | 83 | ||
84 | void arch_reset(char mode) | 84 | void arch_reset(char mode, const char *cmd) |
85 | { | 85 | { |
86 | clear_reset_status(RESET_STATUS_ALL); | 86 | clear_reset_status(RESET_STATUS_ALL); |
87 | 87 | ||
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index f697c492b2ab..7a0a430222cf 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -701,10 +701,10 @@ static struct platform_device *devices[] __initdata = { | |||
701 | 701 | ||
702 | static void spitz_poweroff(void) | 702 | static void spitz_poweroff(void) |
703 | { | 703 | { |
704 | arm_machine_restart('g'); | 704 | arm_machine_restart('g', NULL); |
705 | } | 705 | } |
706 | 706 | ||
707 | static void spitz_restart(char mode) | 707 | static void spitz_restart(char mode, const char *cmd) |
708 | { | 708 | { |
709 | /* Bootloader magic for a reboot */ | 709 | /* Bootloader magic for a reboot */ |
710 | if((MSC0 & 0xffff0000) == 0x7ff00000) | 710 | if((MSC0 & 0xffff0000) == 0x7ff00000) |
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c index 66b13802c99d..4f6f5024884e 100644 --- a/arch/arm/mach-pxa/tosa.c +++ b/arch/arm/mach-pxa/tosa.c | |||
@@ -876,10 +876,10 @@ static struct platform_device *devices[] __initdata = { | |||
876 | 876 | ||
877 | static void tosa_poweroff(void) | 877 | static void tosa_poweroff(void) |
878 | { | 878 | { |
879 | arm_machine_restart('g'); | 879 | arm_machine_restart('g', NULL); |
880 | } | 880 | } |
881 | 881 | ||
882 | static void tosa_restart(char mode) | 882 | static void tosa_restart(char mode, const char *cmd) |
883 | { | 883 | { |
884 | /* Bootloader magic for a reboot */ | 884 | /* Bootloader magic for a reboot */ |
885 | if((MSC0 & 0xffff0000) == 0x7ff00000) | 885 | if((MSC0 & 0xffff0000) == 0x7ff00000) |