Unverified Commit ba6651a7 authored by Brian Masney's avatar Brian Masney Committed by Stephen Boyd
Browse files

clk: imx: scu: 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.

This driver also implements both the determine_rate() and round_rate()
clk ops, and the round_rate() clk ops is deprecated. When both are
defined, clk_core_determine_round_nolock() from the clk core will only
use the determine_rate() clk ops, so let's remove the round_rate() clk
ops since it's unused.

Signed-off-by: default avatarBrian Masney <bmasney@redhat.com>
Link: https://lore.kernel.org/r/20250710-clk-imx-round-rate-v1-13-5726f98e6d8d@redhat.com


Reviewed-by: default avatarPeng Fan <peng.fan@nxp.com>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 62021be5
Loading
Loading
Loading
Loading
+9 −27
Original line number Diff line number Diff line
@@ -269,24 +269,6 @@ static int clk_scu_determine_rate(struct clk_hw *hw,
	return 0;
}

/*
 * clk_scu_round_rate - Round clock rate for a SCU clock
 * @hw: clock to round rate for
 * @rate: rate to round
 * @parent_rate: parent rate provided by common clock framework, not used
 *
 * Returns the current clock rate, or zero in failure.
 */
static long clk_scu_round_rate(struct clk_hw *hw, unsigned long rate,
			       unsigned long *parent_rate)
{
	/*
	 * Assume we support all the requested rate and let the SCU firmware
	 * to handle the left work
	 */
	return rate;
}

static int clk_scu_atf_set_cpu_rate(struct clk_hw *hw, unsigned long rate,
				    unsigned long parent_rate)
{
@@ -454,7 +436,7 @@ static const struct clk_ops clk_scu_ops = {

static const struct clk_ops clk_scu_cpu_ops = {
	.recalc_rate = clk_scu_recalc_rate,
	.round_rate = clk_scu_round_rate,
	.determine_rate = clk_scu_determine_rate,
	.set_rate = clk_scu_atf_set_cpu_rate,
	.prepare = clk_scu_prepare,
	.unprepare = clk_scu_unprepare,
@@ -462,7 +444,7 @@ static const struct clk_ops clk_scu_cpu_ops = {

static const struct clk_ops clk_scu_pi_ops = {
	.recalc_rate = clk_scu_recalc_rate,
	.round_rate  = clk_scu_round_rate,
	.determine_rate = clk_scu_determine_rate,
	.set_rate    = clk_scu_set_rate,
};

@@ -766,15 +748,15 @@ static unsigned long clk_gpr_div_scu_recalc_rate(struct clk_hw *hw,
	return err ? 0 : rate;
}

static long clk_gpr_div_scu_round_rate(struct clk_hw *hw, unsigned long rate,
				   unsigned long *prate)
static int clk_gpr_div_scu_determine_rate(struct clk_hw *hw,
					  struct clk_rate_request *req)
{
	if (rate < *prate)
		rate = *prate / 2;
	if (req->rate < req->best_parent_rate)
		req->rate = req->best_parent_rate / 2;
	else
		rate = *prate;
		req->rate = req->best_parent_rate;

	return rate;
	return 0;
}

static int clk_gpr_div_scu_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -793,7 +775,7 @@ static int clk_gpr_div_scu_set_rate(struct clk_hw *hw, unsigned long rate,

static const struct clk_ops clk_gpr_div_scu_ops = {
	.recalc_rate = clk_gpr_div_scu_recalc_rate,
	.round_rate = clk_gpr_div_scu_round_rate,
	.determine_rate = clk_gpr_div_scu_determine_rate,
	.set_rate = clk_gpr_div_scu_set_rate,
};