soc: rockchip: power-domain: do not enable domain when adding it
authorElaine Zhang <zhangqing@rock-chips.com>
Tue, 6 Sep 2022 14:38:24 +0000 (16:38 +0200)
committerHeiko Stuebner <heiko@sntech.de>
Fri, 9 Sep 2022 17:06:40 +0000 (19:06 +0200)
It's not need to power on all pd when add pm domain. Instead
use PD's real status in pm_genpd_init().

Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://lore.kernel.org/r/20220906143825.199089-6-sebastian.reichel@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
drivers/soc/rockchip/pm_domains.c

index 3aaadab2716e9878362cfd85debae6c073805be6..4e24f40bf467b2b8767a30ad0355d47ee755fd01 100644 (file)
@@ -599,14 +599,6 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu,
                }
        }
 
-       error = rockchip_pd_power(pd, true);
-       if (error) {
-               dev_err(pmu->dev,
-                       "failed to power on domain '%pOFn': %d\n",
-                       node, error);
-               goto err_unprepare_clocks;
-       }
-
        if (pd->info->name)
                pd->genpd.name = pd->info->name;
        else
@@ -618,7 +610,7 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu,
        pd->genpd.flags = GENPD_FLAG_PM_CLK;
        if (pd_info->active_wakeup)
                pd->genpd.flags |= GENPD_FLAG_ACTIVE_WAKEUP;
-       pm_genpd_init(&pd->genpd, NULL, false);
+       pm_genpd_init(&pd->genpd, NULL, !rockchip_pmu_domain_is_on(pd));
 
        pmu->genpd_data.domains[id] = &pd->genpd;
        return 0;