Skip to contentSkip to conversation

ARM: mach-imx: imx6ul: populates platform device at .init_machine

PATCH New Peter Chen 2 participants 2 messages Aug 16, 2016 – Aug 17, 2016

Subsystems (4)
lore
Share & tools
lore

Peter Chen

author
#0 lore raw

PATCH v2 1/1 ARM: mach-imx: imx6ul: populates platform device at .init_machine

At imx6ul_init_machine, it calls imx6ul_pm_init which needs to find platform device for ocram, but the default populate platform device is at of_platform_default_populate_init, which is located at arch_initcall_sync, and called later than arch_initcall (.init_machine is located at that). So below warning message will be showed during boots up:

imx6q_suspend_init: failed to find ocram device!
imx6_pm_common_init: No DDR LPM support with suspend -19!

Due to lack of ocram device, the suspend mode "mem" which needs ocram to store suspend routine code is invalid.

This commit populates platform device before imx6ul_pm_init like other imx6 platforms do, and the suspend mode "mem" can work successfully.

Cc Anson Huang <[email protected]>
Cc Fabio Estevam <[email protected]>
Cc Kefeng Wang <[email protected]>
Cc Rob Herring <[email protected]>
Fixes 850bea2335e4 ("arm: Remove unnecessary of_platform_populate

with default match table")

---

Changes for v2:
- Add Fabio's Reviewed-by tag
- Using the correct commit-id for "Fixes" tag

 arch/arm/mach-imx/mach-imx6ul.c | 1 +
 1 file changed, 1 insertion(+)
arch/arm/mach-imx/mach-imx6ul.c +1 -0
index 5d9bfab..6bb7d9c 100644
@@ -64,6 +64,7 @@ static void __init imx6ul_init_machine(void)
 	if (parent == NULL)
 		pr_warn("failed to initialize soc device\n");
 
+	of_platform_default_populate(NULL, NULL, parent);
 	imx6ul_enet_init();
 	imx_anatop_init();
 	imx6ul_pm_init();
Signature · 1 line
1.9.1
#1 lore raw

PATCH v2 1/1 ARM: mach-imx: imx6ul: populates platform device at .init_machine

Quoted 12 lines · Peter Chen

At imx6ul_init_machine, it calls imx6ul_pm_init which needs to find platform device for ocram, but the default populate platform device is at of_platform_default_populate_init, which is located at arch_initcall_sync, and called later than arch_initcall (.init_machine is located at that). So below warning message will be showed during boots up:

imx6q_suspend_init: failed to find ocram device!
imx6_pm_common_init: No DDR LPM support with suspend -19!

Due to lack of ocram device, the suspend mode "mem" which needs ocram to store suspend routine code is invalid.

Quoted 8 lines

This commit populates platform device before imx6ul_pm_init like other imx6 platforms do, and the suspend mode "mem" can work successfully.

Cc Anson Huang <[email protected]>
Cc Fabio Estevam <[email protected]>
Cc Kefeng Wang <[email protected]>
Cc Rob Herring <[email protected]>

The regression is only introduced in v4.8-rc1, and v4.7 is just fine. That said, the stable tag shouldn't be added here.

Dropped the stable tag and applied it as a fix for v4.8-rc.

Shawn

Quoted 34 lines
Fixes 850bea2335e4 ("arm: Remove unnecessary of_platform_populate

with default match table")

---

Changes for v2:
- Add Fabio's Reviewed-by tag
- Using the correct commit-id for "Fixes" tag

 arch/arm/mach-imx/mach-imx6ul.c | 1 +
 1 file changed, 1 insertion(+)
arch/arm/mach-imx/mach-imx6ul.c +1 -0
index 5d9bfab..6bb7d9c 100644
@@ -64,6 +64,7 @@ static void __init imx6ul_init_machine(void)
 	if (parent == NULL)
 		pr_warn("failed to initialize soc device\n");
 
+	of_platform_default_populate(NULL, NULL, parent);
 	imx6ul_enet_init();
 	imx_anatop_init();
 	imx6ul_pm_init();
Signature · 7 lines
1.9.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel