Asoc: Samsung: Add I2S S/W RST in startup function
authorPadmavathi Venna <padma.v@samsung.com>
Fri, 24 Aug 2012 15:13:40 +0000 (20:43 +0530)
committerGerrit <chrome-bot@google.com>
Sun, 26 Aug 2012 03:23:46 +0000 (20:23 -0700)
I2S module need to be reset after S2R. Keeping the S/W rst
control part in resume didn't help in playing audio after resume.
So this patch adds S/W RST control part in startup function which
gets triggered for every new audio stream playback.

BUG=chrome-os-partner:12579
TEST=tested by playing audio before suspend and after resume
using aplay command.

Change-Id: I27aa97da2c7c6cb42e24d19bf41f294732cfbd6e
Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/31335
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
Commit-Ready: Alim Akhtar <alim.akhtar@samsung.com>

sound/soc/samsung/i2s.c

index 4220efb..a47fd34 100644 (file)
@@ -662,6 +662,9 @@ static int i2s_startup(struct snd_pcm_substream *substream,
        /* Enforce set_sysclk in Master mode */
        i2s->rclk_srcrate = 0;
 
+       if (i2s->quirks & QUIRK_NEED_RSTCLR)
+               writel(CON_RSTCLR, i2s->addr + I2SCON);
+
        spin_unlock_irqrestore(&lock, flags);
 
        return 0;