From ba56447c3586465fd6eaf9869410dafb748a4d0d Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Fri, 5 Dec 2014 19:58:32 +0000 Subject: ASoC: samsung: Fix error handling for clock lookup Return the error code we got from clk_get() and check to make sure that clk_prepare_enable() worked. Signed-off-by: Mark Brown --- sound/soc/samsung/i2s.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'sound/soc/samsung') diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 0d76bc15b785..c60ab07ef3d1 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -972,6 +972,7 @@ static int samsung_i2s_dai_probe(struct snd_soc_dai *dai) { struct i2s_dai *i2s = to_info(dai); struct i2s_dai *other = i2s->pri_dai ? : i2s->sec_dai; + int ret; if (other && other->clk) { /* If this is probe on secondary */ samsung_asoc_init_dma_data(dai, &other->sec_dai->dma_playback, @@ -989,9 +990,14 @@ static int samsung_i2s_dai_probe(struct snd_soc_dai *dai) if (IS_ERR(i2s->clk)) { dev_err(&i2s->pdev->dev, "failed to get i2s_clock\n"); iounmap(i2s->addr); - return -ENOENT; + return PTR_ERR(i2s->clk); + } + + ret = clk_prepare_enable(i2s->clk); + if (ret != 0) { + dev_err(&i2s->pdev->dev, "failed to enable clock: %d\n", ret); + return ret; } - clk_prepare_enable(i2s->clk); samsung_asoc_init_dma_data(dai, &i2s->dma_playback, &i2s->dma_capture); -- cgit v1.2.1