ASoC: sun4i-codec: pass through clk_set_rate error
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Tue, 29 Sep 2015 19:43:17 +0000 (21:43 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 30 Sep 2015 18:41:14 +0000 (19:41 +0100)
The current code, disregarding the clk_set_rate error code, was always
returning -EINVAL. Fix that and return the code in order to have more clue
about what's going on.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sunxi/sun4i-codec.c

index 8d59d83b5aa454e298ae24f9e41f4f239f4baf1c..77408af5d38b0869bb66fd5f97cbbde7628e88cb 100644 (file)
@@ -283,7 +283,7 @@ static int sun4i_codec_hw_params(struct snd_pcm_substream *substream,
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct sun4i_codec *scodec = snd_soc_card_get_drvdata(rtd->card);
        unsigned long clk_freq;
-       int hwrate;
+       int ret, hwrate;
        u32 val;
 
        if (substream->stream != SNDRV_PCM_STREAM_PLAYBACK)
@@ -293,8 +293,9 @@ static int sun4i_codec_hw_params(struct snd_pcm_substream *substream,
        if (!clk_freq)
                return -EINVAL;
 
-       if (clk_set_rate(scodec->clk_module, clk_freq))
-               return -EINVAL;
+       ret = clk_set_rate(scodec->clk_module, clk_freq);
+       if (ret)
+               return ret;
 
        hwrate = sun4i_codec_get_hw_rate(params);
        if (hwrate < 0)