mirror of
https://github.com/torvalds/linux.git
synced 2026-10-28 17:55:02 +01:00
ASoC: codecs: uda1342: Leave cache-only mode before syncing
uda1342_suspend() puts the regmap into cache-only mode. uda1342_resume() marks the cache dirty and syncs it, but does not first leave cache-only mode and ignores sync failures. Leave cache-only mode before syncing the dirty cache, propagate sync failures, and restore cache-only/dirty state on failure. Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn> Link: https://patch.msgid.link/20260704072140.67222-1-pengpeng@iscas.ac.cn Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
ed1d19d37f
commit
29da72e58f
|
|
@ -308,9 +308,16 @@ static int uda1342_suspend(struct device *dev)
|
|||
static int uda1342_resume(struct device *dev)
|
||||
{
|
||||
struct uda1342_priv *uda1342 = dev_get_drvdata(dev);
|
||||
int ret;
|
||||
|
||||
regcache_cache_only(uda1342->regmap, false);
|
||||
regcache_mark_dirty(uda1342->regmap);
|
||||
regcache_sync(uda1342->regmap);
|
||||
ret = regcache_sync(uda1342->regmap);
|
||||
if (ret) {
|
||||
regcache_cache_only(uda1342->regmap, true);
|
||||
regcache_mark_dirty(uda1342->regmap);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user