Commit ba56447c authored by Mark Brown's avatar Mark Brown

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: default avatarMark Brown <broonie@kernel.org>
parent d683d0b6
...@@ -972,6 +972,7 @@ static int samsung_i2s_dai_probe(struct snd_soc_dai *dai) ...@@ -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 *i2s = to_info(dai);
struct i2s_dai *other = i2s->pri_dai ? : i2s->sec_dai; struct i2s_dai *other = i2s->pri_dai ? : i2s->sec_dai;
int ret;
if (other && other->clk) { /* If this is probe on secondary */ if (other && other->clk) { /* If this is probe on secondary */
samsung_asoc_init_dma_data(dai, &other->sec_dai->dma_playback, 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) ...@@ -989,9 +990,14 @@ static int samsung_i2s_dai_probe(struct snd_soc_dai *dai)
if (IS_ERR(i2s->clk)) { if (IS_ERR(i2s->clk)) {
dev_err(&i2s->pdev->dev, "failed to get i2s_clock\n"); dev_err(&i2s->pdev->dev, "failed to get i2s_clock\n");
iounmap(i2s->addr); 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); samsung_asoc_init_dma_data(dai, &i2s->dma_playback, &i2s->dma_capture);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment