]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
[PATCH] OMAP audio DMA changes for 310 CPUs
authorandrzej zaborowski <balrog@zabor.org>
Tue, 12 Sep 2006 12:04:16 +0000 (15:04 +0300)
committerTony Lindgren <tony@atomide.com>
Tue, 12 Sep 2006 12:04:16 +0000 (15:04 +0300)
Avoid restarting McBSP hardware after every DMA transfer to OMAP audio
devices on OMAP310, restart only DMA. Also avoid trying to link DMA
channels together as this feature isn't supported on 310 processors.
Apply on top of "[PATCH 1/5] Change all omap15xx devices to use
similar DMA handling than h6300 uses".

Signed-off-by: Andrzej Zaborowski <balrog@zabor.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
sound/arm/omap/omap-alsa-dma.c
sound/arm/omap/omap-alsa.c

index 7537d8e00bb796d719cd783da2444104f7aa6755..3056ee158e0e059189f2578266492e2b4086f77a 100644 (file)
@@ -200,7 +200,7 @@ int omap_request_alsa_sound_dma(int device_id, const char *device_name,
        }
 
        /* Chain the channels together */
-       if (!cpu_is_omap1510())
+       if (!cpu_is_omap15xx())
                omap_sound_dma_link_lch(data);
 
        spin_unlock(&dma_list_lock);
@@ -251,7 +251,7 @@ int omap_free_alsa_sound_dma(void *data, int **channels)
        }
        chan = (*channels);
 
-       if (!cpu_is_omap1510())
+       if (!cpu_is_omap15xx())
                omap_sound_dma_unlink_lch(data);
        for (i = 0; i < nr_linked_channels; i++) {
                int cur_chan = chan[i];
@@ -349,7 +349,8 @@ static int audio_start_dma_chain(struct audio_stream *s)
                omap_start_dma(channel);
                s->started = 1;
                s->hw_start();     /* start McBSP interface */
-       }
+       } else if (cpu_is_omap310())
+               omap_start_dma(channel);
        /* else the dma itself will progress forward with out our help */
        FN_OUT(0);
        return 0;
index b74202f68e3692787cac108127231a50d931fabe..11675f23fb0c60495754679f2e030e5a5e2082c6 100644 (file)
@@ -203,7 +203,7 @@ static void audio_process_dma(struct audio_stream *s)
                 * irq from DMA after the first transfered/played buffer.
                 * (invocation of callback_omap_alsa_sound_dma() method).
                 */
-               if (cpu_is_omap15xx()) {
+               if (cpu_is_omap1510()) {
                        omap_stop_alsa_sound_dma(s);
                }
                ret = omap_start_alsa_sound_dma(s,