From 84d28e8f78c95aeec6f776b089de2f6896d879e3 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Thu, 4 Oct 2007 12:55:46 +0000 Subject: [PATCH] Fix up the recording monitoring for e200 and I expect for c200 as well whenever recording is enabled there. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14980 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/pcm-pp.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/firmware/target/arm/pcm-pp.c b/firmware/target/arm/pcm-pp.c index 4d716fcbf3..f38757ec6c 100644 --- a/firmware/target/arm/pcm-pp.c +++ b/firmware/target/arm/pcm-pp.c @@ -406,6 +406,11 @@ void fiq_record(void) /* TODO: Figure out how to do IIS loopback */ if (audio_output_source != AUDIO_SRC_PLAYBACK) { + if ((IISFIFO_CFG & (0x3f << 16)) >= (16 << 16)) { + /* Resync the output FIFO - it ran dry */ + IISFIFO_WR = 0; + IISFIFO_WR = 0; + } IISFIFO_WR = value1; IISFIFO_WR = value1; } @@ -428,6 +433,12 @@ void fiq_record(void) p_size -= 4; if (audio_output_source != AUDIO_SRC_PLAYBACK) { + if ((IISFIFO_CFG & (0x3f << 16)) >= (16 << 16)) { + /* Resync the output FIFO - it ran dry */ + IISFIFO_WR = 0; + IISFIFO_WR = 0; + } + value1 = *((int32_t *)p - 1); IISFIFO_WR = value1; IISFIFO_WR = value1;