OSDN Git Service

ASoC: Intel: boards: sof-wm8804: add check for PLL setting
authorColin Ian King <colin.king@canonical.com>
Fri, 26 Feb 2021 18:56:53 +0000 (18:56 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 10 Mar 2021 13:07:18 +0000 (13:07 +0000)
Currently the return from snd_soc_dai_set_pll is not checking for
failure, this is the only driver in the kernel that ignores this,
so it probably should be added for sake of completeness.  Fix this
by adding an error return check.

Addresses-Coverity: ("Unchecked return value")
Fixes: f139546fb7d4 ("ASoC: Intel: boards: sof-wm8804: support for Hifiberry Digiplus boards")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210226185653.1071321-1-colin.king@canonical.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_wm8804.c

index a46ba13..6a181e4 100644 (file)
@@ -124,7 +124,11 @@ static int sof_wm8804_hw_params(struct snd_pcm_substream *substream,
        }
 
        snd_soc_dai_set_clkdiv(codec_dai, WM8804_MCLK_DIV, mclk_div);
-       snd_soc_dai_set_pll(codec_dai, 0, 0, sysclk, mclk_freq);
+       ret = snd_soc_dai_set_pll(codec_dai, 0, 0, sysclk, mclk_freq);
+       if (ret < 0) {
+               dev_err(rtd->card->dev, "Failed to set WM8804 PLL\n");
+               return ret;
+       }
 
        ret = snd_soc_dai_set_sysclk(codec_dai, WM8804_TX_CLKSRC_PLL,
                                     sysclk, SND_SOC_CLOCK_OUT);