X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?p=linux-2.6-omap-h63xx.git;a=blobdiff_plain;f=sound%2Farm%2Fomap%2Fomap-alsa.c;h=5a68471efdda960ed57a0eb7703c6d0ee53deddd;hp=328003be2bcaa86c2ede90af9f7d0dd123db83e8;hb=c872ebcdd22885f52cb1123472b0a7335f872785;hpb=fbea64583c373f1a81b251187de371811b5eb0fa diff --git a/sound/arm/omap/omap-alsa.c b/sound/arm/omap/omap-alsa.c index 328003be2bc..5a68471efdd 100644 --- a/sound/arm/omap/omap-alsa.c +++ b/sound/arm/omap/omap-alsa.c @@ -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);