diff options
Diffstat (limited to 'drivers/clk/clk-composite.c')
-rw-r--r-- | drivers/clk/clk-composite.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c index b9355daf8065..4386697236a7 100644 --- a/drivers/clk/clk-composite.c +++ b/drivers/clk/clk-composite.c | |||
@@ -57,7 +57,7 @@ static unsigned long clk_composite_recalc_rate(struct clk_hw *hw, | |||
57 | 57 | ||
58 | static long clk_composite_determine_rate(struct clk_hw *hw, unsigned long rate, | 58 | static long clk_composite_determine_rate(struct clk_hw *hw, unsigned long rate, |
59 | unsigned long *best_parent_rate, | 59 | unsigned long *best_parent_rate, |
60 | struct clk **best_parent_p) | 60 | struct clk_hw **best_parent_p) |
61 | { | 61 | { |
62 | struct clk_composite *composite = to_clk_composite(hw); | 62 | struct clk_composite *composite = to_clk_composite(hw); |
63 | const struct clk_ops *rate_ops = composite->rate_ops; | 63 | const struct clk_ops *rate_ops = composite->rate_ops; |
@@ -80,8 +80,9 @@ static long clk_composite_determine_rate(struct clk_hw *hw, unsigned long rate, | |||
80 | *best_parent_p = NULL; | 80 | *best_parent_p = NULL; |
81 | 81 | ||
82 | if (__clk_get_flags(hw->clk) & CLK_SET_RATE_NO_REPARENT) { | 82 | if (__clk_get_flags(hw->clk) & CLK_SET_RATE_NO_REPARENT) { |
83 | *best_parent_p = clk_get_parent(mux_hw->clk); | 83 | parent = clk_get_parent(mux_hw->clk); |
84 | *best_parent_rate = __clk_get_rate(*best_parent_p); | 84 | *best_parent_p = __clk_get_hw(parent); |
85 | *best_parent_rate = __clk_get_rate(parent); | ||
85 | 86 | ||
86 | return rate_ops->round_rate(rate_hw, rate, | 87 | return rate_ops->round_rate(rate_hw, rate, |
87 | best_parent_rate); | 88 | best_parent_rate); |
@@ -103,7 +104,7 @@ static long clk_composite_determine_rate(struct clk_hw *hw, unsigned long rate, | |||
103 | 104 | ||
104 | if (!rate_diff || !*best_parent_p | 105 | if (!rate_diff || !*best_parent_p |
105 | || best_rate_diff > rate_diff) { | 106 | || best_rate_diff > rate_diff) { |
106 | *best_parent_p = parent; | 107 | *best_parent_p = __clk_get_hw(parent); |
107 | *best_parent_rate = parent_rate; | 108 | *best_parent_rate = parent_rate; |
108 | best_rate_diff = rate_diff; | 109 | best_rate_diff = rate_diff; |
109 | best_rate = tmp_rate; | 110 | best_rate = tmp_rate; |