|
@@ -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;
|
|
|
}
|