]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
clk: sunxi-ng: nm: Check if requested rate is supported by fractional clock
authorChen-Yu Tsai <wens@csie.org>
Thu, 12 Oct 2017 08:36:58 +0000 (16:36 +0800)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Fri, 13 Oct 2017 07:27:00 +0000 (09:27 +0200)
The round_rate callback for N-M-factor style clocks does not check if
the requested clock rate is supported by the fractional clock mode.
While this doesn't affect usage in practice, since the clock rates
are also supported through N-M factors, it does not match the set_rate
code.

Add a check to the round_rate callback so it matches the set_rate
callback.

Fixes: 6174a1e24b0d ("clk: sunxi-ng: Add N-M-factor clock support")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
drivers/clk/sunxi-ng/ccu_nm.c

index a32158e8f2e35a4fa89d5d21111e11e17a518ee8..84a5e7f17f6f542ea462c3cd924368d3a97e27a1 100644 (file)
@@ -99,6 +99,9 @@ static long ccu_nm_round_rate(struct clk_hw *hw, unsigned long rate,
        struct ccu_nm *nm = hw_to_ccu_nm(hw);
        struct _ccu_nm _nm;
 
+       if (ccu_frac_helper_has_rate(&nm->common, &nm->frac, rate))
+               return rate;
+
        _nm.min_n = nm->n.min ?: 1;
        _nm.max_n = nm->n.max ?: 1 << nm->n.width;
        _nm.min_m = 1;