ASoC: kirkwood-i2s: fix a compilation warning
PATCH v2 1/1 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.
---
v2
- add more explanations
--- sound/soc/kirkwood/kirkwood-i2s.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
sound/soc/kirkwood/kirkwood-i2s.c +5 -3
@@ -105,14 +105,16 @@ static void kirkwood_set_rate(struct snd_soc_dai *dai,uint32_t clks_ctrl;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" , __func__, rate);kirkwood_set_dco (priv->io, rate); clks_ctrl =KIRKWOOD_MCLK_SOURCE_DCO ; - }else if (!IS_ERR (priv->extclk)) { -/* use optional external clk for other rates */ + }else { +/* 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" , __func__, rate,256 * rate);clk_set_rate (priv->extclk,256 * rate);
Quoted 2 lines · Jean-Francois Moine
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:
Applied, thanks.