Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e295a4a4 authored by Dan Murphy's avatar Dan Murphy Committed by Mark Brown
Browse files

ASoC: tas2552: Fix PM sequencing



In the pm suspend/resume it is better
to disable the GPIO after the regmap_cache
setting calls so that if the call is interrupted
the new reg values will be cached and set on resume.

Also add pm_runtime_put in the remove call.

Signed-off-by: default avatarDan Murphy <dmurphy@ti.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 5df7f71d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -239,12 +239,12 @@ static int tas2552_runtime_suspend(struct device *dev)

	tas2552_sw_shutdown(tas2552, 0);

	if (tas2552->enable_gpio)
		gpiod_set_value(tas2552->enable_gpio, 0);

	regcache_cache_only(tas2552->regmap, true);
	regcache_mark_dirty(tas2552->regmap);

	if (tas2552->enable_gpio)
		gpiod_set_value(tas2552->enable_gpio, 0);

	return 0;
}

@@ -382,6 +382,8 @@ static int tas2552_codec_remove(struct snd_soc_codec *codec)
{
	struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec);

	pm_runtime_put(codec->dev);

	if (tas2552->enable_gpio)
		gpiod_set_value(tas2552->enable_gpio, 0);