diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-05-15 03:51:17 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-05-15 03:51:16 -0700 |
commit | fee8893548b535070adc8082095c368836e24a24 (patch) | |
tree | 62b999e94d9b8ddb97a51e279fa8950f42e8d5ff | |
parent | fc2f0e6d95f8e8e7d9832287cec8b3dce381adcc (diff) | |
parent | 1098fcc4b99666e85dcb041b633cac0b240b3b84 (diff) |
Merge "clk: Move vdd voting before set rate and parent"
-rw-r--r-- | drivers/clk/clk.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 4996f4f312f4..73d65813de8b 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -1751,6 +1751,15 @@ static int clk_change_rate(struct clk_core *core) else if (core->parent) best_parent_rate = core->parent->rate; + trace_clk_set_rate(core, core->new_rate); + + /* Enforce vdd requirements for new frequency. */ + if (core->prepare_count) { + rc = clk_vote_rate_vdd(core, core->new_rate); + if (rc) + goto out; + } + if (core->new_parent && core->new_parent != core->parent) { old_parent = __clk_set_parent_before(core, core->new_parent); trace_clk_set_parent(core, core->new_parent); @@ -1768,15 +1777,6 @@ static int clk_change_rate(struct clk_core *core) __clk_set_parent_after(core, core->new_parent, old_parent); } - trace_clk_set_rate(core, core->new_rate); - - /* Enforce vdd requirements for new frequency. */ - if (core->prepare_count) { - rc = clk_vote_rate_vdd(core, core->new_rate); - if (rc) - goto out; - } - if (!skip_set_rate && core->ops->set_rate) { rc = core->ops->set_rate(core->hw, core->new_rate, best_parent_rate); |