summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2440/s3c244x.c
diff options
context:
space:
mode:
authorHeiko Stuebner2012-03-01 05:23:32 +0100
committerKukjin Kim2012-03-01 05:23:32 +0100
commitc1ba544f81544ed9613ad5d058968533dbcef4b2 (patch)
tree4c2990910818ad4b1dc112b2eb05cf859cacbfd5 /arch/arm/mach-s3c2440/s3c244x.c
parentARM: SAMSUNG: Fix memory size for hsotg (diff)
downloadkernel-qcow2-linux-c1ba544f81544ed9613ad5d058968533dbcef4b2.tar.gz
kernel-qcow2-linux-c1ba544f81544ed9613ad5d058968533dbcef4b2.tar.xz
kernel-qcow2-linux-c1ba544f81544ed9613ad5d058968533dbcef4b2.zip
ARM: S3C24XX: Fix restart on S3C2442
Commit b27b072791dc (ARM: 7265/1: restart: S3C24XX: use new restart hook) introduced the new restart hook also for the S3C244x cpus, but it was only defined in the S3C2440 scope, i.e. when CPU_S3C2440 was selected. Devices using the S3C2442 like the GTA02 normally don't select this CPU which leads to compilation errors like: LD .tmp_vmlinux1 arch/arm/mach-s3c2440/built-in.o:(.arch.info.init+0x3c): undefined reference to `s3c2440_restart' make: *** [.tmp_vmlinux1] Error 1 Therefore move the s3c2440_restart function to s3c244x.c which is common to both cpus and also fix the naming to reflect this. Reported-and-tested-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s3c2440/s3c244x.c')
-rw-r--r--arch/arm/mach-s3c2440/s3c244x.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2440/s3c244x.c b/arch/arm/mach-s3c2440/s3c244x.c
index 36bc60f61d0a..744930a870eb 100644
--- a/arch/arm/mach-s3c2440/s3c244x.c
+++ b/arch/arm/mach-s3c2440/s3c244x.c
@@ -46,6 +46,7 @@
#include <plat/pm.h>
#include <plat/pll.h>
#include <plat/nand-core.h>
+#include <plat/watchdog-reset.h>
static struct map_desc s3c244x_iodesc[] __initdata = {
IODESC_ENT(CLKPWR),
@@ -196,3 +197,13 @@ struct syscore_ops s3c244x_pm_syscore_ops = {
.suspend = s3c244x_suspend,
.resume = s3c244x_resume,
};
+
+void s3c244x_restart(char mode, const char *cmd)
+{
+ if (mode == 's')
+ soft_restart(0);
+
+ arch_wdt_reset();
+
+ /* we'll take a jump through zero as a poor second */
+ soft_restart(0);