[PATCH v2 0/6] ASoC: SDCA: class-driver fixes and PDM data-port support
From: Srinivas Kandagatla
Date: Tue Oct 20 2026 - 03:39:29 EST
Three small fixes in the SDCA class driver (propagating a read_prop
failure, dropping an extra pm_runtime reference on probe failure, and
re-enabling the IRQ on a failed system suspend), plus three patches
that teach the SDCA class_function path to tag PDM data-port terminals
and the SoundWire core to treat PDM streams correctly.
The three fixes carry Fixes: tags and are Cc'd to stable; the PDM
support patches have no Fixes: tag as they add new behaviour rather
than fix a regression.
The three fixes were flagged during a sashiko review during WCD9378
SDCA codec driver patch review.
Merge strategy: patches 1-4 and patch 6 go via ASoC, patch 5 goes via
SoundWire. There is no compile-time dependency between the SoundWire
and ASoC changes: patch 5 can land in SoundWire while patches 1-4, 6
land in ASoC in any order. Patch 6's runtime behaviour depends on
patch 5 to work end-to-end on Qualcomm SDCA targets, but each tree
compiles and tests cleanly on its own.
Changes in v2:
- 2/6: switched from reordering pm_runtime_get_noresume() to dropping
the extra reference on devm_pm_runtime_enable() failure, per
- Replaces v1 4/4 ("clear sconfig.bps on PDM data-port terminals")
with v2 4-6/6:
- Moved the PDM terminal-type check out of sdca_class_function.c
into a new sdca_asoc_dai_is_pdm() helper, per Charles.
- Signal PDM via sconfig.type = SDW_STREAM_PDM instead of clearing
sconfig.bps, per Pierre-Louis Bossart (use the type field that
already exists in struct sdw_stream_config).
- Added a core SoundWire change that skips the bps mismatch check
for SDW_STREAM_PDM so the slave's PCM-container-width bps and
the master's PDM bps convention can co-exist without -EINVAL.
- v1: https://lore.kernel.org/all/[v1-cover-letter-message-id]/
Srinivas Kandagatla (6):
ASoC: SDCA: propagate sdw_slave_read_prop() failure in class_read_prop
ASoC: SDCA: drop pm_runtime reference on probe failure path
ASoC: SDCA: re-enable IRQ on pm_runtime_force_suspend failure
ASoC: SDCA: add sdca_asoc_dai_is_pdm() helper
soundwire: stream: skip bps mismatch check for PDM streams
ASoC: SDCA: class_function: mark PDM data-port terminals
drivers/soundwire/stream.c | 4 +++-
include/sound/sdca_asoc.h | 2 ++
sound/soc/sdca/sdca_asoc.c | 23 +++++++++++++++++++++++
sound/soc/sdca/sdca_class.c | 10 ++++++++--
sound/soc/sdca/sdca_class_function.c | 3 +++
5 files changed, 39 insertions(+), 3 deletions(-)
base-commit: 3d229ce89862b8e82d71a9e11d6f840ca272a6d6
--
2.53.0