GCC 4.4.0 does not seem capable of working out that the variable is never used unless it is initialised.
Signed-off-by: Dimitris Papastamos dp@opensource.wolfsonmicro.com --- sound/soc/codecs/wm8804.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/sound/soc/codecs/wm8804.c b/sound/soc/codecs/wm8804.c index 40e5067..e1fc722 100644 --- a/sound/soc/codecs/wm8804.c +++ b/sound/soc/codecs/wm8804.c @@ -392,13 +392,20 @@ static int wm8804_set_pll(struct snd_soc_dai *dai, int pll_id, { int ret; struct snd_soc_codec *codec; - struct pll_div pll_div = { 0 }; + struct pll_div pll_div;
codec = dai->codec; if (freq_in && freq_out) { ret = pll_factors(&pll_div, freq_out, freq_in); if (ret) return ret; + } else { + /* + * Bodge GCC 4.4.0 uninitialised variable warning - it + * doesn't seem capable of working out that we exit if + * freq_in or freq_out is 0 before any of the uses. + */ + memset(&pll_div, 0, sizeof pll_div); }
/* power down the PLL before reprogramming it */