瀏覽代碼

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>
Santosh Shilimkar 12 年之前
父節點
當前提交
8308a78db8
共有 3 個文件被更改,包括 2 次插入1 次删除
  1. 1 0
      arch/arm/mach-keystone/keystone.c
  2. 1 0
      arch/arm/mach-keystone/keystone.h
  3. 0 1
      arch/arm/mach-keystone/pm_domain.c

+ 1 - 0
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);
 }
 

+ 1 - 0
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__ */

+ 0 - 1
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);