clk: honor CLK_GET_RATE_NOCACHE in clk_set_rate
authorPeter De Schrijver <pdeschrijver@nvidia.com>
Wed, 5 Jun 2013 15:06:36 +0000 (18:06 +0300)
committer黄涛 <huangtao@rock-chips.com>
Wed, 8 Jan 2014 03:01:32 +0000 (11:01 +0800)
clk_set_rate() uses clk->rate directly. This causes problems if the clock
is marked as CLK_GET_RATE_NOCACHE. Hence call clk_get_rate() to get the
current rate.

Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
drivers/clk/clk.c

index df249b3ca370d53678c98101375cb99d6d0d434c..7ec4225971fed3371e2d065d6f3cf9067641abc5 100644 (file)
@@ -1216,7 +1216,7 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
        clk_prepare_lock();
 
        /* bail early if nothing to do */
-       if (rate == clk->rate)
+       if (rate == clk_get_rate(clk))
                goto out;
 
        if ((clk->flags & CLK_SET_RATE_GATE) && clk->prepare_count) {