summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPengpeng Hou <pengpeng@iscas.ac.cn>2026-07-04 15:35:24 +0800
committerMark Brown <broonie@kernel.org>2026-07-09 16:59:07 +0100
commitf814f9dfdc6151788b3aa937ddbb18a07d16d032 (patch)
tree02b32365105a0ed7e7fd95f2f4aee410bed46a9c
parent6ed25217ae6925bc9f511328a7c39e9f1a795298 (diff)
ASoC: codecs: rt712-sdca-dmic: Propagate regcache_sync() errors
rt712_sdca_dmic_dev_resume() clears cache-only mode for both regmaps and replays cached register state. Both regcache_sync() calls currently ignore their return values. Check both sync operations, return the first error, and restore both regmaps to cache-only/dirty state on failure. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704073524.27201-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/codecs/rt712-sdca-dmic.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/sound/soc/codecs/rt712-sdca-dmic.c b/sound/soc/codecs/rt712-sdca-dmic.c
index 85779547653e..8860d81134e7 100644
--- a/sound/soc/codecs/rt712-sdca-dmic.c
+++ b/sound/soc/codecs/rt712-sdca-dmic.c
@@ -916,10 +916,23 @@ static int rt712_sdca_dmic_dev_resume(struct device *dev)
}
regcache_cache_only(rt712->regmap, false);
- regcache_sync(rt712->regmap);
+ ret = regcache_sync(rt712->regmap);
+ if (ret)
+ goto err_sync;
+
regcache_cache_only(rt712->mbq_regmap, false);
- regcache_sync(rt712->mbq_regmap);
+ ret = regcache_sync(rt712->mbq_regmap);
+ if (ret)
+ goto err_sync;
+
return 0;
+
+err_sync:
+ regcache_cache_only(rt712->regmap, true);
+ regcache_cache_only(rt712->mbq_regmap, true);
+ regcache_mark_dirty(rt712->regmap);
+ regcache_mark_dirty(rt712->mbq_regmap);
+ return ret;
}
static const struct dev_pm_ops rt712_sdca_dmic_pm = {