diff options
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c')
-rw-r--r-- | firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c index 35905645dd..a1c854a0df 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c | |||
@@ -215,16 +215,14 @@ void pcm_play_dma_pause(bool pause) | |||
215 | 215 | ||
216 | void fiq_handler(void) | 216 | void fiq_handler(void) |
217 | { | 217 | { |
218 | static void *start; | 218 | static const void *start; |
219 | static size_t size; | 219 | static size_t size; |
220 | 220 | ||
221 | /* clear any pending interrupt */ | 221 | /* clear any pending interrupt */ |
222 | SRCPND = DMA2_MASK; | 222 | SRCPND = DMA2_MASK; |
223 | 223 | ||
224 | /* Buffer empty. Try to get more. */ | 224 | /* Buffer empty. Try to get more. */ |
225 | pcm_play_get_more_callback(&start, &size); | 225 | if (!pcm_play_dma_complete_callback(PCM_DMAST_OK, &start, &size)) |
226 | |||
227 | if (size == 0) | ||
228 | return; | 226 | return; |
229 | 227 | ||
230 | /* Flush any pending cache writes */ | 228 | /* Flush any pending cache writes */ |
@@ -237,7 +235,7 @@ void fiq_handler(void) | |||
237 | /* Re-Activate the channel */ | 235 | /* Re-Activate the channel */ |
238 | DMASKTRIG2 = 0x2; | 236 | DMASKTRIG2 = 0x2; |
239 | 237 | ||
240 | pcm_play_dma_started_callback(); | 238 | pcm_play_dma_status_callback(PCM_DMAST_STARTED); |
241 | } | 239 | } |
242 | 240 | ||
243 | size_t pcm_get_bytes_waiting(void) | 241 | size_t pcm_get_bytes_waiting(void) |