diff options
Diffstat (limited to 'arch/arm/plat-omap/clock.c')
-rw-r--r-- | arch/arm/plat-omap/clock.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index b7137c560db4..df58f5d9a5ab 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -246,8 +246,6 @@ void followparent_recalc(struct clk *clk) | |||
246 | return; | 246 | return; |
247 | 247 | ||
248 | clk->rate = clk->parent->rate; | 248 | clk->rate = clk->parent->rate; |
249 | if (unlikely(clk->flags & RATE_PROPAGATES)) | ||
250 | propagate_rate(clk); | ||
251 | } | 249 | } |
252 | 250 | ||
253 | /* Propagate rate to children */ | 251 | /* Propagate rate to children */ |
@@ -261,8 +259,10 @@ void propagate_rate(struct clk * tclk) | |||
261 | list_for_each_entry(clkp, &clocks, node) { | 259 | list_for_each_entry(clkp, &clocks, node) { |
262 | if (likely(clkp->parent != tclk)) | 260 | if (likely(clkp->parent != tclk)) |
263 | continue; | 261 | continue; |
264 | if (likely((u32)clkp->recalc)) | 262 | if (clkp->recalc) |
265 | clkp->recalc(clkp); | 263 | clkp->recalc(clkp); |
264 | if (clkp->flags & RATE_PROPAGATES) | ||
265 | propagate_rate(clkp); | ||
266 | } | 266 | } |
267 | } | 267 | } |
268 | 268 | ||
@@ -278,8 +278,12 @@ void recalculate_root_clocks(void) | |||
278 | struct clk *clkp; | 278 | struct clk *clkp; |
279 | 279 | ||
280 | list_for_each_entry(clkp, &clocks, node) { | 280 | list_for_each_entry(clkp, &clocks, node) { |
281 | if (unlikely(!clkp->parent) && likely((u32)clkp->recalc)) | 281 | if (!clkp->parent) { |
282 | clkp->recalc(clkp); | 282 | if (clkp->recalc) |
283 | clkp->recalc(clkp); | ||
284 | if (clkp->flags & RATE_PROPAGATES) | ||
285 | propagate_rate(clkp); | ||
286 | } | ||
283 | } | 287 | } |
284 | } | 288 | } |
285 | 289 | ||