diff options
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/rockchip/clk.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c index d5e130263c05..6f96335913df 100644 --- a/drivers/clk/rockchip/clk.c +++ b/drivers/clk/rockchip/clk.c @@ -207,7 +207,14 @@ static void rockchip_fractional_approximation(struct clk_hw *hw, } } - if (*parent_rate < rate * 20) { + /* + * Check again if parent rate < rate x 20. + * Note that this is needed, because we might have changed + * the parent rate above. + */ + if (*parent_rate < rate * 20 && + /* Whitelist clocks, where we can accept imprecisions. */ + !strstr(clk_hw_get_name(hw), "clk_i2s0_frac")) { pr_warn("%s p_rate(%ld) is low than rate(%ld)*20, use integer or half-div\n", clk_hw_get_name(hw), *parent_rate, rate); *m = 0; |