[PATCH v3 0/3] Add SoundWire port constraints into SDCA stream

From: Charles Keepax

Date: Mon Nov 09 2026 - 10:58:08 EST


SDCA adds constraints onto the DAI based on the DisCo properties for the
Input/Output Terminal. As the SoundWire port for a Terminal can be
selected it is possible for the SoundWire port to support fewer options
than the Terminal. These patches add the SoundWire port properties into
the constraints for the DAI startup to cover these situations.

Changes since v2:
- Add check for ending up with a zero mask for channels
- Switch to using SNDRV_PCM_HW_PARAM_FORMAT, rather than SAMPLE_BITS

Changes since v1:
- Move constraint allocation to DAI probe/remove
- Use BIT macro where appropriate
- Correct GENMASK usage
- Add missing array indexing
- Correct channel masking
- Reorder the priority of SDCA properties
- Handle the case of the word length not being specified
- Add a static_assert to check the constraint array is large enough for
the word length mask

Charles Keepax (3):
ASoC: SDCA: Move DAI constraint allocation
ASoC: SDCA: Factor out helper for creating mask of Cluster channels
ASoC: SDCA: Add port constraints into sdca_asoc_set_constraints()

include/sound/sdca_asoc.h | 9 +-
sound/soc/sdca/sdca_asoc.c | 242 +++++++++++++++++++++------
sound/soc/sdca/sdca_class_function.c | 6 +-
3 files changed, 202 insertions(+), 55 deletions(-)

--
2.47.3