Commit 96bf62f0 authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Mark Brown

ASoC: soc-pcm: fix checks for multi-cpu FE dailinks

soc_dpcm_fe_runtime_update() is called for all dailinks, and we want
to first discard all back-ends, then deal with front-ends.

The existing code first reports an error with multi-cpu front-ends,
and that check needs to be moved after we know that we are dealing
with a front-end.

Fixes: 6e1276a5 ('ASoC: Return error if the function does not support multi-cpu')
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
BugLink: https://github.com/thesofproject/linux/issues/1970
Link: https://lore.kernel.org/r/20200612203507.25621-1-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 19ab0f00
...@@ -2630,15 +2630,15 @@ static int soc_dpcm_fe_runtime_update(struct snd_soc_pcm_runtime *fe, int new) ...@@ -2630,15 +2630,15 @@ static int soc_dpcm_fe_runtime_update(struct snd_soc_pcm_runtime *fe, int new)
int count, paths; int count, paths;
int ret; int ret;
if (!fe->dai_link->dynamic)
return 0;
if (fe->num_cpus > 1) { if (fe->num_cpus > 1) {
dev_err(fe->dev, dev_err(fe->dev,
"%s doesn't support Multi CPU yet\n", __func__); "%s doesn't support Multi CPU yet\n", __func__);
return -EINVAL; return -EINVAL;
} }
if (!fe->dai_link->dynamic)
return 0;
/* only check active links */ /* only check active links */
if (!snd_soc_dai_active(asoc_rtd_to_cpu(fe, 0))) if (!snd_soc_dai_active(asoc_rtd_to_cpu(fe, 0)))
return 0; return 0;
......
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