]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - sound/arm/omap/omap-alsa.c
h63xx: tsc2101 alsa sound support
[linux-2.6-omap-h63xx.git] / sound / arm / omap / omap-alsa.c
index 328003be2bcaa86c2ede90af9f7d0dd123db83e8..5a68471efdda960ed57a0eb7703c6d0ee53deddd 100644 (file)
@@ -190,7 +190,7 @@ static void audio_process_dma(struct audio_stream *s)
        unsigned int dma_size;
        unsigned int offset;
        int ret;
-#ifdef CONFIG_MACH_OMAP_H6300
+#ifdef CONFIG_ARCH_OMAP15XX
        unsigned long flags;
 #endif
        
@@ -200,7 +200,13 @@ static void audio_process_dma(struct audio_stream *s)
                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
+#ifdef CONFIG_ARCH_OMAP15XX
+               /*
+                * 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).
+                */
                spin_lock_irqsave(&s->dma_lock, flags);
                omap_stop_alsa_sound_dma(s);
                spin_unlock_irqrestore(&s->dma_lock, flags);