[PATCH 25/41] ARM: restart: orion5x: use new restart hook
Nicolas Pitre
nico at fluxnic.net
Thu Nov 24 17:05:31 EST 2011
On Sun, 6 Nov 2011, Russell King - ARM Linux wrote:
> Hook these platforms restart code into the new restart hook rather than
> using arch_reset().
>
> In addition, convert calls to arm_machine_restart() to orion5x_restart()
> to ensure that they continue to work as intended.
>
> Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
Acked-by: Nicolas Pitre <nico at linaro.org>
> ---
> arch/arm/mach-orion5x/common.c | 12 ++++++++++++
> arch/arm/mach-orion5x/common.h | 1 +
> arch/arm/mach-orion5x/d2net-setup.c | 2 ++
> arch/arm/mach-orion5x/db88f5281-setup.c | 1 +
> arch/arm/mach-orion5x/dns323-setup.c | 1 +
> arch/arm/mach-orion5x/edmini_v2-setup.c | 1 +
> arch/arm/mach-orion5x/include/mach/system.h | 10 ----------
> arch/arm/mach-orion5x/kurobox_pro-setup.c | 2 ++
> arch/arm/mach-orion5x/ls-chl-setup.c | 3 ++-
> arch/arm/mach-orion5x/ls_hgl-setup.c | 3 ++-
> arch/arm/mach-orion5x/lsmini-setup.c | 3 ++-
> arch/arm/mach-orion5x/mss2-setup.c | 3 ++-
> arch/arm/mach-orion5x/mv2120-setup.c | 3 ++-
> arch/arm/mach-orion5x/net2big-setup.c | 1 +
> arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | 1 +
> arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | 1 +
> arch/arm/mach-orion5x/rd88f5182-setup.c | 1 +
> arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | 1 +
> arch/arm/mach-orion5x/terastation_pro2-setup.c | 1 +
> arch/arm/mach-orion5x/ts209-setup.c | 1 +
> arch/arm/mach-orion5x/ts409-setup.c | 1 +
> arch/arm/mach-orion5x/ts78xx-setup.c | 1 +
> arch/arm/mach-orion5x/wnr854t-setup.c | 1 +
> arch/arm/mach-orion5x/wrt350n-v2-setup.c | 1 +
> 24 files changed, 41 insertions(+), 15 deletions(-)
>
> diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
> index 22ace0b..41127e8 100644
> --- a/arch/arm/mach-orion5x/common.c
> +++ b/arch/arm/mach-orion5x/common.c
> @@ -18,6 +18,7 @@
> #include <linux/mbus.h>
> #include <linux/mv643xx_i2c.h>
> #include <linux/ata_platform.h>
> +#include <linux/delay.h>
> #include <net/dsa.h>
> #include <asm/page.h>
> #include <asm/setup.h>
> @@ -304,6 +305,17 @@ void __init orion5x_init(void)
> orion5x_wdt_init();
> }
>
> +void orion5x_restart(char mode, const char *cmd)
> +{
> + /*
> + * Enable and issue soft reset
> + */
> + orion5x_setbits(RSTOUTn_MASK, (1 << 2));
> + orion5x_setbits(CPU_SOFT_RESET, 1);
> + mdelay(200);
> + orion5x_clrbits(CPU_SOFT_RESET, 1);
> +}
> +
> /*
> * Many orion-based systems have buggy bootloader implementations.
> * This is a common fixup for bogus memory tags.
> diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h
> index 909489f..37ef18d 100644
> --- a/arch/arm/mach-orion5x/common.h
> +++ b/arch/arm/mach-orion5x/common.h
> @@ -39,6 +39,7 @@ void orion5x_spi_init(void);
> void orion5x_uart0_init(void);
> void orion5x_uart1_init(void);
> void orion5x_xor_init(void);
> +void orion5x_restart(char, const char *);
>
> /*
> * PCIe/PCI functions.
> diff --git a/arch/arm/mach-orion5x/d2net-setup.c b/arch/arm/mach-orion5x/d2net-setup.c
> index 8c83009..d75dcfa 100644
> --- a/arch/arm/mach-orion5x/d2net-setup.c
> +++ b/arch/arm/mach-orion5x/d2net-setup.c
> @@ -343,6 +343,7 @@ MACHINE_START(D2NET, "LaCie d2 Network")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> #endif
>
> @@ -355,6 +356,7 @@ MACHINE_START(BIGDISK, "LaCie Big Disk Network")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> #endif
>
> diff --git a/arch/arm/mach-orion5x/db88f5281-setup.c b/arch/arm/mach-orion5x/db88f5281-setup.c
> index 4b79a80..a104d5a 100644
> --- a/arch/arm/mach-orion5x/db88f5281-setup.c
> +++ b/arch/arm/mach-orion5x/db88f5281-setup.c
> @@ -364,4 +364,5 @@ MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board")
> .init_early = orion5x_init_early,
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c
> index 343f60e..91b0f47 100644
> --- a/arch/arm/mach-orion5x/dns323-setup.c
> +++ b/arch/arm/mach-orion5x/dns323-setup.c
> @@ -736,4 +736,5 @@ MACHINE_START(DNS323, "D-Link DNS-323")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c
> index 70a4e92..355e962 100644
> --- a/arch/arm/mach-orion5x/edmini_v2-setup.c
> +++ b/arch/arm/mach-orion5x/edmini_v2-setup.c
> @@ -258,4 +258,5 @@ MACHINE_START(EDMINI_V2, "LaCie Ethernet Disk mini V2")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/include/mach/system.h b/arch/arm/mach-orion5x/include/mach/system.h
> index a1d6e46..6677677 100644
> --- a/arch/arm/mach-orion5x/include/mach/system.h
> +++ b/arch/arm/mach-orion5x/include/mach/system.h
> @@ -11,8 +11,6 @@
> #ifndef __ASM_ARCH_SYSTEM_H
> #define __ASM_ARCH_SYSTEM_H
>
> -#include <mach/bridge-regs.h>
> -
> static inline void arch_idle(void)
> {
> cpu_do_idle();
> @@ -20,14 +18,6 @@ static inline void arch_idle(void)
>
> static inline void arch_reset(char mode, const char *cmd)
> {
> - /*
> - * Enable and issue soft reset
> - */
> - orion5x_setbits(RSTOUTn_MASK, (1 << 2));
> - orion5x_setbits(CPU_SOFT_RESET, 1);
> - mdelay(200);
> - orion5x_clrbits(CPU_SOFT_RESET, 1);
> }
>
> -
> #endif
> diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c
> index d3cd3f6..47587b8 100644
> --- a/arch/arm/mach-orion5x/kurobox_pro-setup.c
> +++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c
> @@ -386,6 +386,7 @@ MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> #endif
>
> @@ -399,5 +400,6 @@ MACHINE_START(LINKSTATION_PRO, "Buffalo Linkstation Pro/Live")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> #endif
> diff --git a/arch/arm/mach-orion5x/ls-chl-setup.c b/arch/arm/mach-orion5x/ls-chl-setup.c
> index 9503fff..5272131 100644
> --- a/arch/arm/mach-orion5x/ls-chl-setup.c
> +++ b/arch/arm/mach-orion5x/ls-chl-setup.c
> @@ -140,7 +140,7 @@ static struct mv_sata_platform_data lschl_sata_data = {
>
> static void lschl_power_off(void)
> {
> - arm_machine_restart('h', NULL);
> + orion5x_restart('h', NULL);
> }
>
> /*****************************************************************************
> @@ -325,4 +325,5 @@ MACHINE_START(LINKSTATION_LSCHL, "Buffalo Linkstation LiveV3 (LS-CHL)")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/ls_hgl-setup.c b/arch/arm/mach-orion5x/ls_hgl-setup.c
> index ed6d772..9a8697b 100644
> --- a/arch/arm/mach-orion5x/ls_hgl-setup.c
> +++ b/arch/arm/mach-orion5x/ls_hgl-setup.c
> @@ -186,7 +186,7 @@ static struct mv_sata_platform_data ls_hgl_sata_data = {
>
> static void ls_hgl_power_off(void)
> {
> - arm_machine_restart('h', NULL);
> + orion5x_restart('h', NULL);
> }
>
>
> @@ -272,4 +272,5 @@ MACHINE_START(LINKSTATION_LS_HGL, "Buffalo Linkstation LS-HGL")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/lsmini-setup.c b/arch/arm/mach-orion5x/lsmini-setup.c
> index 743f7f1..09c7365 100644
> --- a/arch/arm/mach-orion5x/lsmini-setup.c
> +++ b/arch/arm/mach-orion5x/lsmini-setup.c
> @@ -186,7 +186,7 @@ static struct mv_sata_platform_data lsmini_sata_data = {
>
> static void lsmini_power_off(void)
> {
> - arm_machine_restart('h', NULL);
> + orion5x_restart('h', NULL);
> }
>
>
> @@ -274,5 +274,6 @@ MACHINE_START(LINKSTATION_MINI, "Buffalo Linkstation Mini")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> #endif
> diff --git a/arch/arm/mach-orion5x/mss2-setup.c b/arch/arm/mach-orion5x/mss2-setup.c
> index 6020e26..65faaa3 100644
> --- a/arch/arm/mach-orion5x/mss2-setup.c
> +++ b/arch/arm/mach-orion5x/mss2-setup.c
> @@ -267,5 +267,6 @@ MACHINE_START(MSS2, "Maxtor Shared Storage II")
> .init_early = orion5x_init_early,
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> - .fixup = tag_fixup_mem32
> + .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/mv2120-setup.c b/arch/arm/mach-orion5x/mv2120-setup.c
> index 201ae36..c87fde4 100644
> --- a/arch/arm/mach-orion5x/mv2120-setup.c
> +++ b/arch/arm/mach-orion5x/mv2120-setup.c
> @@ -234,5 +234,6 @@ MACHINE_START(MV2120, "HP Media Vault mv2120")
> .init_early = orion5x_init_early,
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> - .fixup = tag_fixup_mem32
> + .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/net2big-setup.c b/arch/arm/mach-orion5x/net2big-setup.c
> index 6197c79..0180c39 100644
> --- a/arch/arm/mach-orion5x/net2big-setup.c
> +++ b/arch/arm/mach-orion5x/net2big-setup.c
> @@ -426,5 +426,6 @@ MACHINE_START(NET2BIG, "LaCie 2Big Network")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
>
> diff --git a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c
> index ebd6767..292038f 100644
> --- a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c
> +++ b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c
> @@ -175,4 +175,5 @@ MACHINE_START(RD88F5181L_FXO, "Marvell Orion-VoIP FXO Reference Design")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c
> index 05db2d3..c44eaba 100644
> --- a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c
> +++ b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c
> @@ -187,4 +187,5 @@ MACHINE_START(RD88F5181L_GE, "Marvell Orion-VoIP GE Reference Design")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/rd88f5182-setup.c b/arch/arm/mach-orion5x/rd88f5182-setup.c
> index e47fa05..96438b6 100644
> --- a/arch/arm/mach-orion5x/rd88f5182-setup.c
> +++ b/arch/arm/mach-orion5x/rd88f5182-setup.c
> @@ -311,4 +311,5 @@ MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design")
> .init_early = orion5x_init_early,
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c
> index 6431725..2c5fab0 100644
> --- a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c
> +++ b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c
> @@ -128,4 +128,5 @@ MACHINE_START(RD88F6183AP_GE, "Marvell Orion-1-90 AP GE Reference Design")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/terastation_pro2-setup.c b/arch/arm/mach-orion5x/terastation_pro2-setup.c
> index 29f1526..632a861 100644
> --- a/arch/arm/mach-orion5x/terastation_pro2-setup.c
> +++ b/arch/arm/mach-orion5x/terastation_pro2-setup.c
> @@ -364,4 +364,5 @@ MACHINE_START(TERASTATION_PRO2, "Buffalo Terastation Pro II/Live")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c
> index 31e51f9..62c156b 100644
> --- a/arch/arm/mach-orion5x/ts209-setup.c
> +++ b/arch/arm/mach-orion5x/ts209-setup.c
> @@ -329,4 +329,5 @@ MACHINE_START(TS209, "QNAP TS-109/TS-209")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c
> index 0fbcc14..4e6ff75 100644
> --- a/arch/arm/mach-orion5x/ts409-setup.c
> +++ b/arch/arm/mach-orion5x/ts409-setup.c
> @@ -318,4 +318,5 @@ MACHINE_START(TS409, "QNAP TS-409")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c
> index 6c75cd3..0a236dd 100644
> --- a/arch/arm/mach-orion5x/ts78xx-setup.c
> +++ b/arch/arm/mach-orion5x/ts78xx-setup.c
> @@ -627,4 +627,5 @@ MACHINE_START(TS78XX, "Technologic Systems TS-78xx SBC")
> .init_early = orion5x_init_early,
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/wnr854t-setup.c b/arch/arm/mach-orion5x/wnr854t-setup.c
> index b8be7d8..078c03f 100644
> --- a/arch/arm/mach-orion5x/wnr854t-setup.c
> +++ b/arch/arm/mach-orion5x/wnr854t-setup.c
> @@ -179,4 +179,5 @@ MACHINE_START(WNR854T, "Netgear WNR854T")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
> index faf81a0..46a9778 100644
> --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c
> +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c
> @@ -267,4 +267,5 @@ MACHINE_START(WRT350N_V2, "Linksys WRT350N v2")
> .init_irq = orion5x_init_irq,
> .timer = &orion5x_timer,
> .fixup = tag_fixup_mem32,
> + .restart = orion5x_restart,
> MACHINE_END
> --
> 1.7.4.4
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
More information about the linux-arm-kernel
mailing list