提交 026384d6 编写于 作者: D Daniel Mack 提交者: Mark Brown

ASoC: fix PXA SSP port resume

Unconditionally save the register states when suspending and restore
them again at resume time. Register contents were not preserved over
suspend, and hence the driver takes false assumptions about them.

The clock must be enabled to access the register block.
Signed-off-by: NDaniel Mack <daniel@caiaq.de>
Acked-by: NLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
上级 59cdd9bc
......@@ -135,10 +135,11 @@ static int pxa_ssp_suspend(struct snd_soc_dai *cpu_dai)
struct ssp_priv *priv = cpu_dai->private_data;
if (!cpu_dai->active)
return 0;
clk_enable(priv->dev.ssp->clk);
ssp_save_state(&priv->dev, &priv->state);
clk_disable(priv->dev.ssp->clk);
return 0;
}
......@@ -146,12 +147,13 @@ static int pxa_ssp_resume(struct snd_soc_dai *cpu_dai)
{
struct ssp_priv *priv = cpu_dai->private_data;
if (!cpu_dai->active)
return 0;
clk_enable(priv->dev.ssp->clk);
ssp_restore_state(&priv->dev, &priv->state);
ssp_enable(&priv->dev);
if (cpu_dai->active)
ssp_enable(&priv->dev);
else
clk_disable(priv->dev.ssp->clk);
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册