[alsa-devel] [PATCH 4/4] pxa2xx-i2s: Fix suspend/resume
Karl Beldan
karl.beldan at gmail.com
Wed May 13 22:04:27 CEST 2009
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 at mobile-devices.fr>
---
sound/soc/pxa/pxa2xx-i2s.c | 11 +++--------
1 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c
index a423637..efe499e 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;
}
--
1.6.3.rc1.34.g0be9b
--
Karl
More information about the Alsa-devel
mailing list