Unverified Commit 8232e607 authored by Hsieh Hung-En's avatar Hsieh Hung-En Committed by Mark Brown
Browse files

ASoC: es8328: Add error unwind in resume



Handle failures in the resume path by unwinding previously enabled
resources.

If enabling regulators or syncing the regcache fails, disable regulators
and unprepare the clock to avoid leaking resources and leaving the device
in a partially resumed state.

Signed-off-by: default avatarHsieh Hung-En <hungen3108@gmail.com>
Link: https://patch.msgid.link/20260130160017.2630-6-hungen3108@gmail.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 9917d99f
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -784,17 +784,23 @@ static int es8328_resume(struct snd_soc_component *component)
					es8328->supplies);
	if (ret) {
		dev_err(component->dev, "unable to enable regulators\n");
		return ret;
		goto err_clk;
	}

	regcache_mark_dirty(es8328->regmap);
	ret = regcache_sync(es8328->regmap);
	if (ret) {
		dev_err(component->dev, "unable to sync regcache\n");
		return ret;
		goto err_regulators;
	}

	return 0;

err_regulators:
	regulator_bulk_disable(ARRAY_SIZE(es8328->supplies), es8328->supplies);
err_clk:
	clk_disable_unprepare(es8328->clk);
	return ret;
}

static int es8328_component_probe(struct snd_soc_component *component)