summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorKarl Beldan <karl.beldan@gmail.com>2009-05-13 22:16:59 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-05-14 21:35:32 +0200
commit916465a841937a60baac6144ae3f41b0d1560f3b (patch)
treef5259ffac963b9517dbc878d41ad63d756439868 /sound
parentASoC: pxa2xx-i2s: Fix inappropriate release of i2s clock (diff)
downloadlinux-916465a841937a60baac6144ae3f41b0d1560f3b.tar.xz
linux-916465a841937a60baac6144ae3f41b0d1560f3b.zip
ASoC: pxa2xx-i2s: Fix suspend/resume
pxa2xx_i2s_resume is : - unconditionnaly setting SACR0_ENB - unsetting SACR0_ENB in saved SACR0 pxa_i2s.sacr0 fix these. In pxa2xx_i2s_{resume,suspend}, save/restore registers even when !dai->active. Signed-off-by: Karl Beldan <karl.beldan@mobile-devices.fr> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/pxa/pxa2xx-i2s.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c
index bc12a09527f3..4743e262895d 100644
--- a/sound/soc/pxa/pxa2xx-i2s.c
+++ b/sound/soc/pxa/pxa2xx-i2s.c
@@ -262,9 +262,6 @@ static void pxa2xx_i2s_shutdown(struct snd_pcm_substream *substream,
#ifdef CONFIG_PM
static int pxa2xx_i2s_suspend(struct snd_soc_dai *dai)
{
- if (!dai->active)
- return 0;
-
/* store registers */
pxa_i2s.sacr0 = SACR0;
pxa_i2s.sacr1 = SACR1;
@@ -279,16 +276,14 @@ static int pxa2xx_i2s_suspend(struct snd_soc_dai *dai)
static int pxa2xx_i2s_resume(struct snd_soc_dai *dai)
{
- if (!dai->active)
- return 0;
-
pxa_i2s_wait();
- SACR0 = pxa_i2s.sacr0 &= ~SACR0_ENB;
+ SACR0 = pxa_i2s.sacr0 & ~SACR0_ENB;
SACR1 = pxa_i2s.sacr1;
SAIMR = pxa_i2s.saimr;
SADIV = pxa_i2s.sadiv;
- SACR0 |= SACR0_ENB;
+
+ SACR0 = pxa_i2s.sacr0;
return 0;
}