From 148e9ae2882faa05ff8529c0d94134e9d8a2c09e 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 1e617d3c2fd8..df1d084f07ec 100644 --- a/drivers/soc/rockchip/pm_domains.c +++ b/drivers/soc/rockchip/pm_domains.c @@ -75,6 +75,7 @@ struct rockchip_pm_domain { int num_clks; struct clk_bulk_data *clks; bool is_ignore_pwr; + bool is_qos_saved; }; struct rockchip_pmu { @@ -377,6 +378,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); @@ -388,7 +390,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);