[alsa-devel] [PATCH 1/3] ASoC: Add initial support for multiple CPU DAIs
Shreyas NC
shreyas.nc at intel.com
Mon Mar 12 06:02:57 CET 2018
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
--
More information about the Alsa-devel
mailing list