diff options
| author | Pengpeng Hou <pengpeng@iscas.ac.cn> | 2026-07-04 15:35:24 +0800 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-07-09 16:59:07 +0100 |
| commit | f814f9dfdc6151788b3aa937ddbb18a07d16d032 (patch) | |
| tree | 02b32365105a0ed7e7fd95f2f4aee410bed46a9c | |
| parent | 6ed25217ae6925bc9f511328a7c39e9f1a795298 (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.c | 17 |
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 = { |
