public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/5] Change all omap15xx devices to use similar DMA handling than h6300 uses.
@ 2006-08-18  1:14 lamikr
  2006-08-18  7:55 ` andrzej zaborowski
  0 siblings, 1 reply; 2+ messages in thread
From: lamikr @ 2006-08-18  1:14 UTC (permalink / raw)
  To: OMAP-Linux

[-- Attachment #1: Type: text/plain, Size: 271 bytes --]

Change all omap15xx devices to use similar DMA handling than h6300 uses.
Thanks for the James Selvam for verifying this with omap 1510 innovator.
http://linux.omap.com/pipermail/linux-omap-open-source/2006-May/007256.html

Signed-off-by: Mika Laitio <lamikr@cc.jyu.fi>



[-- Attachment #2: 0001-change-all-omap15xx-devices-to-use-similar-DMA-handling-that-h6300-uses.patch --]
[-- Type: text/x-patch, Size: 1969 bytes --]

From: Mika Laitio <lamikr@cc.jyu.fi>
Date: Fri, 18 Aug 2006 01:47:42 +0300
Subject: [PATCH 1/5] change all omap15xx devices to use similar DMA handling than h6300 uses.

Change all omap15xx devices to use similar DMA handling than h6300 uses. Thanks for the James Selvam for verifying this with omap 1510 innovator. http://linux.omap.com/pipermail/linux-omap-open-source/2006-May/007256.html

Signed-off-by: Mika Laitio <lamikr@cc.jyu.fi>

---
 sound/arm/omap/omap-alsa.c |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/sound/arm/omap/omap-alsa.c b/sound/arm/omap/omap-alsa.c
index 328003b..583460c 100644
--- a/sound/arm/omap/omap-alsa.c
+++ b/sound/arm/omap/omap-alsa.c
@@ -190,9 +190,7 @@ static void audio_process_dma(struct aud
 	unsigned int dma_size;
 	unsigned int offset;
 	int ret;
-#ifdef CONFIG_MACH_OMAP_H6300
 	unsigned long flags;
-#endif
 	
 	ADEBUG();
 	runtime = substream->runtime;
@@ -200,14 +198,20 @@ #endif
 		dma_size = frames_to_bytes(runtime, runtime->period_size);
 		offset = dma_size * s->period;
 		snd_assert(dma_size <= DMA_BUF_SIZE,);
-#ifdef CONFIG_MACH_OMAP_H6300
-		spin_lock_irqsave(&s->dma_lock, flags);
-		omap_stop_alsa_sound_dma(s);
-		spin_unlock_irqrestore(&s->dma_lock, flags);
-#endif
+		/*
+		 * On omap1510 based devices, we need to call the stop_dma
+		 * before calling the start_dma or we will not receive the
+		 * irq from DMA after the first transfered/played buffer.
+		 * (invocation of callback_omap_alsa_sound_dma() method).
+		 */
+		if (cpu_is_omap15xx()) {
+			spin_lock_irqsave(&s->dma_lock, flags);
+			omap_stop_alsa_sound_dma(s);
+			spin_unlock_irqrestore(&s->dma_lock, flags);
+		}
 		ret = omap_start_alsa_sound_dma(s,
-					 (dma_addr_t) runtime->dma_area +
-					 offset, dma_size);
+				(dma_addr_t)runtime->dma_area + offset,
+				dma_size);
 		if (ret) {
 			printk(KERN_ERR
 			       "audio_process_dma: cannot queue DMA buffer (%i)\n",
-- 
1.4.2


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-08-18  7:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-08-18  1:14 [PATCH 1/5] Change all omap15xx devices to use similar DMA handling than h6300 uses lamikr
2006-08-18  7:55 ` andrzej zaborowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox