Unverified Commit ae585fab authored by Shengjiu Wang's avatar Shengjiu Wang Committed by Mark Brown
Browse files

ASoC: ak4458: Disable regulator when error happens



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

Fixes: 7e3096e8 ("ASoC: ak4458: Add regulator support")
Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20251203100529.3841203-2-shengjiu.wang@nxp.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 2b69bee5
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -671,7 +671,15 @@ static int ak4458_runtime_resume(struct device *dev)
	regcache_cache_only(ak4458->regmap, false);
	regcache_mark_dirty(ak4458->regmap);

	return regcache_sync(ak4458->regmap);
	ret = regcache_sync(ak4458->regmap);
	if (ret)
		goto err;

	return 0;
err:
	regcache_cache_only(ak4458->regmap, true);
	regulator_bulk_disable(ARRAY_SIZE(ak4458->supplies), ak4458->supplies);
	return ret;
}

static const struct snd_soc_component_driver soc_codec_dev_ak4458 = {