[PATCH 18/41] ARM: restart: ixp4xx: use new restart hook

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Nov 17 12:30:27 EST 2011


Ack?

On Sun, Nov 06, 2011 at 05:46:04PM +0000, Russell King - ARM Linux wrote:
> Hook these platforms restart code into the new restart hook rather
> than using arch_reset().
> 
> Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
> ---
>  arch/arm/mach-ixp4xx/avila-setup.c           |    2 ++
>  arch/arm/mach-ixp4xx/common.c                |   20 ++++++++++++++++++++
>  arch/arm/mach-ixp4xx/coyote-setup.c          |    2 ++
>  arch/arm/mach-ixp4xx/dsmg600-setup.c         |    1 +
>  arch/arm/mach-ixp4xx/fsg-setup.c             |    1 +
>  arch/arm/mach-ixp4xx/gateway7001-setup.c     |    1 +
>  arch/arm/mach-ixp4xx/goramo_mlr.c            |    1 +
>  arch/arm/mach-ixp4xx/gtwx5715-setup.c        |    1 +
>  arch/arm/mach-ixp4xx/include/mach/platform.h |    1 +
>  arch/arm/mach-ixp4xx/include/mach/system.h   |   21 ---------------------
>  arch/arm/mach-ixp4xx/ixdp425-setup.c         |    1 +
>  arch/arm/mach-ixp4xx/nas100d-setup.c         |    1 +
>  arch/arm/mach-ixp4xx/nslu2-setup.c           |    1 +
>  arch/arm/mach-ixp4xx/omixp-setup.c           |    3 +++
>  arch/arm/mach-ixp4xx/vulcan-setup.c          |    1 +
>  arch/arm/mach-ixp4xx/wg302v2-setup.c         |    1 +
>  16 files changed, 38 insertions(+), 21 deletions(-)
> 
> diff --git a/arch/arm/mach-ixp4xx/avila-setup.c b/arch/arm/mach-ixp4xx/avila-setup.c
> index 37609a2..a7277ad 100644
> --- a/arch/arm/mach-ixp4xx/avila-setup.c
> +++ b/arch/arm/mach-ixp4xx/avila-setup.c
> @@ -172,6 +172,7 @@ MACHINE_START(AVILA, "Gateworks Avila Network Platform")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  
>   /*
> @@ -190,6 +191,7 @@ MACHINE_START(LOFT, "Giant Shoulder Inc Loft board")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
>  
> diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
> index 0777257..4a02619 100644
> --- a/arch/arm/mach-ixp4xx/common.c
> +++ b/arch/arm/mach-ixp4xx/common.c
> @@ -500,3 +500,23 @@ static void __init ixp4xx_clockevent_init(void)
>  
>  	clockevents_register_device(&clockevent_ixp4xx);
>  }
> +
> +void ixp4xx_restart(char mode, const char *cmd)
> +{
> +	if ( 1 && mode == 's') {
> +		/* Jump into ROM at address 0 */
> +		soft_restart(0);
> +	} else {
> +		/* Use on-chip reset capability */
> +
> +		/* set the "key" register to enable access to
> +		 * "timer" and "enable" registers
> +		 */
> +		*IXP4XX_OSWK = IXP4XX_WDT_KEY;
> +
> +		/* write 0 to the timer register for an immediate reset */
> +		*IXP4XX_OSWT = 0;
> +
> +		*IXP4XX_OSWE = IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE;
> +	}
> +}
> diff --git a/arch/arm/mach-ixp4xx/coyote-setup.c b/arch/arm/mach-ixp4xx/coyote-setup.c
> index 81dfec3..a74f86c 100644
> --- a/arch/arm/mach-ixp4xx/coyote-setup.c
> +++ b/arch/arm/mach-ixp4xx/coyote-setup.c
> @@ -117,6 +117,7 @@ MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
>  
> @@ -132,6 +133,7 @@ MACHINE_START(IXDPG425, "Intel IXDPG425")
>  	.timer		= &ixp4xx_timer,
>  	.atag_offset	= 0x100,
>  	.init_machine	= coyote_init,
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
>  
> diff --git a/arch/arm/mach-ixp4xx/dsmg600-setup.c b/arch/arm/mach-ixp4xx/dsmg600-setup.c
> index 8837fbc..67be177 100644
> --- a/arch/arm/mach-ixp4xx/dsmg600-setup.c
> +++ b/arch/arm/mach-ixp4xx/dsmg600-setup.c
> @@ -286,4 +286,5 @@ MACHINE_START(DSMG600, "D-Link DSM-G600 RevA")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-ixp4xx/fsg-setup.c b/arch/arm/mach-ixp4xx/fsg-setup.c
> index 2887c35..6d58182 100644
> --- a/arch/arm/mach-ixp4xx/fsg-setup.c
> +++ b/arch/arm/mach-ixp4xx/fsg-setup.c
> @@ -277,5 +277,6 @@ MACHINE_START(FSG, "Freecom FSG-3")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  
> diff --git a/arch/arm/mach-ixp4xx/gateway7001-setup.c b/arch/arm/mach-ixp4xx/gateway7001-setup.c
> index d69d1b0..7ecf9b2 100644
> --- a/arch/arm/mach-ixp4xx/gateway7001-setup.c
> +++ b/arch/arm/mach-ixp4xx/gateway7001-setup.c
> @@ -104,5 +104,6 @@ MACHINE_START(GATEWAY7001, "Gateway 7001 AP")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
> diff --git a/arch/arm/mach-ixp4xx/goramo_mlr.c b/arch/arm/mach-ixp4xx/goramo_mlr.c
> index bf6678d..c0e3d69 100644
> --- a/arch/arm/mach-ixp4xx/goramo_mlr.c
> +++ b/arch/arm/mach-ixp4xx/goramo_mlr.c
> @@ -504,4 +504,5 @@ MACHINE_START(GORAMO_MLR, "MultiLink")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-ixp4xx/gtwx5715-setup.c b/arch/arm/mach-ixp4xx/gtwx5715-setup.c
> index aa029fc..a23f893 100644
> --- a/arch/arm/mach-ixp4xx/gtwx5715-setup.c
> +++ b/arch/arm/mach-ixp4xx/gtwx5715-setup.c
> @@ -172,6 +172,7 @@ MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  
>  
> diff --git a/arch/arm/mach-ixp4xx/include/mach/platform.h b/arch/arm/mach-ixp4xx/include/mach/platform.h
> index e824c02..df9250b 100644
> --- a/arch/arm/mach-ixp4xx/include/mach/platform.h
> +++ b/arch/arm/mach-ixp4xx/include/mach/platform.h
> @@ -125,6 +125,7 @@ extern void ixp4xx_init_irq(void);
>  extern void ixp4xx_sys_init(void);
>  extern void ixp4xx_timer_init(void);
>  extern struct sys_timer ixp4xx_timer;
> +extern void ixp4xx_restart(char, const char *);
>  extern void ixp4xx_pci_preinit(void);
>  struct pci_sys_data;
>  extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
> diff --git a/arch/arm/mach-ixp4xx/include/mach/system.h b/arch/arm/mach-ixp4xx/include/mach/system.h
> index 24337d9..72db2bb 100644
> --- a/arch/arm/mach-ixp4xx/include/mach/system.h
> +++ b/arch/arm/mach-ixp4xx/include/mach/system.h
> @@ -8,9 +8,6 @@
>   * published by the Free Software Foundation.
>   *
>   */
> -
> -#include <mach/hardware.h>
> -
>  static inline void arch_idle(void)
>  {
>  	/* ixp4xx does not implement the XScale PWRMODE register,
> @@ -21,24 +18,6 @@ static inline void arch_idle(void)
>  #endif
>  }
>  
> -
>  static inline void arch_reset(char mode, const char *cmd)
>  {
> -	if ( 1 && mode == 's') {
> -		/* Jump into ROM at address 0 */
> -		soft_restart(0);
> -	} else {
> -		/* Use on-chip reset capability */
> -
> -		/* set the "key" register to enable access to
> -		 * "timer" and "enable" registers
> -		 */
> -		*IXP4XX_OSWK = IXP4XX_WDT_KEY;
> -
> -		/* write 0 to the timer register for an immediate reset */
> -		*IXP4XX_OSWT = 0;
> -
> -		*IXP4XX_OSWE = IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE;
> -	}
>  }
> -
> diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c
> index f235f82..8a38b39 100644
> --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
> +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
> @@ -261,6 +261,7 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
>  
> diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c
> index de716fa..1010eb7 100644
> --- a/arch/arm/mach-ixp4xx/nas100d-setup.c
> +++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
> @@ -321,4 +321,5 @@ MACHINE_START(NAS100D, "Iomega NAS 100d")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c
> index ac81ccb..aa355c3 100644
> --- a/arch/arm/mach-ixp4xx/nslu2-setup.c
> +++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
> @@ -307,4 +307,5 @@ MACHINE_START(NSLU2, "Linksys NSLU2")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-ixp4xx/omixp-setup.c b/arch/arm/mach-ixp4xx/omixp-setup.c
> index 3b6a81a..0940869 100644
> --- a/arch/arm/mach-ixp4xx/omixp-setup.c
> +++ b/arch/arm/mach-ixp4xx/omixp-setup.c
> @@ -246,6 +246,7 @@ MACHINE_START(DEVIXP, "Omicron DEVIXP")
>  	.init_irq	= ixp4xx_init_irq,
>  	.timer          = &ixp4xx_timer,
>  	.init_machine	= omixp_init,
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
>  
> @@ -259,6 +260,7 @@ MACHINE_START(MICCPT, "Omicron MICCPT")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
>  
> @@ -269,5 +271,6 @@ MACHINE_START(MIC256, "Omicron MIC256")
>  	.init_irq	= ixp4xx_init_irq,
>  	.timer          = &ixp4xx_timer,
>  	.init_machine	= omixp_init,
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
> diff --git a/arch/arm/mach-ixp4xx/vulcan-setup.c b/arch/arm/mach-ixp4xx/vulcan-setup.c
> index 27e469e..9dec206 100644
> --- a/arch/arm/mach-ixp4xx/vulcan-setup.c
> +++ b/arch/arm/mach-ixp4xx/vulcan-setup.c
> @@ -244,4 +244,5 @@ MACHINE_START(ARCOM_VULCAN, "Arcom/Eurotech Vulcan")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-ixp4xx/wg302v2-setup.c b/arch/arm/mach-ixp4xx/wg302v2-setup.c
> index b14144b..5ac0f0a 100644
> --- a/arch/arm/mach-ixp4xx/wg302v2-setup.c
> +++ b/arch/arm/mach-ixp4xx/wg302v2-setup.c
> @@ -105,5 +105,6 @@ MACHINE_START(WG302V2, "Netgear WG302 v2 / WAG302 v2")
>  #if defined(CONFIG_PCI)
>  	.dma_zone_size	= SZ_64M,
>  #endif
> +	.restart	= ixp4xx_restart,
>  MACHINE_END
>  #endif
> -- 
> 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