Unverified Commit afd529d7 authored by Brian Masney's avatar Brian Masney Committed by Mark Brown
Browse files

ASoC: stm: stm32_i2s: 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.

Signed-off-by: default avatarBrian Masney <bmasney@redhat.com>
Link: https://patch.msgid.link/20250710-sound-clk-round-rate-v1-5-4a9c3bb6ff3a@redhat.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent fc62ed66
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -461,20 +461,25 @@ static int stm32_i2s_set_parent_rate(struct stm32_i2s_data *i2s,
	return -EINVAL;
}

static long stm32_i2smclk_round_rate(struct clk_hw *hw, unsigned long rate,
				     unsigned long *prate)
static int stm32_i2smclk_determine_rate(struct clk_hw *hw,
					struct clk_rate_request *req)
{
	struct stm32_i2smclk_data *mclk = to_mclk_data(hw);
	struct stm32_i2s_data *i2s = mclk->i2s_data;
	int ret;

	ret = stm32_i2s_calc_clk_div(i2s, *prate, rate);
	if (ret)
		return ret;
	ret = stm32_i2s_calc_clk_div(i2s, req->best_parent_rate, req->rate);
	if (ret) {
		req->rate = ret;

	mclk->freq = *prate / i2s->divider;
		return 0;
	}

	return mclk->freq;
	mclk->freq = req->best_parent_rate / i2s->divider;

	req->rate = mclk->freq;

	return 0;
}

static unsigned long stm32_i2smclk_recalc_rate(struct clk_hw *hw,
@@ -530,7 +535,7 @@ static const struct clk_ops mclk_ops = {
	.enable = stm32_i2smclk_enable,
	.disable = stm32_i2smclk_disable,
	.recalc_rate = stm32_i2smclk_recalc_rate,
	.round_rate = stm32_i2smclk_round_rate,
	.determine_rate = stm32_i2smclk_determine_rate,
	.set_rate = stm32_i2smclk_set_rate,
};