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(-)