diff options
author | Gregory CLEMENT <gregory.clement@free-electrons.com> | 2015-07-03 13:55:51 +0200 |
---|---|---|
committer | Gregory CLEMENT <gregory.clement@free-electrons.com> | 2015-07-25 17:17:05 +0200 |
commit | 3cbd6a6ca81c9e8438b592099495a7c2b72de9e3 (patch) | |
tree | 90ea439ced4bb70a3ebbde0de9faa077f8a15f65 /arch/arm/mach-mvebu/pm-board.c | |
parent | ARM: mvebu: Use __init for the PM initialization functions (diff) | |
download | linux-3cbd6a6ca81c9e8438b592099495a7c2b72de9e3.tar.xz linux-3cbd6a6ca81c9e8438b592099495a7c2b72de9e3.zip |
ARM: mvebu: Add standby support
Until now only one Armada XP and one Armada 388 based board supported
suspend to ram. However, most of the recent mvebu SoCs can support the
standby mode. Unlike for the suspend to ram, nothing special has to be
done for these SoCs. This patch allows the system to use the standby
mode on Armada 370, 38x, 39x and XP SoCs. There are issues with the
Armada 375, and the support might be added (if possible) in a future
patch.
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Diffstat (limited to 'arch/arm/mach-mvebu/pm-board.c')
-rw-r--r-- | arch/arm/mach-mvebu/pm-board.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/arm/mach-mvebu/pm-board.c b/arch/arm/mach-mvebu/pm-board.c index 3ab06e7252c3..db17121d7d63 100644 --- a/arch/arm/mach-mvebu/pm-board.c +++ b/arch/arm/mach-mvebu/pm-board.c @@ -134,11 +134,19 @@ static int __init mvebu_armada_pm_init(void) if (!gpio_ctrl) return -ENOMEM; - mvebu_pm_init(mvebu_armada_pm_enter); + mvebu_pm_suspend_init(mvebu_armada_pm_enter); out: of_node_put(np); return ret; } -late_initcall(mvebu_armada_pm_init); +/* + * Registering the mvebu_board_pm_enter callback must be done before + * the platform_suspend_ops will be registered. In the same time we + * also need to have the gpio devices registered. That's why we use a + * device_initcall_sync which is called after all the device_initcall + * (used by the gpio device) but before the late_initcall (used to + * register the platform_suspend_ops) + */ +device_initcall_sync(mvebu_armada_pm_init); |