Skip to content

Commit 3a4347d

Browse files
committed
Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk fix from Stephen Boyd: "One fix for the composite clk that broke when we changed this clk type to use the determine_rate instead of round_rate clk op by default. This caused lots of problems on Rockchip SoCs because they heavily use the composite clk code to model the clk tree" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: composite: Also consider .determine_rate for rate + mux composites
2 parents bf85ba0 + 675c496 commit 3a4347d

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

drivers/clk/clk-composite.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,8 @@ static int clk_composite_determine_rate(struct clk_hw *hw,
5858
long rate;
5959
int i;
6060

61-
if (rate_hw && rate_ops && rate_ops->determine_rate) {
62-
__clk_hw_set_clk(rate_hw, hw);
63-
return rate_ops->determine_rate(rate_hw, req);
64-
} else if (rate_hw && rate_ops && rate_ops->round_rate &&
65-
mux_hw && mux_ops && mux_ops->set_parent) {
61+
if (rate_hw && rate_ops && rate_ops->round_rate &&
62+
mux_hw && mux_ops && mux_ops->set_parent) {
6663
req->best_parent_hw = NULL;
6764

6865
if (clk_hw_get_flags(hw) & CLK_SET_RATE_NO_REPARENT) {
@@ -107,6 +104,9 @@ static int clk_composite_determine_rate(struct clk_hw *hw,
107104

108105
req->rate = best_rate;
109106
return 0;
107+
} else if (rate_hw && rate_ops && rate_ops->determine_rate) {
108+
__clk_hw_set_clk(rate_hw, hw);
109+
return rate_ops->determine_rate(rate_hw, req);
110110
} else if (mux_hw && mux_ops && mux_ops->determine_rate) {
111111
__clk_hw_set_clk(mux_hw, hw);
112112
return mux_ops->determine_rate(mux_hw, req);

0 commit comments

Comments
 (0)