![](https://secure.gravatar.com/avatar/1f3d34808c5f863f3f587f9b6a4c0291.jpg?s=120&d=mm&r=g)
Intel validation reported an issue where the HW_RST self-clearing bit is not cleared in hardware, which as a ripple effect creates issues with the clock stop mode.
This happens is a specific sequence where the Intel manager is pm_runtime suspended with the clock-stop mode enabled. During the system suspend, we currently do nothing, which can lead to potential issues on system resume and the following pm_runtime suspend, depending on the hardware state.
This patch suggests a full resume if the clock-stop mode is used. This may require extra time but will make the suspend/resume flows completely symmetric. This also removes a race condition where we could not access SHIM registers if the parent was suspended as well. Resuming the link also resumes the parent by construction.
BugLink: https://github.com/thesofproject/linux/issues/2606
v2: - Better comments and commit messages. - Modified the .prepare callback to only deal with the corner case that is NOT covered today instead of systematically doing a full resume.
Pierre-Louis Bossart (3): soundwire: intel: fix potential race condition during power down soundwire: intel: skip suspend/resume/wake when link was not started soundwire: intel: conditionally exit clock stop mode on system suspend
drivers/soundwire/intel.c | 150 ++++++++++++++++++++++++++++++-------- drivers/soundwire/intel.h | 1 + 2 files changed, 119 insertions(+), 32 deletions(-)