public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: restart: S3C64XX: use new restart hook
Date: Mon, 19 Dec 2011 13:55:30 +0000	[thread overview]
Message-ID: <20111219135530.GG14542@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <03dc01ccbe45$80633d30$8129b790$%kim@samsung.com>

On Mon, Dec 19, 2011 at 08:58:20PM +0900, Kukjin Kim wrote:
> Hook these platforms restart code into the new restart hook rather
> than using arch_reset().
> 
> Cc: Ben Dooks <ben-linux@fluff.org>
> Cc: Russell King <rmk+kernel@arm.linux.org.uk>
> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>

It would be _much_ better if you could prepare a set of patches against
my devel-stable which adds this support (as has been done for others.)

I can merge it into my restart branch, and update the commit which removes
arch_reset() itself, and the commit which adds the #error.  We can then
avoid bisect breakage.

> ---
>  arch/arm/mach-s3c64xx/common.c                     |   10 ++++++++++
>  arch/arm/mach-s3c64xx/common.h                     |    2 ++
>  arch/arm/mach-s3c64xx/include/mach/system.h        |   12 ------------
>  arch/arm/mach-s3c64xx/mach-anw6410.c               |    1 +
>  arch/arm/mach-s3c64xx/mach-crag6410.c              |    1 +
>  arch/arm/mach-s3c64xx/mach-hmt.c                   |    1 +
>  arch/arm/mach-s3c64xx/mach-mini6410.c              |    1 +
>  arch/arm/mach-s3c64xx/mach-ncp.c                   |    1 +
>  arch/arm/mach-s3c64xx/mach-real6410.c              |    1 +
>  arch/arm/mach-s3c64xx/mach-smartq5.c               |    1 +
>  arch/arm/mach-s3c64xx/mach-smartq7.c               |    1 +
>  arch/arm/mach-s3c64xx/mach-smdk6400.c              |    1 +
>  arch/arm/mach-s3c64xx/mach-smdk6410.c              |    1 +
>  .../arm/plat-samsung/include/plat/watchdog-reset.h |    1 +
>  14 files changed, 23 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c
> index 8ae5b16..35182ba 100644
> --- a/arch/arm/mach-s3c64xx/common.c
> +++ b/arch/arm/mach-s3c64xx/common.c
> @@ -44,6 +44,7 @@
>  #include <plat/irq-vic-timer.h>
>  #include <plat/regs-irqtype.h>
>  #include <plat/regs-serial.h>
> +#include <plat/watchdog-reset.h>
>  
>  #include "common.h"
>  
> @@ -373,3 +374,12 @@ static int __init s3c64xx_init_irq_eint(void)
>  	return 0;
>  }
>  arch_initcall(s3c64xx_init_irq_eint);
> +
> +void s3c64xx_restart(char mode, const char *cmd)
> +{
> +	if (mode != 's')
> +		arch_wdt_reset();
> +
> +	/* if all else fails, or mode was for soft, jump to 0 */
> +	soft_restart(0);
> +}
> diff --git a/arch/arm/mach-s3c64xx/common.h b/arch/arm/mach-s3c64xx/common.h
> index 9f523a2..8dc8ab6 100644
> --- a/arch/arm/mach-s3c64xx/common.h
> +++ b/arch/arm/mach-s3c64xx/common.h
> @@ -23,6 +23,8 @@ void s3c64xx_init_io(struct map_desc *mach_desc, int size);
>  void s3c64xx_register_clocks(unsigned long xtal, unsigned armclk_limit);
>  void s3c64xx_setup_clocks(void);
>  
> +void s3c64xx_restart(char mode, const char *cmd);
> +
>  extern struct syscore_ops s3c64xx_irq_syscore_ops;
>  extern struct sysdev_class s3c64xx_sysclass;
>  
> diff --git a/arch/arm/mach-s3c64xx/include/mach/system.h b/arch/arm/mach-s3c64xx/include/mach/system.h
> index e19c584..353ed43 100644
> --- a/arch/arm/mach-s3c64xx/include/mach/system.h
> +++ b/arch/arm/mach-s3c64xx/include/mach/system.h
> @@ -11,21 +11,9 @@
>  #ifndef __ASM_ARCH_SYSTEM_H
>  #define __ASM_ARCH_SYSTEM_H __FILE__
>  
> -#include <plat/watchdog-reset.h>
> -
>  static void arch_idle(void)
>  {
>  	/* nothing here yet */
>  }
>  
> -#error Fix me up
> -static void arch_reset(char mode, const char *cmd)
> -{
> -	if (mode != 's')
> -		arch_wdt_reset();
> -
> -	/* if all else fails, or mode was for soft, jump to 0 */
> -	soft_restart(0);
> -}
> -
>  #endif /* __ASM_ARCH_IRQ_H */
> diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c b/arch/arm/mach-s3c64xx/mach-anw6410.c
> index 4949bcd..a2ea6e5 100644
> --- a/arch/arm/mach-s3c64xx/mach-anw6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-anw6410.c
> @@ -240,4 +240,5 @@ MACHINE_START(ANW6410, "A&W6410")
>  	.map_io		= anw6410_map_io,
>  	.init_machine	= anw6410_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c
> index 954a44e..3615d83 100644
> --- a/arch/arm/mach-s3c64xx/mach-crag6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
> @@ -715,4 +715,5 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")
>  	.map_io		= crag6410_map_io,
>  	.init_machine	= crag6410_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c
> index b6231d5..8707bee 100644
> --- a/arch/arm/mach-s3c64xx/mach-hmt.c
> +++ b/arch/arm/mach-s3c64xx/mach-hmt.c
> @@ -271,4 +271,5 @@ MACHINE_START(HMT, "Airgoo-HMT")
>  	.map_io		= hmt_map_io,
>  	.init_machine	= hmt_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-mini6410.c b/arch/arm/mach-s3c64xx/mach-mini6410.c
> index ed02e7e..4fba232 100644
> --- a/arch/arm/mach-s3c64xx/mach-mini6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-mini6410.c
> @@ -349,4 +349,5 @@ MACHINE_START(MINI6410, "MINI6410")
>  	.map_io		= mini6410_map_io,
>  	.init_machine	= mini6410_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-ncp.c b/arch/arm/mach-s3c64xx/mach-ncp.c
> index 3e2391a..9ec4d57 100644
> --- a/arch/arm/mach-s3c64xx/mach-ncp.c
> +++ b/arch/arm/mach-s3c64xx/mach-ncp.c
> @@ -103,4 +103,5 @@ MACHINE_START(NCP, "NCP")
>  	.map_io		= ncp_map_io,
>  	.init_machine	= ncp_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-real6410.c b/arch/arm/mach-s3c64xx/mach-real6410.c
> index 0456143..0cb7116 100644
> --- a/arch/arm/mach-s3c64xx/mach-real6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-real6410.c
> @@ -330,4 +330,5 @@ MACHINE_START(REAL6410, "REAL6410")
>  	.map_io		= real6410_map_io,
>  	.init_machine	= real6410_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-smartq5.c b/arch/arm/mach-s3c64xx/mach-smartq5.c
> index 2044a9f..f1f57bd 100644
> --- a/arch/arm/mach-s3c64xx/mach-smartq5.c
> +++ b/arch/arm/mach-s3c64xx/mach-smartq5.c
> @@ -151,4 +151,5 @@ MACHINE_START(SMARTQ5, "SmartQ 5")
>  	.map_io		= smartq_map_io,
>  	.init_machine	= smartq5_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-smartq7.c b/arch/arm/mach-s3c64xx/mach-smartq7.c
> index eaf24a3..63117d8 100644
> --- a/arch/arm/mach-s3c64xx/mach-smartq7.c
> +++ b/arch/arm/mach-s3c64xx/mach-smartq7.c
> @@ -167,4 +167,5 @@ MACHINE_START(SMARTQ7, "SmartQ 7")
>  	.map_io		= smartq_map_io,
>  	.init_machine	= smartq7_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-smdk6400.c b/arch/arm/mach-s3c64xx/mach-smdk6400.c
> index bda5e0b..64375d7 100644
> --- a/arch/arm/mach-s3c64xx/mach-smdk6400.c
> +++ b/arch/arm/mach-s3c64xx/mach-smdk6400.c
> @@ -92,4 +92,5 @@ MACHINE_START(SMDK6400, "SMDK6400")
>  	.map_io		= smdk6400_map_io,
>  	.init_machine	= smdk6400_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c
> index 91087da..f239b0a 100644
> --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c
> @@ -704,4 +704,5 @@ MACHINE_START(SMDK6410, "SMDK6410")
>  	.map_io		= smdk6410_map_io,
>  	.init_machine	= smdk6410_machine_init,
>  	.timer		= &s3c24xx_timer,
> +	.restart	= s3c64xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/plat-samsung/include/plat/watchdog-reset.h b/arch/arm/plat-samsung/include/plat/watchdog-reset.h
> index 40dbb2b..f19aff1 100644
> --- a/arch/arm/plat-samsung/include/plat/watchdog-reset.h
> +++ b/arch/arm/plat-samsung/include/plat/watchdog-reset.h
> @@ -17,6 +17,7 @@
>  #include <linux/clk.h>
>  #include <linux/err.h>
>  #include <linux/io.h>
> +#include <linux/delay.h>
>  
>  static inline void arch_wdt_reset(void)
>  {
> -- 
> 1.7.1
> 
> 

  parent reply	other threads:[~2011-12-19 13:55 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-19 11:58 [PATCH] ARM: restart: S3C64XX: use new restart hook Kukjin Kim
2011-12-19 12:12 ` Heiko Stübner
2011-12-19 12:20   ` Kukjin Kim
2011-12-19 12:25     ` [PATCH] ARM: restart: move SWRST based S3C platforms to machine_desc hook Heiko Stübner
2011-12-19 12:42       ` Kukjin Kim
2011-12-19 12:58         ` Heiko Stübner
2011-12-19 13:55 ` Russell King - ARM Linux [this message]
2011-12-19 14:37   ` [PATCH] ARM: restart: S3C64XX: use new restart hook Kukjin Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111219135530.GG14542@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox