mbox series

[v2,0/3] soundwire: intel: exit clock-stop mode before system suspend

Message ID 20210818024954.16873-1-yung-chuan.liao@linux.intel.com
Headers show
Series soundwire: intel: exit clock-stop mode before system suspend | expand

Message

Liao, Bard Aug. 18, 2021, 2:49 a.m. UTC
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(-)

Comments

Vinod Koul Aug. 23, 2021, 12:12 p.m. UTC | #1
On 18-08-21, 10:49, Bard Liao wrote:
> 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.

Applied all, thanks