[PATCH] clk: clk_calc_new_rates() required for parent only if CLK_SET_RATE_PARENT is set

Viresh Kumar viresh.kumar at st.com
Wed Apr 11 02:08:53 EDT 2012


We need to call clk_calc_new_rates() for parent clock only when we have
CLK_SET_RATE_PARENT flag set for clock.

This patch fixes it.

Signed-off-by: Viresh Kumar <viresh.kumar at st.com>
---
 drivers/clk/clk.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 2f58455..56e32a1 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -780,15 +780,14 @@ static struct clk *clk_calc_new_rates(struct clk *clk, unsigned long rate)
 		goto out;
 	}
 
-	if (clk->flags & CLK_SET_RATE_PARENT)
-		new_rate = clk->ops->round_rate(clk->hw, rate, &best_parent_rate);
-	else
-		new_rate = clk->ops->round_rate(clk->hw, rate, NULL);
-
-	if (best_parent_rate != clk->parent->rate) {
-		top = clk_calc_new_rates(clk->parent, best_parent_rate);
+	if (clk->flags & CLK_SET_RATE_PARENT) {
+		new_rate = clk->ops->round_rate(clk->hw, rate,
+				&best_parent_rate);
 
-		goto out;
+		if (best_parent_rate != clk->parent->rate)
+			top = clk_calc_new_rates(clk->parent, best_parent_rate);
+	} else {
+		new_rate = clk->ops->round_rate(clk->hw, rate, NULL);
 	}
 
 out:
-- 
1.7.9




More information about the linux-arm-kernel mailing list