aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2013-02-28 13:14:37 -0500
committerCatalin Marinas <catalin.marinas@arm.com>2013-05-08 05:23:00 -0400
commitaa1e8ec1d2a997b39aebab13c32b77da2ac0f287 (patch)
tree718754e6b7332089d05aaf03d0b0f59034b81ca5
parentc4188edc9e92fdc4b341c5cba91ffd8c3e9997e5 (diff)
arm64: vexpress: Add support for poweroff/restart
This patch adds the arm_pm_poweroff definition expected by the vexpress-poweroff.c driver and enables the latter for arm64. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Acked-by: Pawel Moll <pawel.moll@arm.com>
-rw-r--r--arch/arm64/Kconfig3
-rw-r--r--arch/arm64/include/asm/system_misc.h2
-rw-r--r--arch/arm64/kernel/process.c8
3 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index c05bb215292a..43b0e9f10a39 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -32,6 +32,8 @@ config ARM64
32 select OF 32 select OF
33 select OF_EARLY_FLATTREE 33 select OF_EARLY_FLATTREE
34 select PERF_USE_VMALLOC 34 select PERF_USE_VMALLOC
35 select POWER_RESET
36 select POWER_SUPPLY
35 select RTC_LIB 37 select RTC_LIB
36 select SPARSE_IRQ 38 select SPARSE_IRQ
37 select SYSCTL_EXCEPTION_TRACE 39 select SYSCTL_EXCEPTION_TRACE
@@ -106,6 +108,7 @@ config ARCH_VEXPRESS
106 bool "ARMv8 software model (Versatile Express)" 108 bool "ARMv8 software model (Versatile Express)"
107 select ARCH_REQUIRE_GPIOLIB 109 select ARCH_REQUIRE_GPIOLIB
108 select COMMON_CLK_VERSATILE 110 select COMMON_CLK_VERSATILE
111 select POWER_RESET_VEXPRESS
109 select VEXPRESS_CONFIG 112 select VEXPRESS_CONFIG
110 help 113 help
111 This enables support for the ARMv8 software model (Versatile 114 This enables support for the ARMv8 software model (Versatile
diff --git a/arch/arm64/include/asm/system_misc.h b/arch/arm64/include/asm/system_misc.h
index 95e407255347..a6e1750369ef 100644
--- a/arch/arm64/include/asm/system_misc.h
+++ b/arch/arm64/include/asm/system_misc.h
@@ -41,7 +41,7 @@ extern void show_pte(struct mm_struct *mm, unsigned long addr);
41extern void __show_regs(struct pt_regs *); 41extern void __show_regs(struct pt_regs *);
42 42
43void soft_restart(unsigned long); 43void soft_restart(unsigned long);
44extern void (*pm_restart)(const char *cmd); 44extern void (*arm_pm_restart)(char str, const char *cmd);
45 45
46#define UDBG_UNDEFINED (1 << 0) 46#define UDBG_UNDEFINED (1 << 0)
47#define UDBG_SYSCALL (1 << 1) 47#define UDBG_SYSCALL (1 << 1)
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 116a60abe86f..bbefb6fdfee2 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -81,8 +81,8 @@ void soft_restart(unsigned long addr)
81void (*pm_power_off)(void); 81void (*pm_power_off)(void);
82EXPORT_SYMBOL_GPL(pm_power_off); 82EXPORT_SYMBOL_GPL(pm_power_off);
83 83
84void (*pm_restart)(const char *cmd); 84void (*arm_pm_restart)(char str, const char *cmd);
85EXPORT_SYMBOL_GPL(pm_restart); 85EXPORT_SYMBOL_GPL(arm_pm_restart);
86 86
87 87
88/* 88/*
@@ -164,8 +164,8 @@ void machine_restart(char *cmd)
164 local_fiq_disable(); 164 local_fiq_disable();
165 165
166 /* Now call the architecture specific reboot code. */ 166 /* Now call the architecture specific reboot code. */
167 if (pm_restart) 167 if (arm_pm_restart)
168 pm_restart(cmd); 168 arm_pm_restart('h', cmd);
169 169
170 /* 170 /*
171 * Whoops - the architecture was unable to reboot. 171 * Whoops - the architecture was unable to reboot.