Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
To: lgirdwood@gmail.com, broonie@kernel.org
Cc: alsa-devel@alsa-project.org, kai.vehmanen@linux.intel.com,
	pierre-louis.bossart@linux.intel.com, rander.wang@intel.com,
	ranjani.sridharan@linux.intel.com,
	yung-chuan.liao@linux.intel.com
Subject: From 644473b181f0f310e428301a2ed459f912eec7ea Mon Sep 17 00:00:00 2001
Date: Fri, 27 Jan 2023 14:00:13 +0200	[thread overview]
Message-ID: <20230127120031.10709-1-peter.ujfalusi@linux.intel.com> (raw)

Hi,

The following series will enable multi-stream support for playback and capture
streams.
Currently only a single PCM can be connected to a DAI, with the multi-stream
support it is possible to connect multiple PCMs to a single DAI.

To achieve this we need to make sure that DAIs/AIF are only set up once since
other stream could be connected to it later.

We also need to introduce reference or use counting for widgets to make sure
that they are not going to be destroyed while other streams are still using
them.

With the multi-stream support we also need to extend our current locking scheme
which worked well for simple paths.

The first patch was sent to the mailing list, but it is not yet applied and I
have included in this series as it is a direct dependency:
https://lore.kernel.org/alsa-devel/20230117121615.25690-1-peter.ujfalusi@linux.intel.com/

Regards,
Peter
---
Peter Ujfalusi (3):
  ASoC: SOF: Avoid double decrementing use_count in sof_widget_setup on
    error
  ASoC: SOF: Protect swidget->use_count with mutex for kcontrol access
    race
  ASoC: SOF: ipc4-pcm: Do not run the trigger pipelines if no spipe is
    stored

Ranjani Sridharan (15):
  ASoC: SOF: ipc4-topology: No need to unbind routes within a pipeline
  ASoC: soc-pcm: Export widget_in_list()
  ASoC: SOF: sof-audio: Set up/free DAI/AIF widgets only once
  ASoC: SOF: sof-audio: Only process widgets in the connected widget
    list
  ASoC: SOF: pcm: do not free widgets during suspend trigger
  ASoC: SOF: topology: Set IPC-specific trigger order for DAI links
  ASoC: SOF: Introduce PCM setup/free PCM IPC ops
  ASoC: SOF: ipc4-pcm: Define pcm_setup/free ops
  ASoC: SOF: ipc4: Add flag to skip triggering pipelines during FE DAI
    trigger
  ASoC: SOF: sof-audio: Populate the PCM stream pipeline_info
  ASoC: SOF: ipc4-pcm: Use the PCM stream's pipeline_info during trigger
  ASoC: SOF: Introduce struct snd_sof_pipeline
  ASoC: SOF: ipc4-pcm: Rename 'data' variable to trigger_list
  ASoC: SOF: ipc4-pcm: Implement pipeline trigger reference counting
  ASoC: SOF: ipc4-topology: Protect pipeline free with mutex

 include/sound/soc-dpcm.h        |   2 +
 include/sound/sof/ipc4/header.h |   3 +
 sound/soc/soc-pcm.c             |   3 +-
 sound/soc/sof/core.c            |   1 +
 sound/soc/sof/intel/hda-dai.c   |  92 ++-------
 sound/soc/sof/ipc3-control.c    |  46 +++--
 sound/soc/sof/ipc3-topology.c   |  32 ++-
 sound/soc/sof/ipc4-control.c    |  33 ++-
 sound/soc/sof/ipc4-pcm.c        | 343 +++++++++++++++++++++++++-------
 sound/soc/sof/ipc4-priv.h       |   2 +
 sound/soc/sof/ipc4-topology.c   |  48 ++++-
 sound/soc/sof/ipc4-topology.h   |  12 ++
 sound/soc/sof/ipc4.c            |   2 +
 sound/soc/sof/pcm.c             |   5 +-
 sound/soc/sof/sof-audio.c       | 226 ++++++++++++++-------
 sound/soc/sof/sof-audio.h       |  54 ++++-
 sound/soc/sof/sof-priv.h        |   1 +
 sound/soc/sof/topology.c        | 114 +++++++----
 18 files changed, 714 insertions(+), 305 deletions(-)

-- 
2.39.1


             reply	other threads:[~2023-01-27 12:01 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-27 12:00 Peter Ujfalusi [this message]
2023-01-27 12:00 ` [PATCH 01/18] ASoC: SOF: ipc4-topology: No need to unbind routes within a pipeline Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 02/18] ASoC: soc-pcm: Export widget_in_list() Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 03/18] ASoC: SOF: sof-audio: Set up/free DAI/AIF widgets only once Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 04/18] ASoC: SOF: sof-audio: Only process widgets in the connected widget list Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 05/18] ASoC: SOF: pcm: do not free widgets during suspend trigger Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 06/18] ASoC: SOF: topology: Set IPC-specific trigger order for DAI links Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 07/18] ASoC: SOF: Introduce PCM setup/free PCM IPC ops Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 08/18] ASoC: SOF: ipc4-pcm: Define pcm_setup/free ops Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 09/18] ASoC: SOF: ipc4: Add flag to skip triggering pipelines during FE DAI trigger Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 10/18] ASoC: SOF: sof-audio: Populate the PCM stream pipeline_info Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 11/18] ASoC: SOF: ipc4-pcm: Use the PCM stream's pipeline_info during trigger Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 12/18] ASoC: SOF: Introduce struct snd_sof_pipeline Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 13/18] ASoC: SOF: ipc4-pcm: Rename 'data' variable to trigger_list Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 14/18] ASoC: SOF: ipc4-pcm: Implement pipeline trigger reference counting Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 15/18] ASoC: SOF: ipc4-topology: Protect pipeline free with mutex Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 16/18] ASoC: SOF: Avoid double decrementing use_count in sof_widget_setup on error Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 17/18] ASoC: SOF: Protect swidget->use_count with mutex for kcontrol access race Peter Ujfalusi
2023-01-27 12:00 ` [PATCH 18/18] ASoC: SOF: ipc4-pcm: Do not run the trigger pipelines if no spipe is stored Peter Ujfalusi
2023-01-27 12:07 ` [PATCH 00/18] ASoC: SOF: ipc4: Multi-stream playback and capture support Péter Ujfalusi
2023-01-28 10:48 ` From 644473b181f0f310e428301a2ed459f912eec7ea Mon Sep 17 00:00:00 2001 Mark Brown

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=20230127120031.10709-1-peter.ujfalusi@linux.intel.com \
    --to=peter.ujfalusi@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=kai.vehmanen@linux.intel.com \
    --cc=lgirdwood@gmail.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=rander.wang@intel.com \
    --cc=ranjani.sridharan@linux.intel.com \
    --cc=yung-chuan.liao@linux.intel.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