Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 216abdcc authored by Chen-Yu Tsai's avatar Chen-Yu Tsai Committed by Maxime Ripard
Browse files

clk: sunxi-ng: mux: honor CLK_SET_RATE_NO_REPARENT flag



This patch adds support for the CLK_SET_RATE_NO_REPARENT flag to the
mux determine_rate helper, based on examples from clk-composite and
clk-mux.

Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
parent ed48205f
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -70,6 +70,21 @@ int ccu_mux_helper_determine_rate(struct ccu_common *common,
	struct clk_hw *best_parent, *hw = &common->hw;
	unsigned int i;

	if (clk_hw_get_flags(hw) & CLK_SET_RATE_NO_REPARENT) {
		unsigned long adj_parent_rate;

		best_parent = clk_hw_get_parent(hw);
		best_parent_rate = clk_hw_get_rate(best_parent);

		adj_parent_rate = best_parent_rate;
		ccu_mux_helper_adjust_parent_for_prediv(common, cm, -1,
							&adj_parent_rate);

		best_rate = round(cm, adj_parent_rate, req->rate, data);

		goto out;
	}

	for (i = 0; i < clk_hw_get_num_parents(hw); i++) {
		unsigned long tmp_rate, parent_rate, adj_parent_rate;
		struct clk_hw *parent;