Re: [PATCH 0/7] ASoC: Intel: avs: Soundwire support

From: Vinod Koul

Date: Tue Nov 03 2026 - 00:38:14 EST


On 02-11-26, 19:10, Cezary Rojewski wrote:
> 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

I understand that you want to split things up which helps your avs
driver but I fail to understand why should we add one more layer in
soundwire intel driver to handle one more driver from Intel.

Why not modify soundwire intel driver to do both startup and hw_params.
This way the driver does not care if it is calling sof driver, avs
driver or somenew team driver! I would like to avoid a new driver
specific handling please..

>
> 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.

That makes sense, we can have pdis dynamically done, that is an
improvement..

> 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

--
~Vinod