]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/mach-msm/clock.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / arm / mach-msm / clock.c
index c57210f4f06a309971af53df94a8d38060fee14a..2069bfaa3a2619d078cb90edd93f3578b9f2230e 100644 (file)
@@ -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);