Commit fccac54b authored by Marek Szyprowski's avatar Marek Szyprowski Committed by Ulf Hansson
Browse files

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: default avatarUlf Hansson <ulf.hansson@linaro.org>
Fixes: 0745658a ("pmdomain: samsung: Fix splash-screen handover by enforcing a sync_state")
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Acked-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 7458f72c
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -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;
}