ASoC: ak5558: Disable regulator when error happens

Disable regulator in runtime resume when error happens to balance
the reference count of regulator.

Fixes: 2ff6d5a108 ("ASoC: ak5558: Add regulator support")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20251203100529.3841203-3-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
master
Shengjiu Wang 2025-12-03 18:05:29 +08:00 committed by Mark Brown
parent ae585fabb9
commit 1f8f726a2a
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0
1 changed files with 9 additions and 1 deletions

View File

@ -372,7 +372,15 @@ static int ak5558_runtime_resume(struct device *dev)
regcache_cache_only(ak5558->regmap, false);
regcache_mark_dirty(ak5558->regmap);
return regcache_sync(ak5558->regmap);
ret = regcache_sync(ak5558->regmap);
if (ret)
goto err;
return 0;
err:
regcache_cache_only(ak5558->regmap, true);
regulator_bulk_disable(ARRAY_SIZE(ak5558->supplies), ak5558->supplies);
return ret;
}
static const struct dev_pm_ops ak5558_pm = {