From deb5bade24fd35ee6c0203ad9757077e20b48dd1 Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Sat, 24 Feb 2018 16:57:57 +0800 Subject: [PATCH] soc: rockchip: power-domain: Fix restore error qos value Change-Id: I74692018652ed2aa45b666f1598662146beec92e Signed-off-by: Finley Xiao Signed-off-by: Elaine Zhang --- drivers/soc/rockchip/pm_domains.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c index e7f4311a0c03..4663c7d0d194 100644 --- a/drivers/soc/rockchip/pm_domains.c +++ b/drivers/soc/rockchip/pm_domains.c @@ -73,6 +73,7 @@ struct rockchip_pm_domain { int num_clks; struct clk_bulk_data *clks; bool is_ignore_pwr; + bool is_qos_saved; }; struct rockchip_pmu { @@ -375,6 +376,7 @@ static int rockchip_pd_power(struct rockchip_pm_domain *pd, bool power_on) if (!power_on) { rockchip_pmu_save_qos(pd); + pd->is_qos_saved = true; /* if powering down, idle request to NIU first */ rockchip_pmu_set_idle_request(pd, true); @@ -386,7 +388,8 @@ static int rockchip_pd_power(struct rockchip_pm_domain *pd, bool power_on) /* if powering up, leave idle mode */ rockchip_pmu_set_idle_request(pd, false); - rockchip_pmu_restore_qos(pd); + if (pd->is_qos_saved) + rockchip_pmu_restore_qos(pd); } clk_bulk_disable(pd->num_clks, pd->clks);