summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-keystone
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2013-11-23 17:08:03 -0500
committerSantosh Shilimkar <santosh.shilimkar@ti.com>2013-12-16 16:03:36 -0500
commit8308a78db84b047a223c2c753f3cdad77970f81a (patch)
tree86a1204b7142a0c4f2e2778b9155c1eb5fe1c5ec /arch/arm/mach-keystone
parentdf595a9d70fc3d1f4435b4a643bfaab9913c0ebd (diff)
downloadop-kernel-dev-8308a78db84b047a223c2c753f3cdad77970f81a.zip
op-kernel-dev-8308a78db84b047a223c2c753f3cdad77970f81a.tar.gz
ARM: keystone: Make PM bus ready before populating platform devices
Keystone PM bus makes use of generic PM clock core backend. Since generic PM clock core uses platform bus notifiers to track events like ADD_DEVICE/DEL_DEVICE and to fill clock lists per each device, we need to initialise Keystone PM domains before the platform devices have been created. Hence, fix it by moving keystone_pm_runtime_init() before platform devices have been populated. Reported-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Diffstat (limited to 'arch/arm/mach-keystone')
-rw-r--r--arch/arm/mach-keystone/keystone.c1
-rw-r--r--arch/arm/mach-keystone/keystone.h1
-rw-r--r--arch/arm/mach-keystone/pm_domain.c1
3 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
index 2fe4dd0..6e6bb7d 100644
--- a/arch/arm/mach-keystone/keystone.c
+++ b/arch/arm/mach-keystone/keystone.c
@@ -41,6 +41,7 @@ static void __init keystone_init(void)
if (WARN_ON(!keystone_rstctrl))
pr_warn("ti,keystone-reset iomap error\n");
+ keystone_pm_runtime_init();
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}
diff --git a/arch/arm/mach-keystone/keystone.h b/arch/arm/mach-keystone/keystone.h
index 60bef9d..cd04a1c 100644
--- a/arch/arm/mach-keystone/keystone.h
+++ b/arch/arm/mach-keystone/keystone.h
@@ -18,6 +18,7 @@
extern struct smp_operations keystone_smp_ops;
extern void secondary_startup(void);
extern u32 keystone_cpu_smc(u32 command, u32 cpu, u32 addr);
+extern int keystone_pm_runtime_init(void);
#endif /* __ASSEMBLER__ */
#endif /* __KEYSTONE_H__ */
diff --git a/arch/arm/mach-keystone/pm_domain.c b/arch/arm/mach-keystone/pm_domain.c
index 2962523..065f2e3 100644
--- a/arch/arm/mach-keystone/pm_domain.c
+++ b/arch/arm/mach-keystone/pm_domain.c
@@ -79,4 +79,3 @@ int __init keystone_pm_runtime_init(void)
return 0;
}
-subsys_initcall(keystone_pm_runtime_init);
OpenPOWER on IntegriCloud