From d289019bbbd589c063dc12e3f34110f589a9b902 Mon Sep 17 00:00:00 2001 From: Elaine Zhang Date: Wed, 31 Jul 2019 10:42:03 +0800 Subject: [PATCH] soc: rockchip: power-domain: fix up the pd add list error Fixed commit d45556ed94e7 ("soc: rockchip: power-domain: Add protection for some special pd during startup") states. If the pd is power down by default. but it's has keepon_startup flag, need to power up it before pm_genpd_init. (ie: PD is off by default on PX30 SOC) Change-Id: I60e9a5385794ad73f7da86cf8a18aaeecc8bcc6b Signed-off-by: Elaine Zhang --- drivers/soc/rockchip/pm_domains.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c index eeb5c224e8f4..e1d750c98382 100644 --- a/drivers/soc/rockchip/pm_domains.c +++ b/drivers/soc/rockchip/pm_domains.c @@ -655,6 +655,15 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu, if (pd_info->keepon_startup) { pd->genpd.flags &= (~GENPD_FLAG_PM_CLK); pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON; + if (!rockchip_pmu_domain_is_on(pd)) { + error = rockchip_pd_power(pd, true); + if (error) { + dev_err(pmu->dev, + "failed to power on domain '%s': %d\n", + node->name, error); + goto err_unprepare_clocks; + } + } } pm_genpd_init(&pd->genpd, NULL, !rockchip_pmu_domain_is_on(pd));