From f51df0de210476d0fbd90a9f0e1fcd9054f275f5 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Tue, 12 Dec 2006 04:25:52 +0000 Subject: [PATCH] Coldfire: Put DMA1 priority back at level 7 as that seems to be the cause of the stopping during record. Make DMA1 start as it did previously. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11729 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/coldfire/pcm-coldfire.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c index ab8b17cd0c..035c4da500 100644 --- a/firmware/target/coldfire/pcm-coldfire.c +++ b/firmware/target/coldfire/pcm-coldfire.c @@ -292,12 +292,13 @@ void pcm_rec_dma_start(void *addr, size_t size) INTERRUPTCLEAR = 0x03c00000; #endif - SAR1 = (unsigned long)&PDIR2; /* Source address */ - DCR1 = DMA_INT | DMA_CS | DMA_AA | DMA_DINC | DMA_DSIZE(3); + SAR1 = (unsigned long)&PDIR2; /* Source address */ + rec_peak_addr = (unsigned long *)addr; /* Start peaking at dest */ + DAR1 = (unsigned long)addr; /* Destination address */ + BCR1 = (unsigned long)size; /* Bytes to transfer */ - pcm_record_more(addr, size); - - DCR1 |= DMA_START; + DCR1 = DMA_INT | DMA_EEXT | DMA_CS | DMA_AA | DMA_DINC | + DMA_DSIZE(3) | DMA_START; } /* pcm_dma_start */ void pcm_rec_dma_stop(void) @@ -325,7 +326,7 @@ void pcm_init_recording(void) pcm_rec_dma_stop(); - ICR7 = (6 << 2); /* Enable interrupt at level 6, priority 0 */ + ICR7 = (7 << 2); /* Enable interrupt at level 7, priority 0 */ IMR &= ~(1 << 15); /* bit 15 is DMA1 */ } /* pcm_init_recording */