ASoC: fix PXA SSP port resume
[pandora-kernel.git] / sound / soc / pxa / pxa-ssp.c
index 3bd7712..e69397f 100644 (file)
@@ -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;
 }