aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-shmobile
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2011-07-10 04:38:34 -0400
committerRafael J. Wysocki <rjw@sisk.pl>2011-07-10 04:38:34 -0400
commit999a4d2a4da0527567e4b17d4da0782509358a83 (patch)
tree39acdada163f111d6f41457dce08d834a650bef6 /arch/arm/mach-shmobile
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/mach-shmobile')
-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;
12struct cpuidle_device; 12struct cpuidle_device;
13extern void (*shmobile_cpuidle_modes[])(void); 13extern void (*shmobile_cpuidle_modes[])(void);
14extern void (*shmobile_cpuidle_setup)(struct cpuidle_device *dev); 14extern void (*shmobile_cpuidle_setup)(struct cpuidle_device *dev);
15extern void (*shmobile_runtime_pm_late_init)(void);
15 16
16extern void sh7367_init_irq(void); 17extern void sh7367_init_irq(void);
17extern void sh7367_add_early_devices(void); 18extern 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)
56 return 0; 56 return 0;
57} 57}
58core_initcall(sh_pm_runtime_init); 58core_initcall(sh_pm_runtime_init);
59
60void (*shmobile_runtime_pm_late_init)(void);
61
62static int __init sh_pm_runtime_late_init(void)
63{
64 if (shmobile_runtime_pm_late_init)
65 shmobile_runtime_pm_late_init();
66 return 0;
67}
68late_initcall(sh_pm_runtime_late_init);