mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-19 18:24:14 +08:00
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>
This commit is contained in:
parent
9bc04fd167
commit
916465a841
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user