[PATCH 00/18] soundwire: code hardening and suspend-resume support

From: Pierre-Louis Bossart
Date: Wed Oct 23 2019 - 17:46:13 EST


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

--
2.20.1