Thanks for the review, On Fri, Mar 09, 2018 at 08:20:43PM +0530, Charles Keepax wrote: > > @@ -679,13 +687,17 @@ int snd_soc_suspend(struct device *dev) > > card->suspend_pre(card); > > > > list_for_each_entry(rtd, &card->rtd_list, list) { > > - struct snd_soc_dai *cpu_dai = rtd->cpu_dai; > > + struct snd_soc_dai *cpu_dai; > > > > if (rtd->dai_link->ignore_suspend) > > continue; > > > > - if (cpu_dai->driver->suspend && !cpu_dai->driver->bus_control) > > - cpu_dai->driver->suspend(cpu_dai); > > + for (i = 0; i < rtd->num_cpu_dai; i++) { > > + cpu_dai = rtd->cpu_dais[i]; > > + if (cpu_dai->driver->suspend && > > + !cpu_dai->driver->bus_control) > > + cpu_dai->driver->suspend(cpu_dai); > > + } > > } > > > > /* close any waiting streams */ > > @@ -793,13 +805,18 @@ static void soc_resume_deferred(struct work_struct *work) > > Is there not another call to cpu_dai->driver->suspend at the > bottom of snd_soc_suspend you need to handle? > Yes. Thanks for pointing out :) > > @@ -1680,9 +1760,11 @@ static int soc_probe_link_dais(struct snd_soc_card *card, > > /* set default power off timeout */ > > rtd->pmdown_time = pmdown_time; > > > > - ret = soc_probe_dai(cpu_dai, order); > > - if (ret) > > - return ret; > > + for (i = 0; i < rtd->num_cpu_dai; i++) { > > + ret = soc_probe_dai(rtd->cpu_dais[i], order); > > + if (ret) > > + return ret; > > + } > > > > /* probe the CODEC DAI */ > > for (i = 0; i < rtd->num_codecs; i++) { > > @@ -1718,9 +1800,9 @@ static int soc_probe_link_dais(struct snd_soc_card *card, > > soc_dpcm_debugfs_add(rtd); > > #endif > > > > - if (cpu_dai->driver->compress_new) { > > + if (rtd->cpu_dais[0]->driver->compress_new) { > > /*create compress_device"*/ > > - ret = cpu_dai->driver->compress_new(rtd, rtd->num); > > + ret = rtd->cpu_dais[0]->driver->compress_new(rtd, rtd->num); > > if (ret < 0) { > > dev_err(card->dev, "ASoC: can't create compress %s\n", > > dai_link->stream_name); > > Is it worth throwing an error or printing a warning to say that > we don't support multiple DAIs on the compressed framework? Not > sure if here is were we should do that though. > Sure, makes sense. Let me check the right place to add that. > > @@ -1736,7 +1818,8 @@ static int soc_probe_link_dais(struct snd_soc_card *card, > > dai_link->stream_name, ret); > > return ret; > > } > > - ret = soc_link_dai_pcm_new(&cpu_dai, 1, rtd); > > + ret = soc_link_dai_pcm_new(rtd->cpu_dais, > > + rtd->num_cpu_dai, rtd); > > if (ret < 0) > > return ret; > > ret = soc_link_dai_pcm_new(rtd->codec_dais, > > @@ -2361,10 +2444,11 @@ int snd_soc_poweroff(struct device *dev) > > Do we need to update the handling in snd_soc_runtime_set_dai_fmt? > Seems like we skipped over that. > Yes, that is a miss as well :( Thanks for pointing out, I'll fix and send v2. --Shreyas -- _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel