[PATCH v3 05/19] arm: exynos: pm_domains: add support for devices registered before arch_initcall

Marek Szyprowski
2014-11-19T11:15:34Z

SYSMMU devices will be registered early before any other devices and
before calling arch_initcall. To add them to respective power domains,
additional scan of all platform devices is needed.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
arch/arm/mach-exynos/pm_domains.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c
index 20f267121b3e..8f1f239ee424 100644
--- a/arch/arm/mach-exynos/pm_domains.c
+++ b/arch/arm/mach-exynos/pm_domains.c
@@ -105,6 +105,12 @@ static int exynos_pd_power_off(struct generic_pm_domain *domain)
return exynos_pd_power(domain, false);
}

+static __init int exynos_pd_init_platform_dev(struct device *dev, void *data)
+{
+ dev_pm_domain_attach(dev, true);
+ return 0;
+}
+
static __init int exynos4_pm_init_power_domain(void)
{
struct platform_device *pdev;
@@ -161,6 +167,7 @@ no_clk:
of_genpd_add_provider_simple(np, &pd->pd);
}

- return 0;
+ return bus_for_each_dev(&platform_bus_type, NULL, NULL,
+ exynos_pd_init_platform_dev);
}
arch_initcall(exynos4_pm_init_power_domain);
--
1.9.2