History

ARM: EXYNOS: read initial state of power domain from hw registers

Some bootloaders disable unused power domains to reduce power consuption. Power domain driver can easily read the actual state from the hardware registers instead of assuming that their initial state is always 'on'.

Marek Szyprowski committed 14 years ago

Commit 76eb5561 parent bd0a5211 file · +6 −3Browse files

Unified · Split

arch/arm/mach-exynos/pm_domains.c+6−3
@@ -151,9 +151,12 @@ static __init int exynos4_pm_init_power_domain(void) · 150 unmodified lines
151151 if (of_have_populated_dt())
152152 return exynos_pm_dt_parse_domains();
153153
154− for (idx = 0; idx < ARRAY_SIZE(exynos4_pm_domains); idx++)
155− pm_genpd_init(&exynos4_pm_domains[idx]->pd, NULL,
156− exynos4_pm_domains[idx]->is_off);
154+ for (idx = 0; idx < ARRAY_SIZE(exynos4_pm_domains); idx++) {
155+ struct exynos_pm_domain *pd = exynos4_pm_domains[idx];
156+ int on = __raw_readl(pd->base + 0x4) & S5P_INT_LOCAL_PWR_EN;
157+
158+ pm_genpd_init(&pd->pd, NULL, !on);
159+ }
157160
158161 #ifdef CONFIG_S5P_DEV_FIMD0
159162 exynos_pm_add_dev_to_genpd(&s5p_device_fimd0, &exynos4_pd_lcd0);