|
@@ -557,25 +557,6 @@ int clk_enable(struct clk *clk)
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(clk_enable);
|
|
|
|
|
|
-/**
|
|
|
- * clk_get_rate - return the rate of clk
|
|
|
- * @clk: the clk whose rate is being returned
|
|
|
- *
|
|
|
- * Simply returns the cached rate of the clk. Does not query the hardware. If
|
|
|
- * clk is NULL then returns 0.
|
|
|
- */
|
|
|
-unsigned long clk_get_rate(struct clk *clk)
|
|
|
-{
|
|
|
- unsigned long rate;
|
|
|
-
|
|
|
- mutex_lock(&prepare_lock);
|
|
|
- rate = __clk_get_rate(clk);
|
|
|
- mutex_unlock(&prepare_lock);
|
|
|
-
|
|
|
- return rate;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL_GPL(clk_get_rate);
|
|
|
-
|
|
|
/**
|
|
|
* __clk_round_rate - round the given rate for a clk
|
|
|
* @clk: round the rate of this clock
|
|
@@ -701,6 +682,30 @@ static void __clk_recalc_rates(struct clk *clk, unsigned long msg)
|
|
|
__clk_recalc_rates(child, msg);
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * clk_get_rate - return the rate of clk
|
|
|
+ * @clk: the clk whose rate is being returned
|
|
|
+ *
|
|
|
+ * Simply returns the cached rate of the clk, unless CLK_GET_RATE_NOCACHE flag
|
|
|
+ * is set, which means a recalc_rate will be issued.
|
|
|
+ * If clk is NULL then returns 0.
|
|
|
+ */
|
|
|
+unsigned long clk_get_rate(struct clk *clk)
|
|
|
+{
|
|
|
+ unsigned long rate;
|
|
|
+
|
|
|
+ mutex_lock(&prepare_lock);
|
|
|
+
|
|
|
+ if (clk && (clk->flags & CLK_GET_RATE_NOCACHE))
|
|
|
+ __clk_recalc_rates(clk, 0);
|
|
|
+
|
|
|
+ rate = __clk_get_rate(clk);
|
|
|
+ mutex_unlock(&prepare_lock);
|
|
|
+
|
|
|
+ return rate;
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(clk_get_rate);
|
|
|
+
|
|
|
/**
|
|
|
* __clk_speculate_rates
|
|
|
* @clk: first clk in the subtree
|