this patchset applies on top of "[PATCH 00/14] soundwire: intel: implement new ASoC interfaces". It implements a series of improvements for: a) interrupt handling on Intel platforms in MSI mode b) race conditions on codec probe and enumeration c) suspend-resume issues (clock-stop mode not supported for now) d) underflow handling e) updates to the stream state machine which did not support valid ALSA transitions.
These patches were tested extensively on 4 different platforms and are viewed as required for any sort of SoundWire-based product.
Bard Liao (3): soundwire: intel/cadence: fix timeouts in MSI mode soundwire: stream: only prepare stream when it is configured. soundwire: intel: reinitialize IP+DSP in .prepare()
Pierre-Louis Bossart (15): soundwire: fix race between driver probe and update_status callback soundwire: bus: add PM/no-PM versions of read/write functions soundwire: bus: write Slave Device Number without runtime_pm soundwire: intel: add helpers for link power down and shim wake soundwire: intel: Add basic power management support soundwire: intel: add pm_runtime support soundwire: intel: reset pm_runtime status during system resume soundwire: bus: add helper to reset Slave status to UNATTACHED soundwire: intel: call helper to reset Slave states on resume soundwire: bus: check first if Slaves become UNATTACHED soundwire: add enumeration_complete signaling soundwire: intel: disable pm_runtime when removing a master soundwire: bus: disable pm_runtime in sdw_slave_delete soundwire: stream: update state machine and add state checks soundwire: stream: do not update parameters during DISABLED-PREPARED transition
Documentation/driver-api/soundwire/stream.rst | 63 +++- drivers/soundwire/bus.c | 157 +++++++-- drivers/soundwire/bus.h | 3 + drivers/soundwire/bus_type.c | 5 + drivers/soundwire/cadence_master.c | 17 +- drivers/soundwire/cadence_master.h | 4 + drivers/soundwire/intel.c | 328 ++++++++++++++++-- drivers/soundwire/intel.h | 2 + drivers/soundwire/intel_init.c | 45 ++- drivers/soundwire/slave.c | 3 + drivers/soundwire/stream.c | 64 +++- include/linux/soundwire/sdw.h | 1 + include/linux/soundwire/sdw_intel.h | 2 + 13 files changed, 623 insertions(+), 71 deletions(-)