提交 e295a4a4 编写于 作者: D Dan Murphy 提交者: Mark Brown

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: NDan Murphy <dmurphy@ti.com>
Signed-off-by: NMark Brown <broonie@linaro.org>
上级 5df7f71d
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册