alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de, broonie@kernel.org, pierre-louis.bossart@linux.intel.com
Subject: [alsa-devel] [PATCH v2 0/2] Update FE/BE trigger order based on the command
Date: Mon,  4 Nov 2019 14:48:10 -0800	[thread overview]
Message-ID: <20191104224812.3393-1-ranjani.sridharan@linux.intel.com> (raw)

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.

The above change has been tested with the Skylake driver
on the Kabylake based chromebook and legacy HDA driver
on Kabylake based Dell XPS13. It has also been tested
on all platforms with SOF CI without any regressions
for the past 3 weeks.

More details on the issue can be found here:
https://github.com/thesofproject/linux/issues/1160

Changes in v2:
Fixed comments on function name and consolidating the switch
cases.

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      | 95 ++++++++++++++++++++++++++++------------
 sound/soc/sof/topology.c |  4 ++
 2 files changed, 72 insertions(+), 27 deletions(-)

-- 
2.17.1

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

             reply	other threads:[~2019-11-04 22:49 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-04 22:48 Ranjani Sridharan [this message]
2019-11-04 22:48 ` [alsa-devel] [PATCH v2 1/2] ASoC: pcm: update FE/BE trigger order based on the command Ranjani Sridharan
2019-11-05 18:55   ` [alsa-devel] Applied "ASoC: pcm: update FE/BE trigger order based on the command" to the asoc tree Mark Brown
2019-11-04 22:48 ` [alsa-devel] [PATCH v2 2/2] ASoC: SOF: topology: set trigger order for FE DAI link Ranjani Sridharan
2019-11-05 18:55   ` [alsa-devel] Applied "ASoC: SOF: topology: set trigger order for FE DAI link" to the asoc tree Mark Brown
2019-11-18 22:44   ` [alsa-devel] [PATCH v2 2/2] ASoC: SOF: topology: set trigger order for FE DAI link Jaroslav Kysela
2020-02-09  9:31     ` Hui Wang
2020-02-09 12:45       ` Hui Wang

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=20191104224812.3393-1-ranjani.sridharan@linux.intel.com \
    --to=ranjani.sridharan@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@suse.de \
    /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).