Thread (3 messages) 3 messages, 2 authors, 2015-01-20

[PATCH v9 3/3] clk: Add floor and ceiling constraints to clock rates

flat view

From: Stephen Boyd <hidden>
Date: 2015-01-20 00:00:23
Also in: linux-mips, linux-omap, lkml

On 01/19, Tomeu Vizoso wrote:
Adds a way for clock consumers to set maximum and minimum rates. This can be
used for thermal drivers to set ceiling rates, or by misc. drivers to set
floor rates to assure a minimum performance level.

Changes the signature of the determine_rate callback by adding the
parameters floor_rate and ceiling_rate.
Commit text needs the s/floor/min and s/ceiling/max treatment
too.
quoted hunk ↗ jump to hunk
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index f2a1ff3..55b3124 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1026,6 +1051,28 @@ static unsigned long clk_core_round_rate_nolock(struct clk_core *clk,
 	else
 		return clk->rate;
 }
+unsigned long __clk_determine_rate(struct clk_hw *hw,
+				   unsigned long rate,
+				   unsigned long min_rate,
+				   unsigned long max_rate)
+{
+	unsigned long parent_rate = 0;
+	struct clk_core *core = hw->core;
+	struct clk_hw *parent_hw;
+
+	if (!core->ops->determine_rate)
+		return 0;
+
+	if (core->parent) {
+		parent_rate = core->parent->rate;
+		parent_hw = core->parent->hw;
+	}
+
+	return core->ops->determine_rate(core->hw, rate,
+					min_rate, max_rate,
+					&parent_rate, &parent_hw);
+}
+EXPORT_SYMBOL_GPL(__clk_determine_rate);
Maybe I misled you with the API name. I was thinking more along
the lines of clk_round_rate() and this new function ending up
calling clk_core_round_rate(), but clk_round_rate() would call it
with whatever range the clock is constrained to while this new
function would allow driver authors to specify the range. It
should be easy enough to add min/max to clk_core_round_rate()
given that it's a private API in this file.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help