The low-level register programming sequences contributed in 71bb8a1b059ecd ('soundwire: intel: Add Intel Master driver') do not follow the internal documentation and recommended flows. It's anyone's guess how the code might have worked. Fix and add all missing helpers for clock-stop and hardware-based synchronization. This patchset needs to be applied on top of "[PATCH 00/16] SoundWire: cadence: add clock stop and fix programming sequences" Reviewers might object that the code is provided without some required initializations for mutexes and shim masks, they will be added as part of the transition to sdw_master_device - still stuck as of 3/11. Pierre-Louis Bossart (6): soundwire: intel: add helpers for link power down and shim wake soundwire: intel: reuse code for wait loops to set/clear bits soundwire: intel: add mutex to prevent concurrent access to SHIM registers soundwire: intel: add definitions for shim_mask soundwire: intel: introduce a helper to arm link synchronization soundwire: intel: introduce helper for link synchronization Rander Wang (1): soundwire: intel: follow documentation sequences for SHIM registers drivers/soundwire/intel.c | 342 ++++++++++++++++++++++------ drivers/soundwire/intel.h | 4 + include/linux/soundwire/sdw_intel.h | 2 + 3 files changed, 277 insertions(+), 71 deletions(-) -- 2.20.1