Merge branch 'x86-bootmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / sound / soc / pxa / pxa-ssp.c
index 3bd7712f029b9024315bc3cc3f8bf5b6f6988235..e69397f40f72e5306216bf17b6d1f5b3780b5a11 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;
 }