summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-12-12 04:25:52 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-12-12 04:25:52 +0000
commitf51df0de210476d0fbd90a9f0e1fcd9054f275f5 (patch)
tree722dfe3d0a254c8240664ba1dfda5880907bfd81 /firmware
parentb464e7d6c98653ffb9cf99d6021a2d773e91835d (diff)
downloadrockbox-f51df0de210476d0fbd90a9f0e1fcd9054f275f5.tar.gz
rockbox-f51df0de210476d0fbd90a9f0e1fcd9054f275f5.zip
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
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c13
1 files 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 */