|
@@ -151,9 +151,12 @@ static __init int exynos4_pm_init_power_domain(void)
|
|
|
if (of_have_populated_dt())
|
|
|
return exynos_pm_dt_parse_domains();
|
|
|
|
|
|
- for (idx = 0; idx < ARRAY_SIZE(exynos4_pm_domains); idx++)
|
|
|
- pm_genpd_init(&exynos4_pm_domains[idx]->pd, NULL,
|
|
|
- exynos4_pm_domains[idx]->is_off);
|
|
|
+ for (idx = 0; idx < ARRAY_SIZE(exynos4_pm_domains); idx++) {
|
|
|
+ struct exynos_pm_domain *pd = exynos4_pm_domains[idx];
|
|
|
+ int on = __raw_readl(pd->base + 0x4) & S5P_INT_LOCAL_PWR_EN;
|
|
|
+
|
|
|
+ pm_genpd_init(&pd->pd, NULL, !on);
|
|
|
+ }
|
|
|
|
|
|
#ifdef CONFIG_S5P_DEV_FIMD0
|
|
|
exynos_pm_add_dev_to_genpd(&s5p_device_fimd0, &exynos4_pd_lcd0);
|