[PATCH 00/20] ASoC: propagate register restore failures
From: Pengpeng Hou
Date: Fri Aug 28 2026 - 07:38:20 EST
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@xxxxxxxxxxx/
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