Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/20] ASoC: propagate register restore failures
@ 2026-08-28 11:33 Pengpeng Hou
  2026-08-28 11:34 ` [PATCH 19/20] ASoC: mediatek: mt8186: Unwind runtime resume failures Pengpeng Hou
  2026-08-28 11:34 ` [PATCH 20/20] ASoC: mediatek: mt8196: Unwind register clock and cache restore failures Pengpeng Hou
  0 siblings, 2 replies; 3+ messages in thread
From: Pengpeng Hou @ 2026-08-28 11:33 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown
  Cc: Pengpeng Hou, AngeloGioacchino Del Regno, Baojun Xu,
	Cássio Gabriel, Cyril Chao, Darren Ye, David Rhodes,
	Kevin Lu, Kuninori Morimoto, Lars-Peter Clausen, linux-arm-kernel,
	linux-kernel, linux-mediatek, linux-mips, linux-sound,
	Matthias Brugger, Nuno Sá, patches, Paul Cercueil,
	Jaroslav Kysela, Richard Fitzgerald, Sen Wang, Shenghao Ding,
	Takashi Iwai

Several ASoC codec and AFE power transitions restore cached register state
after reset or power loss.  The callbacks in this series all have an effective
error consumer: component probe or hw_params, DAPM bias handling, device
runtime PM, or system PM.  They currently continue or publish success after a
required register operation failed.

Check the complete local restore transaction at each site and unwind clocks,
supplies, GPIOs, cache state or software publication where that transaction
acquired them.  For the Mediatek AFE drivers this also makes the clock helpers
unwind partial internal acquisition prefixes before returning to runtime PM.

This is a new set of sites, not a revision of the earlier 19-patch series at:

  https://lore.kernel.org/all/20260704034845.14291-1-pengpeng@iscas.ac.cn/

It intentionally excludes snd_soc_component_driver resume callbacks whose
return values are discarded by snd_soc_component_resume(); that shared policy
is being discussed separately.  The cs42l42 patch covers the shared system
resume helper and is distinct from the SoundWire runtime-resume path fixed by
commit a118fea777a2.

The issues were identified via static analysis and manually reviewed.

Assisted-by: LLM

Pengpeng Hou (20):
  ASoC: adau1372: Unwind failed power restoration
  ASoC: adau1701: Propagate register cache replay errors
  ASoC: cs35l56: Propagate register restore errors from runtime resume
  ASoC: cs42l42: Propagate system resume restore errors
  ASoC: es9356: Publish IRQ readiness after cache replay
  ASoC: jz4740: Propagate codec wake-up errors
  ASoC: max98088: Propagate cache replay errors from bias restore
  ASoC: ssm2518: Unwind failed power restoration
  ASoC: ssm4567: Unwind failed power restoration
  ASoC: tlv320aic3x: Propagate power restoration errors
  ASoC: wm8731: Unwind supplies on cache replay failure
  ASoC: wm8770: Unwind supplies on cache replay failure
  ASoC: wm8804: Propagate cache replay errors from runtime resume
  ASoC: wm8904: Unwind resources on cache replay failure
  ASoC: wm8985: Unwind supplies on cache replay failure
  ASoC: wm8991: Propagate cache replay errors from bias restore
  ASoC: wm8993: Unwind supplies on cache replay failure
  ASoC: wm8996: Unwind supplies on cache replay failure
  ASoC: mediatek: mt8186: Unwind runtime resume failures
  ASoC: mediatek: mt8196: Unwind register clock and cache restore
    failures

 sound/soc/codecs/adau1372.c                | 44 ++++++++++++++--------
 sound/soc/codecs/adau1701.c                |  4 +-
 sound/soc/codecs/cs35l56-shared.c          |  9 ++++-
 sound/soc/codecs/cs42l42-sdw.c             |  4 +-
 sound/soc/codecs/cs42l42.c                 | 27 +++++++++----
 sound/soc/codecs/cs42l42.h                 |  2 +-
 sound/soc/codecs/es9356.c                  | 14 +++++--
 sound/soc/codecs/jz4740.c                  | 25 ++++++++----
 sound/soc/codecs/max98088.c                |  9 ++++-
 sound/soc/codecs/ssm2518.c                 | 15 +++++++-
 sound/soc/codecs/ssm4567.c                 | 15 +++++++-
 sound/soc/codecs/tlv320aic3x.c             | 36 ++++++++++++++----
 sound/soc/codecs/wm8731.c                  |  7 +++-
 sound/soc/codecs/wm8770.c                  |  7 +++-
 sound/soc/codecs/wm8804.c                  |  6 ++-
 sound/soc/codecs/wm8904.c                  | 10 ++++-
 sound/soc/codecs/wm8985.c                  |  7 +++-
 sound/soc/codecs/wm8991.c                  |  7 +++-
 sound/soc/codecs/wm8993.c                  |  9 ++++-
 sound/soc/codecs/wm8996.c                  | 11 +++++-
 sound/soc/mediatek/mt8186/mt8186-afe-clk.c |  2 +
 sound/soc/mediatek/mt8186/mt8186-afe-pcm.c | 15 +++++++-
 sound/soc/mediatek/mt8196/mt8196-afe-clk.c | 27 ++++++++++---
 sound/soc/mediatek/mt8196/mt8196-afe-pcm.c |  8 +++-
 24 files changed, 251 insertions(+), 69 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-28 11:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-28 11:33 [PATCH 00/20] ASoC: propagate register restore failures Pengpeng Hou
2026-08-28 11:34 ` [PATCH 19/20] ASoC: mediatek: mt8186: Unwind runtime resume failures Pengpeng Hou
2026-08-28 11:34 ` [PATCH 20/20] ASoC: mediatek: mt8196: Unwind register clock and cache restore failures Pengpeng Hou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox