diff options
Diffstat (limited to 'drivers/clk/clk.c')
-rw-r--r-- | drivers/clk/clk.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 62ecac53b0a2..c6e8866289b4 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c | |||
@@ -587,8 +587,12 @@ unsigned long __clk_round_rate(struct clk *clk, unsigned long rate) | |||
587 | if (!clk) | 587 | if (!clk) |
588 | return -EINVAL; | 588 | return -EINVAL; |
589 | 589 | ||
590 | if (!clk->ops->round_rate) | 590 | if (!clk->ops->round_rate) { |
591 | return clk->rate; | 591 | if (clk->flags & CLK_SET_RATE_PARENT) |
592 | return __clk_round_rate(clk->parent, rate); | ||
593 | else | ||
594 | return clk->rate; | ||
595 | } | ||
592 | 596 | ||
593 | if (clk->parent) | 597 | if (clk->parent) |
594 | parent_rate = clk->parent->rate; | 598 | parent_rate = clk->parent->rate; |