diff options
author | Daniel Walker <dwalker@codeaurora.org> | 2010-12-14 01:35:10 +0300 |
---|---|---|
committer | David Brown <davidb@codeaurora.org> | 2010-12-16 01:13:17 +0300 |
commit | 3a790bbe790e79a9744adf105ed135624a590f5b (patch) | |
tree | 3f0b144ca135b92a239f441fa7cb46ae2688ecd1 | |
parent | 304a09c3251c7c74660fc2ff9c590edf3d4bdd7e (diff) | |
download | linux-3a790bbe790e79a9744adf105ed135624a590f5b.tar.xz |
msm: add handling for clocks tagged as CLK_MINMAX
CLK_MINMAX is used to denote clocks that have a wide variation
in possible frequencies. This handling just sets the min and
max values to the same value.
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
-rw-r--r-- | arch/arm/mach-msm/clock.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-msm/clock.c b/arch/arm/mach-msm/clock.c index c57210f4f06a..2069bfaa3a26 100644 --- a/arch/arm/mach-msm/clock.c +++ b/arch/arm/mach-msm/clock.c @@ -120,6 +120,21 @@ EXPORT_SYMBOL(clk_get_rate); int clk_set_rate(struct clk *clk, unsigned long rate) { + int ret; + if (clk->flags & CLKFLAG_MAX) { + ret = clk->ops->set_max_rate(clk->id, rate); + if (ret) + return ret; + } + if (clk->flags & CLKFLAG_MIN) { + ret = clk->ops->set_min_rate(clk->id, rate); + if (ret) + return ret; + } + + if (clk->flags & CLKFLAG_MAX || clk->flags & CLKFLAG_MIN) + return ret; + return clk->ops->set_rate(clk->id, rate); } EXPORT_SYMBOL(clk_set_rate); |