From: Chen-Yu Tsai Date: Sat, 28 Jan 2017 12:22:32 +0000 (+0800) Subject: clk: sunxi-ng: mux: Get closest parent rate possible with CLK_SET_RATE_PARENT X-Git-Tag: v4.11-rc1~71^2~12^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=82aab516ec96ab9f9ad4b80a0bab9368b1cd5cdc;p=platform%2Fkernel%2Flinux-exynos.git clk: sunxi-ng: mux: Get closest parent rate possible with CLK_SET_RATE_PARENT If the CLK_SET_RATE_PARENT flag is set, we want to try getting the closest parent rate. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard --- diff --git a/drivers/clk/sunxi-ng/ccu_mux.c b/drivers/clk/sunxi-ng/ccu_mux.c index d0d69c7..c6bb1f5 100644 --- a/drivers/clk/sunxi-ng/ccu_mux.c +++ b/drivers/clk/sunxi-ng/ccu_mux.c @@ -93,7 +93,18 @@ int ccu_mux_helper_determine_rate(struct ccu_common *common, if (!parent) continue; - parent_rate = clk_hw_get_rate(parent); + if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) { + struct clk_rate_request parent_req = *req; + int ret = __clk_determine_rate(parent, &parent_req); + + if (ret) + continue; + + parent_rate = parent_req.rate; + } else { + parent_rate = clk_hw_get_rate(parent); + } + adj_parent_rate = parent_rate; ccu_mux_helper_adjust_parent_for_prediv(common, cm, i, &adj_parent_rate);