[alsa-devel] [PATCH] ASoC: WM8804: Workaround GCC uninitialised variable warning
Liam Girdwood
lrg at slimlogic.co.uk
Sat Oct 2 13:19:47 CEST 2010
On Fri, 2010-10-01 at 09:32 +0100, Dimitris Papastamos wrote:
> 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 at 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 */
Is it not possible to refactor your logic here to be more like
wm8753_set_pll() rather than this ugly workaround ?
Liam
More information about the Alsa-devel
mailing list