The existing mainline code for SoundWire does not handle critical race conditions, and does not have any support for pm_runtime suspend or clock-stop modes needed for e.g. jack detection or external VAD.
As suggested by Vinod, these patches for the bus are shared first - with the risk that they are separated from their actual use in Intel drivers, so reviewers might wonder why they are needed in the first place.
For reference, the complete set of 90+ patches required for SoundWire on Intel platforms is available here:
https://github.com/thesofproject/linux/pull/1692
These patches are not Intel-specific and are likely required for e.g. Qualcomm-based implementations.
All the patches in this series were generated during the joint Intel-Realtek validation effort on Intel reference designs and form-factor devices. The support for the initialization_complete signaling is already available in the Realtek codecs drivers merged in the ASoC tree (rt700, rt711, rt1308, rt715)
Pierre-Louis Bossart (8): soundwire: bus: fix race condition with probe_complete signaling soundwire: bus: fix race condition with enumeration_complete signaling soundwire: bus: fix race condition with initialization_complete signaling soundwire: bus: add PM/no-PM versions of read/write functions soundwire: bus: write Slave Device Number without runtime_pm soundwire: bus: add helper to clear Slave status to UNATTACHED soundwire: bus: disable pm_runtime in sdw_slave_delete soundwire: bus: don't treat CMD_IGNORED as error on ClockStop
Rander Wang (2): soundwire: bus: fix io error when processing alert event soundwire: bus: add clock stop helpers
drivers/soundwire/bus.c | 509 ++++++++++++++++++++++++++++++++-- drivers/soundwire/bus.h | 9 + drivers/soundwire/bus_type.c | 5 + drivers/soundwire/slave.c | 4 + include/linux/soundwire/sdw.h | 24 ++ 5 files changed, 526 insertions(+), 25 deletions(-)