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
parent
ae585fabb9
commit
1f8f726a2a
|
|
@ -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 = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue