From e08d63e63ac09826b0e78c55cb7faa2eb16872a1 Mon Sep 17 00:00:00 2001 From: Pengpeng Hou Date: Thu, 2 Jul 2026 15:29:18 +0800 Subject: [PATCH] ASoC: codecs: max98390: Propagate regcache_sync() errors regcache_sync() can fail while replaying cached register state during resume. max98390_resume() currently ignores that failure and returns success. Propagate the error and restore cache-only/dirty state on failure. Signed-off-by: Pengpeng Hou Link: https://patch.msgid.link/20260702072918.85779-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown --- sound/soc/codecs/max98390.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/max98390.c b/sound/soc/codecs/max98390.c index 2bbedf84ee5d..66309e87fdbd 100644 --- a/sound/soc/codecs/max98390.c +++ b/sound/soc/codecs/max98390.c @@ -952,11 +952,17 @@ static int max98390_suspend(struct device *dev) static int max98390_resume(struct device *dev) { struct max98390_priv *max98390 = dev_get_drvdata(dev); + int ret; dev_dbg(dev, "%s:Enter\n", __func__); regcache_cache_only(max98390->regmap, false); - regcache_sync(max98390->regmap); + ret = regcache_sync(max98390->regmap); + if (ret) { + regcache_cache_only(max98390->regmap, true); + regcache_mark_dirty(max98390->regmap); + return ret; + } return 0; }