mirror of https://github.com/torvalds/linux.git
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: 0745658aeb ("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>
This commit is contained in:
parent
7458f72cc2
commit
fccac54b0d
|
|
@ -128,6 +128,15 @@ static int exynos_pd_probe(struct platform_device *pdev)
|
|||
pd->pd.power_on = exynos_pd_power_on;
|
||||
pd->local_pwr_cfg = pm_domain_cfg->local_pwr_cfg;
|
||||
|
||||
/*
|
||||
* Some Samsung platforms with bootloaders turning on the splash-screen
|
||||
* and handing it over to the kernel, requires the power-domains to be
|
||||
* reset during boot.
|
||||
*/
|
||||
if (IS_ENABLED(CONFIG_ARM) &&
|
||||
of_device_is_compatible(np, "samsung,exynos4210-pd"))
|
||||
exynos_pd_power_off(&pd->pd);
|
||||
|
||||
on = readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg;
|
||||
|
||||
pm_genpd_init(&pd->pd, NULL, !on);
|
||||
|
|
@ -146,15 +155,6 @@ static int exynos_pd_probe(struct platform_device *pdev)
|
|||
parent.np, child.np);
|
||||
}
|
||||
|
||||
/*
|
||||
* Some Samsung platforms with bootloaders turning on the splash-screen
|
||||
* and handing it over to the kernel, requires the power-domains to be
|
||||
* reset during boot. As a temporary hack to manage this, let's enforce
|
||||
* a sync_state.
|
||||
*/
|
||||
if (!ret)
|
||||
of_genpd_sync_state(np);
|
||||
|
||||
pm_runtime_enable(dev);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue