summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2011-07-10 10:38:34 +0200
committerRafael J. Wysocki <rjw@sisk.pl>2011-07-10 10:38:34 +0200
commit999a4d2a4da0527567e4b17d4da0782509358a83 (patch)
tree39acdada163f111d6f41457dce08d834a650bef6 /arch/arm
parentd24771dec9c62945a5d1c6a37e7a04f5c2a2ae6f (diff)
ARM: mach-shmobile: Runtime PM late init callback
Add a mach-shmobile specific callback for SoC-specific code to hook into. By having the late_initcall() in a common place we can have multi-SoC/board support in the same kernel binary. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-shmobile/include/mach/common.h1
-rw-r--r--arch/arm/mach-shmobile/pm_runtime.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/common.h b/arch/arm/mach-shmobile/include/mach/common.h
index 06aecb31d9c7..73a76d75ccbc 100644
--- a/arch/arm/mach-shmobile/include/mach/common.h
+++ b/arch/arm/mach-shmobile/include/mach/common.h
@@ -12,6 +12,7 @@ extern struct platform_suspend_ops shmobile_suspend_ops;
struct cpuidle_device;
extern void (*shmobile_cpuidle_modes[])(void);
extern void (*shmobile_cpuidle_setup)(struct cpuidle_device *dev);
+extern void (*shmobile_runtime_pm_late_init)(void);
extern void sh7367_init_irq(void);
extern void sh7367_add_early_devices(void);
diff --git a/arch/arm/mach-shmobile/pm_runtime.c b/arch/arm/mach-shmobile/pm_runtime.c
index 2bcde1c46a6b..2f6ded5712ee 100644
--- a/arch/arm/mach-shmobile/pm_runtime.c
+++ b/arch/arm/mach-shmobile/pm_runtime.c
@@ -56,3 +56,13 @@ static int __init sh_pm_runtime_init(void)
return 0;
}
core_initcall(sh_pm_runtime_init);
+
+void (*shmobile_runtime_pm_late_init)(void);
+
+static int __init sh_pm_runtime_late_init(void)
+{
+ if (shmobile_runtime_pm_late_init)
+ shmobile_runtime_pm_late_init();
+ return 0;
+}
+late_initcall(sh_pm_runtime_late_init);