summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxime Ripard <maxime.ripard@free-electrons.com>2015-09-29 21:43:17 +0200
committerMark Brown <broonie@kernel.org>2015-09-30 20:41:14 +0200
commit98a4b665bc91480cc4c054093a59249e153ac17e (patch)
tree570c54adf50ace99f9e5bcd1006493a041924813
parentASoC: sunxi: fix platform_no_drv_owner.cocci warnings (diff)
downloadlinux-98a4b665bc91480cc4c054093a59249e153ac17e.tar.xz
linux-98a4b665bc91480cc4c054093a59249e153ac17e.zip
ASoC: sun4i-codec: pass through clk_set_rate error
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>
-rw-r--r--sound/soc/sunxi/sun4i-codec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c
index 8d59d83b5aa4..77408af5d38b 100644
--- a/sound/soc/sunxi/sun4i-codec.c
+++ b/sound/soc/sunxi/sun4i-codec.c
@@ -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)