summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorLiam Girdwood <lrg@ti.com>2012-04-05 18:21:02 +0100
committerSachin Nikam <snikam@nvidia.com>2014-02-12 03:27:53 -0800
commitec331b2650a709245fccf119fc970dda032f91a7 (patch)
treef8b20b115dac56a6b9e62b95233b7d75d41c9374 /sound
parent6c3b63ed40441a1dfffbd71b520f42336b47c60a (diff)
ASoC: dapm: Make sure we only create one widget per DAI.
Sometimes more than 1 widget per DAI can be created when the DAI is embedded with a codec or platform component. Change-Id: I3208d2be35a7d1afc789c5623e7ae97f9f3667f8 Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/361955 Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com> Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/soc-dapm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 6af8fa3daa0e..7025d68fa039 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3374,6 +3374,11 @@ int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm,
memset(&template, 0, sizeof(template));
template.reg = SND_SOC_NOPM;
+ /* DAIs can belong to codecs and platform component devices so check
+ that we have not been created already with component */
+ if (dai->playback_widget || dai->capture_widget)
+ return 0;
+
if (dai->driver->playback.stream_name) {
template.id = snd_soc_dapm_dai_in;
template.name = dai->driver->playback.stream_name;