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

Commit 8a537f85 authored by Jean-Francois Moine's avatar Jean-Francois Moine Committed by Mark Brown
Browse files

ASoC: kirkwood-i2s: fix a compilation warning



In the function kirkwood_set_rate, when the rate cannot be satisfied
by the internal nor by an external clock, the clock source in undefined:

 warning: ‘clks_ctrl’ may be used uninitialized in this function

The ALSA subsystem should never gives such a rate because:
- the rates with the internal clock are limited to 44.1, 48 and 96 kHz
  as specified by the kirkwood_i2s_dai structure,
- the other rates are proposed in the structure kirkwood_i2s_dai_extclk
  only when the external clock is present.

In case of programming error (bad rate for internal clock and no
external clock), the function will simply cause a backtrace.

Signed-off-by: default avatarJean-Francois Moine <moinejf@free.fr>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 9e12cbd9
Loading
Loading
Loading
Loading
+5 −3
Original line number Original line Diff line number Diff line
@@ -102,14 +102,16 @@ static void kirkwood_set_rate(struct snd_soc_dai *dai,
	uint32_t clks_ctrl;
	uint32_t clks_ctrl;


	if (rate == 44100 || rate == 48000 || rate == 96000) {
	if (rate == 44100 || rate == 48000 || rate == 96000) {
		/* use internal dco for supported rates */
		/* use internal dco for the supported rates
		 * defined in kirkwood_i2s_dai */
		dev_dbg(dai->dev, "%s: dco set rate = %lu\n",
		dev_dbg(dai->dev, "%s: dco set rate = %lu\n",
			__func__, rate);
			__func__, rate);
		kirkwood_set_dco(priv->io, rate);
		kirkwood_set_dco(priv->io, rate);


		clks_ctrl = KIRKWOOD_MCLK_SOURCE_DCO;
		clks_ctrl = KIRKWOOD_MCLK_SOURCE_DCO;
	} else if (!IS_ERR(priv->extclk)) {
	} else {
		/* use optional external clk for other rates */
		/* use the external clock for the other rates
		 * defined in kirkwood_i2s_dai_extclk */
		dev_dbg(dai->dev, "%s: extclk set rate = %lu -> %lu\n",
		dev_dbg(dai->dev, "%s: extclk set rate = %lu -> %lu\n",
			__func__, rate, 256 * rate);
			__func__, rate, 256 * rate);
		clk_set_rate(priv->extclk, 256 * rate);
		clk_set_rate(priv->extclk, 256 * rate);