From a407338ca621abe7fbc8feba2a4f432d8818b876 Mon Sep 17 00:00:00 2001 From: Pengpeng Hou Date: Sat, 4 Jul 2026 12:03:30 +0800 Subject: [PATCH] ASoC: codecs: cs4349: Propagate regcache_sync() errors regcache_sync() can fail while replaying cached register state during runtime resume. cs4349_runtime_resume() currently ignores that failure and returns success. Propagate the error, restore cache-only/dirty state, and hold reset low again on sync failure. Signed-off-by: Pengpeng Hou Link: https://patch.msgid.link/20260704040330.23616-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown --- sound/soc/codecs/cs4349.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/cs4349.c b/sound/soc/codecs/cs4349.c index 6ac6d306b054..9a7f70175717 100644 --- a/sound/soc/codecs/cs4349.c +++ b/sound/soc/codecs/cs4349.c @@ -340,7 +340,13 @@ static int cs4349_runtime_resume(struct device *dev) gpiod_set_value_cansleep(cs4349->reset_gpio, 1); regcache_cache_only(cs4349->regmap, false); - regcache_sync(cs4349->regmap); + ret = regcache_sync(cs4349->regmap); + if (ret) { + regcache_cache_only(cs4349->regmap, true); + regcache_mark_dirty(cs4349->regmap); + gpiod_set_value_cansleep(cs4349->reset_gpio, 0); + return ret; + } return 0; }