| From 63a1b5c98152c812cc9d5ed4686e076d46eb86a1 Mon Sep 17 00:00:00 2001 |
| From: Xiubo Li <Li.Xiubo@freescale.com> |
| Date: Fri, 24 Jan 2014 15:43:00 +0800 |
| Subject: ASoC: simple-card: fix __asoc_simple_card_dai_init |
| |
| If the CPU/CODEC DAI set_sysclk() is not support, the -ENOTSUPP will returnd. |
| Here do the check like set_fmt(). |
| |
| Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> |
| Signed-off-by: Mark Brown <broonie@linaro.org> |
| (cherry picked from commit 4763ebe226156db985fe75bfe930c4069d1f4207) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| sound/soc/generic/simple-card.c | 22 +++++++++++++++------- |
| 1 file changed, 15 insertions(+), 7 deletions(-) |
| |
| diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c |
| index 6443c87e8625..6366f3fa6a37 100644 |
| --- a/sound/soc/generic/simple-card.c |
| +++ b/sound/soc/generic/simple-card.c |
| @@ -27,21 +27,29 @@ static int __asoc_simple_card_dai_init(struct snd_soc_dai *dai, |
| struct asoc_simple_dai *set, |
| unsigned int daifmt) |
| { |
| - int ret = 0; |
| + int ret; |
| |
| daifmt |= set->fmt; |
| |
| - if (daifmt) |
| + if (daifmt) { |
| ret = snd_soc_dai_set_fmt(dai, daifmt); |
| - |
| - if (ret == -ENOTSUPP) { |
| - dev_dbg(dai->dev, "ASoC: set_fmt is not supported\n"); |
| - ret = 0; |
| + if (ret && ret != -ENOTSUPP) { |
| + dev_err(dai->dev, "simple-card: set_fmt error\n"); |
| + goto err; |
| + } |
| } |
| |
| - if (!ret && set->sysclk) |
| + if (set->sysclk) { |
| ret = snd_soc_dai_set_sysclk(dai, 0, set->sysclk, 0); |
| + if (ret && ret != -ENOTSUPP) { |
| + dev_err(dai->dev, "simple-card: set_sysclk error\n"); |
| + goto err; |
| + } |
| + } |
| + |
| + ret = 0; |
| |
| +err: |
| return ret; |
| } |
| |
| -- |
| 2.1.2 |
| |