[PATCH 00/20] ASoC: propagate register restore failures

Pengpeng Hou pengpeng at iscas.ac.cn
Fri Aug 28 04:33:55 PDT 2026


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




More information about the linux-arm-kernel mailing list