alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
To: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
	alsa-devel@alsa-project.org
Cc: broonie@kernel.org, tiwai@suse.com
Subject: Re: [alsa-devel] [RFC PATCH 0/2] Alter the trigger order for FE/BE DAI's based on command
Date: Fri, 4 Oct 2019 16:40:43 -0500	[thread overview]
Message-ID: <304027eb-ea44-ae4f-b4b2-f2020f528312@linux.intel.com> (raw)
In-Reply-To: <20191004154127.28459-1-ranjani.sridharan@linux.intel.com>

On 10/4/19 8:41 AM, Ranjani Sridharan wrote:
> Currently, the trigger orders SND_SOC_DPCM_TRIGGER_PRE/POST
> determine the order in which FE DAI and BE DAI are triggered.
> In the case of SND_SOC_DPCM_TRIGGER_PRE, the FE DAI is
> triggered before the BE DAI and in the case of
> SND_SOC_DPCM_TRIGGER_POST, the BE DAI is triggered before
> the FE DAI. And this order remains the same irrespective of the
> trigger command.
>      
> In the case of the SOF driver, during playback, the FW
> expects the BE DAI to be triggered before the FE DAI during
> the START trigger. The BE DAI trigger handles the starting of
> Link DMA and so it must be started before the FE DAI is started
> to prevent xruns during pause/release. This can be addressed
> by setting the trigger order for the FE dai link to
> SND_SOC_DPCM_TRIGGER_POST. But during the STOP trigger,
> the FW expects the FE DAI to be triggered before the BE DAI.
> Retaining the same order during the START and STOP commands,
> results in FW error as the DAI component in the FW is still
> active.
>      
> The issue can be fixed by mirroring the trigger order of
> FE and BE DAI's during the START and STOP trigger. So, with the
> trigger order set to SND_SOC_DPCM_TRIGGER_PRE, the FE DAI will be
> trigger first during SNDRV_PCM_TRIGGER_START/STOP/RESUME
> and the BE DAI will be triggered first during the
> STOP/SUSPEND/PAUSE commands. Conversely, with the trigger order
> set to SND_SOC_DPCM_TRIGGER_POST, the BE DAI will be triggered
> first during the SNDRV_PCM_TRIGGER_START/STOP/RESUME commands
> and the FE DAI will be triggered first during the
> SNDRV_PCM_TRIGGER_STOP/SUSPEND/PAUSE commands.
> 
> My first thought was to use a BESPOKE trigger for the SOF driver
> but looking more into the implementation of the bespoke trigger
> in soc_pcm_bespoke_trigger() didnt indicate it had much to do
> with the ordering of the FE/BE DAI's but rather just use the
> bespoke trigger callbacks in the DAI driver.
> 
> More details on the SOF issue can be found in:
> Github Issue: https://github.com/thesofproject/linux/issues/1160

I am a bit confused because that GitHub link does not provide any test 
results, and the PR1277 CI results show only half of the platforms 
tested. not sure why. I also don't get if this is an issue specific to 
the HDaudio Link DMA or if this is a across-the-board issue.

The other comment is that I see quite a few legacy Intel machine drivers 
with the POST trigger hard-coded for front-ends, and we'd need to retest 
some of these platforms to see if this change broke them.

> 
> Ranjani Sridharan (2):
>    ASoC: pcm: update FE/BE trigger order based on the command
>    ASoC: SOF: topology: set trigger order for FE DAI link
> 
>   sound/soc/soc-pcm.c      | 99 +++++++++++++++++++++++++++++-----------
>   sound/soc/sof/topology.c |  4 ++
>   2 files changed, 76 insertions(+), 27 deletions(-)
> 

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

      parent reply	other threads:[~2019-10-04 21:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-04 15:41 [alsa-devel] [RFC PATCH 0/2] Alter the trigger order for FE/BE DAI's based on command Ranjani Sridharan
2019-10-04 15:41 ` [alsa-devel] [RFC PATCH 1/2] ASoC: pcm: update FE/BE trigger order based on the command Ranjani Sridharan
2019-10-04 21:32   ` Pierre-Louis Bossart
2019-10-04 21:37     ` Sridharan, Ranjani
2019-10-04 15:41 ` [alsa-devel] [RFC PATCH 2/2] ASoC: SOF: topology: set trigger order for FE DAI link Ranjani Sridharan
2019-10-04 21:40 ` Pierre-Louis Bossart [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=304027eb-ea44-ae4f-b4b2-f2020f528312@linux.intel.com \
    --to=pierre-louis.bossart@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).