aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/soc-core.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 65ff61211a85..db3075dd11fe 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -505,6 +505,16 @@ static int soc_pcm_apply_symmetry(struct snd_pcm_substream *substream)
505 !rtd->dai_link->symmetric_rates) 505 !rtd->dai_link->symmetric_rates)
506 return 0; 506 return 0;
507 507
508 /* This can happen if multiple streams are starting simultaneously -
509 * the second can need to get its constraints before the first has
510 * picked a rate. Complain and allow the application to carry on.
511 */
512 if (!rtd->rate) {
513 dev_warn(&rtd->dev,
514 "Not enforcing symmetric_rates due to race\n");
515 return 0;
516 }
517
508 dev_dbg(&rtd->dev, "Symmetry forces %dHz rate\n", rtd->rate); 518 dev_dbg(&rtd->dev, "Symmetry forces %dHz rate\n", rtd->rate);
509 519
510 ret = snd_pcm_hw_constraint_minmax(substream->runtime, 520 ret = snd_pcm_hw_constraint_minmax(substream->runtime,