All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/4 v2] pxa2xx-i2s: Handle SACR1_DRPL and SACR1_DREC separately
@ 2009-05-13 20:16 Karl Beldan
  0 siblings, 0 replies; only message in thread
From: Karl Beldan @ 2009-05-13 20:16 UTC (permalink / raw)
  To: Mark Brown
  Cc: Russell King, alsa-devel, Eric Miao, linux-arm-kernel,
	Matthieu Dumont

- hw_params enables both RPL and REC functions each time : Enable the
	appropriate function in pxa2xx_i2s_trigger.
- pxa2xx_i2s_shutdown disables i2s anytime one of RPL or REC function is
	off : Turn it off only when both functions are off.

Signed-off-by: Karl Beldan <karl.beldan@mobile-devices.fr>
---
 sound/soc/pxa/pxa2xx-i2s.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c
index 59cc4f5..a461c8d 100644
--- a/sound/soc/pxa/pxa2xx-i2s.c
+++ b/sound/soc/pxa/pxa2xx-i2s.c
@@ -176,9 +176,7 @@ static int pxa2xx_i2s_hw_params(struct snd_pcm_substream
*substream,

 	/* is port used by another stream */
 	if (!(SACR0 & SACR0_ENB)) {
-
 		SACR0 = 0;
-		SACR1 = 0;
 		if (pxa_i2s.master)
 			SACR0 |= SACR0_BCKD;

@@ -224,6 +222,10 @@ static int pxa2xx_i2s_trigger(struct snd_pcm_substream
*substream, int cmd,

 	switch (cmd) {
 	case SNDRV_PCM_TRIGGER_START:
+		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+			SACR1 &= ~SACR1_DRPL;
+		else
+			SACR1 &= ~SACR1_DREC;
 		SACR0 |= SACR0_ENB;
 		break;
 	case SNDRV_PCM_TRIGGER_RESUME:
@@ -250,7 +252,7 @@ static void pxa2xx_i2s_shutdown(struct snd_pcm_substream
*substream,
 		SAIMR &= ~SAIMR_RFS;
 	}

-	if (SACR1 & (SACR1_DREC | SACR1_DRPL)) {
+	if ((SACR1 & (SACR1_DREC | SACR1_DRPL)) == (SACR1_DREC | SACR1_DRPL)) {
 		SACR0 &= ~SACR0_ENB;
 		pxa_i2s_wait();
 		clk_disable(clk_i2s);
-- 
1.6.3.rc1.34.g0be9b

-- 
Karl

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2009-05-13 20:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-13 20:16 [PATCH 2/4 v2] pxa2xx-i2s: Handle SACR1_DRPL and SACR1_DREC separately Karl Beldan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.