arm64: vexpress: Add support for poweroff/restart
authorCatalin Marinas <catalin.marinas@arm.com>
Thu, 28 Feb 2013 18:14:37 +0000 (18:14 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 8 May 2013 09:23:00 +0000 (10:23 +0100)
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>
arch/arm64/Kconfig
arch/arm64/include/asm/system_misc.h
arch/arm64/kernel/process.c

index c05bb215292a653c77c5be9228c67dab3f2fdadd..43b0e9f10a39a322faf4a64959a32a958b46cd66 100644 (file)
@@ -32,6 +32,8 @@ config ARM64
        select OF
        select OF_EARLY_FLATTREE
        select PERF_USE_VMALLOC
+       select POWER_RESET
+       select POWER_SUPPLY
        select RTC_LIB
        select SPARSE_IRQ
        select SYSCTL_EXCEPTION_TRACE
@@ -106,6 +108,7 @@ config ARCH_VEXPRESS
        bool "ARMv8 software model (Versatile Express)"
        select ARCH_REQUIRE_GPIOLIB
        select COMMON_CLK_VERSATILE
+       select POWER_RESET_VEXPRESS
        select VEXPRESS_CONFIG
        help
          This enables support for the ARMv8 software model (Versatile
index 95e407255347b49971e59b3273148ba582166ee6..a6e1750369efcb32ea589b6450589515bda1c283 100644 (file)
@@ -41,7 +41,7 @@ extern void show_pte(struct mm_struct *mm, unsigned long addr);
 extern void __show_regs(struct pt_regs *);
 
 void soft_restart(unsigned long);
-extern void (*pm_restart)(const char *cmd);
+extern void (*arm_pm_restart)(char str, const char *cmd);
 
 #define UDBG_UNDEFINED (1 << 0)
 #define UDBG_SYSCALL   (1 << 1)
index 116a60abe86fd16d897a6f0f5626a843f2a6abb5..bbefb6fdfee220ec8ab43b709b29fd82b5705f02 100644 (file)
@@ -81,8 +81,8 @@ void soft_restart(unsigned long addr)
 void (*pm_power_off)(void);
 EXPORT_SYMBOL_GPL(pm_power_off);
 
-void (*pm_restart)(const char *cmd);
-EXPORT_SYMBOL_GPL(pm_restart);
+void (*arm_pm_restart)(char str, const char *cmd);
+EXPORT_SYMBOL_GPL(arm_pm_restart);
 
 
 /*
@@ -164,8 +164,8 @@ void machine_restart(char *cmd)
        local_fiq_disable();
 
        /* Now call the architecture specific reboot code. */
-       if (pm_restart)
-               pm_restart(cmd);
+       if (arm_pm_restart)
+               arm_pm_restart('h', cmd);
 
        /*
         * Whoops - the architecture was unable to reboot.