diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2014-11-04 11:30:59 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-11-04 11:53:53 +0000 |
commit | 8e2be56273666614e24756d7ee551203b8a86809 (patch) | |
tree | 56754d59081cdf6b81f6818f9a3241bb3701dbdc /sound/soc/soc-core.c | |
parent | 313665b983fe30af9d0eb274f7e03276e05a1bbf (diff) | |
download | op-kernel-dev-8e2be56273666614e24756d7ee551203b8a86809.zip op-kernel-dev-8e2be56273666614e24756d7ee551203b8a86809.tar.gz |
ASoC: Consolidate CPU and CODEC DAI probe
CPU and CODEC DAI probe are performed in exactly the same way. Which means
we can reuse the snd_soc_codec_dai_probe() for probing CPU DAIs as well.
While we are at it also drop the unused card parameter form the function.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r-- | sound/soc/soc-core.c | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index f3216fc..406925c 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1241,25 +1241,22 @@ static int soc_probe_link_components(struct snd_soc_card *card, int num, return 0; } -static int soc_probe_codec_dai(struct snd_soc_card *card, - struct snd_soc_dai *codec_dai, - int order) +static int soc_probe_dai(struct snd_soc_dai *dai, int order) { int ret; - if (!codec_dai->probed && codec_dai->driver->probe_order == order) { - if (codec_dai->driver->probe) { - ret = codec_dai->driver->probe(codec_dai); + if (!dai->probed && dai->driver->probe_order == order) { + if (dai->driver->probe) { + ret = dai->driver->probe(dai); if (ret < 0) { - dev_err(codec_dai->dev, - "ASoC: failed to probe CODEC DAI %s: %d\n", - codec_dai->name, ret); + dev_err(dai->dev, + "ASoC: failed to probe DAI %s: %d\n", + dai->name, ret); return ret; } } - /* mark codec_dai as probed and add to card dai list */ - codec_dai->probed = 1; + dai->probed = 1; } return 0; @@ -1318,24 +1315,13 @@ static int soc_probe_link_dais(struct snd_soc_card *card, int num, int order) /* set default power off timeout */ rtd->pmdown_time = pmdown_time; - /* probe the cpu_dai */ - if (!cpu_dai->probed && - cpu_dai->driver->probe_order == order) { - if (cpu_dai->driver->probe) { - ret = cpu_dai->driver->probe(cpu_dai); - if (ret < 0) { - dev_err(cpu_dai->dev, - "ASoC: failed to probe CPU DAI %s: %d\n", - cpu_dai->name, ret); - return ret; - } - } - cpu_dai->probed = 1; - } + ret = soc_probe_dai(cpu_dai, order); + if (ret) + return ret; /* probe the CODEC DAI */ for (i = 0; i < rtd->num_codecs; i++) { - ret = soc_probe_codec_dai(card, rtd->codec_dais[i], order); + ret = soc_probe_dai(rtd->codec_dais[i], order); if (ret) return ret; } |