Skip to content

Commit fccac54

Browse files
mszyprowstorulf
authored andcommitted
pmdomain: samsung: Rework legacy splash-screen handover workaround
Limit the workaround for the lack of the proper splash-screen handover handling to the legacy ARM 32bit systems and replace forcing a sync_state by explicite power domain shutdown. This approach lets compiler to optimize it out on newer ARM 64bit systems. Suggested-by: Ulf Hansson <ulf.hansson@linaro.org> Fixes: 0745658 ("pmdomain: samsung: Fix splash-screen handover by enforcing a sync_state") Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 parent 7458f72 commit fccac54

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

drivers/pmdomain/samsung/exynos-pm-domains.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,15 @@ static int exynos_pd_probe(struct platform_device *pdev)
128128
pd->pd.power_on = exynos_pd_power_on;
129129
pd->local_pwr_cfg = pm_domain_cfg->local_pwr_cfg;
130130

131+
/*
132+
* Some Samsung platforms with bootloaders turning on the splash-screen
133+
* and handing it over to the kernel, requires the power-domains to be
134+
* reset during boot.
135+
*/
136+
if (IS_ENABLED(CONFIG_ARM) &&
137+
of_device_is_compatible(np, "samsung,exynos4210-pd"))
138+
exynos_pd_power_off(&pd->pd);
139+
131140
on = readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg;
132141

133142
pm_genpd_init(&pd->pd, NULL, !on);
@@ -146,15 +155,6 @@ static int exynos_pd_probe(struct platform_device *pdev)
146155
parent.np, child.np);
147156
}
148157

149-
/*
150-
* Some Samsung platforms with bootloaders turning on the splash-screen
151-
* and handing it over to the kernel, requires the power-domains to be
152-
* reset during boot. As a temporary hack to manage this, let's enforce
153-
* a sync_state.
154-
*/
155-
if (!ret)
156-
of_genpd_sync_state(np);
157-
158158
pm_runtime_enable(dev);
159159
return ret;
160160
}

0 commit comments

Comments
 (0)