To make progress with SoundWire support, this patchset provides the missing support for clock stop modes, and revisits all Cadence Master register settings. The current code is for some reason not aligned with internal documentation and hardware recommended flows, specifically for multi-link operation. Changes since v1: Removed log in is_clock_stop(), use the helper in the main clock_stop() and change return 1->return 0. Fixed squash issue in patch5 to remove irrelevant udelay() change Added Patch17 to clear FIFOs and avoid pop noise Pierre-Louis Bossart (12): soundwire: cadence: s/update_config/config_update soundwire: cadence: handle error cases with CONFIG_UPDATE soundwire: cadence: mask Slave interrupt before stopping clock soundwire: cadence: merge routines to clear/set bits soundwire: cadence: move clock/SSP related inits to dedicated function soundwire: cadence: make SSP interval programmable soundwire: cadence: reorder MCP_CONFIG settings soundwire: cadence: enable NORMAL operation in cdns_init() soundwire: cadence: remove PREQ_DELAY assignment soundwire: cadence: remove automatic command retries soundwire: cadence: commit changes in the exit_reset() sequence soundwire: cadence: multi-link support Rander Wang (4): soundwire: cadence: simplifiy cdns_init() soundwire: cadence: add interface to check clock status soundwire: cadence: add clock_stop/restart routines soundwire: cadence: fix a io timeout issue in S3 test randerwang (1): soundwire: cadence: clear FIFO to avoid pop noise issue on playback start drivers/soundwire/cadence_master.c | 282 ++++++++++++++++++++++++----- drivers/soundwire/cadence_master.h | 9 +- drivers/soundwire/intel.c | 2 +- 3 files changed, 249 insertions(+), 44 deletions(-) base-commit: 0b43fef979b4664d51a09dc7e0c430ebb2d18267 -- 2.20.1