Commit b6f90511 authored by Brian Masney's avatar Brian Masney
Browse files

clk: qcom: regmap-divider: convert from round_rate() to determine_rate()



The round_rate() clk ops is deprecated, so migrate this driver from
round_rate() to determine_rate() using the Coccinelle semantic patch
on the cover letter of this series.

Note that prior to running the Coccinelle, div_round_ro_rate() was
renamed to div_ro_round_rate().

Reviewed-by: default avatarKonrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: default avatarBrian Masney <bmasney@redhat.com>
parent 34848e21
Loading
Loading
Loading
Loading
+17 −10
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@ static inline struct clk_regmap_div *to_clk_regmap_div(struct clk_hw *hw)
	return container_of(to_clk_regmap(hw), struct clk_regmap_div, clkr);
}

static long div_round_ro_rate(struct clk_hw *hw, unsigned long rate,
			      unsigned long *prate)
static int div_ro_determine_rate(struct clk_hw *hw,
				 struct clk_rate_request *req)
{
	struct clk_regmap_div *divider = to_clk_regmap_div(hw);
	struct clk_regmap *clkr = &divider->clkr;
@@ -26,17 +26,24 @@ static long div_round_ro_rate(struct clk_hw *hw, unsigned long rate,
	val >>= divider->shift;
	val &= BIT(divider->width) - 1;

	return divider_ro_round_rate(hw, rate, prate, NULL, divider->width,
	req->rate = divider_ro_round_rate(hw, req->rate,
					  &req->best_parent_rate, NULL,
					  divider->width,
					  CLK_DIVIDER_ROUND_CLOSEST, val);

	return 0;
}

static long div_round_rate(struct clk_hw *hw, unsigned long rate,
			   unsigned long *prate)
static int div_determine_rate(struct clk_hw *hw, struct clk_rate_request *req)
{
	struct clk_regmap_div *divider = to_clk_regmap_div(hw);

	return divider_round_rate(hw, rate, prate, NULL, divider->width,
	req->rate = divider_round_rate(hw, req->rate, &req->best_parent_rate,
				       NULL,
				       divider->width,
				       CLK_DIVIDER_ROUND_CLOSEST);

	return 0;
}

static int div_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -70,14 +77,14 @@ static unsigned long div_recalc_rate(struct clk_hw *hw,
}

const struct clk_ops clk_regmap_div_ops = {
	.round_rate = div_round_rate,
	.determine_rate = div_determine_rate,
	.set_rate = div_set_rate,
	.recalc_rate = div_recalc_rate,
};
EXPORT_SYMBOL_GPL(clk_regmap_div_ops);

const struct clk_ops clk_regmap_div_ro_ops = {
	.round_rate = div_round_ro_rate,
	.determine_rate = div_ro_determine_rate,
	.recalc_rate = div_recalc_rate,
};
EXPORT_SYMBOL_GPL(clk_regmap_div_ro_ops);