From: Cezary Rojewski <cezary.rojewski@intel.com>
To: linux-sound@vger.kernel.org
Cc: broonie@kernel.org, tiwai@suse.com, perex@perex.cz,
amade@asmblr.net, linux-kernel@vger.kernel.org,
yung-chuan.liao@linux.intel.com, pierre-louis.bossart@linux.dev,
vkoul@kernel.org, Cezary Rojewski <cezary.rojewski@intel.com>
Subject: [PATCH 0/7] ASoC: Intel: avs: Soundwire support
Date: Mon, 2 Nov 2026 19:10:35 +0100 [thread overview]
Message-ID: <20261102181042.1922005-1-cezary.rojewski@intel.com> (raw)
The RaptorLake-P and RaptorLake-M based platform used in Automotive area
do utilize SoundWire for streaming audio. This patchset brings such
support to the public domain.
If possible, I'd like the changes to go through Mark's tree.
As the patchset updates drivers/soundwire, I've decided to strip it off
any machine-boards and have here just the changes done to the main
soundwire driver and their user/usage. Machine boards for RPL-P/M will
follow in a separate set and do not touch drivers/soundwire stuff.
The reasoning behind modyfing the soundwire code:
Typically dai->startup() is responsible for checking if all the required
resources are available whereas dai->hw_params() is responsible for
configuring such resources. Existing code does the PDI assignment and
its configuration within one function - intel_hw_params(). The logical
split is not possible. The change provides functions that represent
such logical blocks: assign, release and config. Such division exists
already for the HDAudio interface, see sound/hda/core/stream.c
For the user i.e.: avs-driver (sound/soc/intel/avs) it also makes the
code very cohesive - aligns with that's done on the HDAudio side as all
the HDAudio streams are assignment during dai->startup() and configured
with dai->hw_params().
Also, the existing code fetches the PDIs based on pre-defined "dai_id".
That's not the case for the avs-driver. It simply asks: "is any PDI
free?" and assigns it for the substream if one is found.
No predefining. Again, this aligns with how HDAudio streaming is done.
avs-driver -only patches follow the three soundwire ones. First, they
extend the existing code so it can accommodate SDW interface. With that
done, laverage existing PCM code (sound/soc/intel/avs/pcm.c) and
soundwire-intel to implement DAI operations.
Cezary Rojewski (7):
soundwire: intel: Define stubs when library is disabled
soundwire: intel: Allow for dynamic assignment of PDIs
soundwire: intel: Split PDIs and DAIs initialization
ASoC: Intel: avs: Pass irq to dsp_interrupt callback
ASoC: Intel: avs: SoundWire support
ASoC: Intel: avs: Expose common PCM functions
ASoC: Intel: avs: SoundWire PCM BE operations
drivers/soundwire/cadence_master.c | 64 ++++++
drivers/soundwire/cadence_master.h | 24 +--
drivers/soundwire/intel.c | 40 +++-
drivers/soundwire/intel.h | 3 +-
drivers/soundwire/intel_auxdevice.c | 4 +
include/linux/soundwire/sdw_cadence.h | 35 ++++
include/linux/soundwire/sdw_intel.h | 41 ++++
sound/hda/core/Kconfig | 2 +-
sound/hda/core/Makefile | 3 +
sound/soc/intel/Kconfig | 1 +
sound/soc/intel/avs/Makefile | 4 +
sound/soc/intel/avs/apl.c | 2 +-
sound/soc/intel/avs/avs.h | 15 +-
sound/soc/intel/avs/cnl.c | 25 ++-
sound/soc/intel/avs/core.c | 24 ++-
sound/soc/intel/avs/loader.c | 3 +
sound/soc/intel/avs/messages.h | 2 +
sound/soc/intel/avs/mtl.c | 2 +-
sound/soc/intel/avs/path.c | 2 +
sound/soc/intel/avs/pcm.c | 42 +---
sound/soc/intel/avs/pcm.h | 51 +++++
sound/soc/intel/avs/pcm_sdw.c | 276 ++++++++++++++++++++++++++
sound/soc/intel/avs/registers.h | 4 +
sound/soc/intel/avs/skl.c | 2 +-
sound/soc/intel/avs/soundwire.c | 112 +++++++++++
sound/soc/intel/avs/soundwire.h | 63 ++++++
26 files changed, 765 insertions(+), 81 deletions(-)
create mode 100644 include/linux/soundwire/sdw_cadence.h
create mode 100644 sound/soc/intel/avs/pcm_sdw.c
create mode 100644 sound/soc/intel/avs/soundwire.c
create mode 100644 sound/soc/intel/avs/soundwire.h
--
2.34.1
next reply other threads:[~2026-11-02 18:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-02 18:10 Cezary Rojewski [this message]
2026-11-02 18:10 ` [PATCH 1/7] soundwire: intel: Define stubs when library is disabled Cezary Rojewski
2026-11-02 18:10 ` [PATCH 2/7] soundwire: intel: Allow for dynamic assignment of PDIs Cezary Rojewski
2026-11-02 18:10 ` [PATCH 3/7] soundwire: intel: Split PDIs and DAIs initialization Cezary Rojewski
2026-11-02 18:10 ` [PATCH 4/7] ASoC: Intel: avs: Pass irq to dsp_interrupt callback Cezary Rojewski
2026-11-02 18:10 ` [PATCH 5/7] ASoC: Intel: avs: SoundWire support Cezary Rojewski
2026-11-02 18:10 ` [PATCH 6/7] ASoC: Intel: avs: Expose common PCM functions Cezary Rojewski
2026-11-02 18:18 ` Amadeusz Sławiński
2026-11-02 18:20 ` Cezary Rojewski
2026-11-02 18:10 ` [PATCH 7/7] ASoC: Intel: avs: SoundWire PCM BE operations Cezary Rojewski
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=20261102181042.1922005-1-cezary.rojewski@intel.com \
--to=cezary.rojewski@intel.com \
--cc=amade@asmblr.net \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=pierre-louis.bossart@linux.dev \
--cc=tiwai@suse.com \
--cc=vkoul@kernel.org \
--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
all inboxes | Powered by JetHome®