summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2012-05-23 10:18:32 -0400
committerMichael Sevakis <jethead71@rockbox.org>2012-05-23 10:21:22 -0400
commit5c36e2f21c13196cc0b6b34c8ee8149b0595bd82 (patch)
treede7d1a120877342cc0787e1d735d2848a128ff3b
parent5b9a5054f5f46a78db4b52ab4401369e5d809ca1 (diff)
downloadrockbox-5c36e2f21c13196cc0b6b34c8ee8149b0595bd82.tar.gz
rockbox-5c36e2f21c13196cc0b6b34c8ee8149b0595bd82.zip
Gigabeat S: Fix the recording locking upon using it a second time.
Apparently I got the "just-in-case" RXFIFO purge in there before the RXFIFO was enabled, causing severe hardware spasms. Change-Id: I2ea4b6d28e06372b61cb3f21ab2fce71dd408213
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c b/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
index c26349b72e..76789a7dbd 100644
--- a/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
+++ b/firmware/target/arm/imx31/gigabeat-s/pcm-gigabeat-s.c
@@ -428,20 +428,20 @@ void pcm_rec_dma_start(void *addr, size_t size)
428 if (!sdma_channel_reset(DMA_REC_CH_NUM)) 428 if (!sdma_channel_reset(DMA_REC_CH_NUM))
429 return; 429 return;
430 430
431 SSI_SRCR1 |= SSI_SRCR_RFEN0; /* Enable RX FIFO */
432
431 /* Ensure clear FIFO */ 433 /* Ensure clear FIFO */
432 while (SSI_SFCSR1 & SSI_SFCSR_RFCNT0) 434 while (SSI_SFCSR1 & SSI_SFCSR_RFCNT0)
433 SSI_SRX0_1; 435 SSI_SRX0_1;
434 436
435 dma_rec_data.state = 1; /* Check callback on unlock */
436
437 SSI_SRCR1 |= SSI_SRCR_RFEN0; /* Enable RX FIFO */
438
439 /* Enable receive */ 437 /* Enable receive */
440 SSI_SCR1 |= SSI_SCR_RE; 438 SSI_SCR1 |= SSI_SCR_RE;
441 SSI_SIER1 |= SSI_SIER_RDMAE; /* Enable DMA req. */ 439 SSI_SIER1 |= SSI_SIER_RDMAE; /* Enable DMA req. */
442 440
443 /* Begin DMA transfer */ 441 /* Begin DMA transfer */
444 rec_start_dma(addr, size); 442 rec_start_dma(addr, size);
443
444 dma_rec_data.state = 1; /* Check callback on unlock */
445} 445}
446 446
447void pcm_rec_dma_close(void) 447void pcm_rec_dma_close(void)