diff options
author | Rob Purchase <shotofadds@rockbox.org> | 2008-09-16 08:09:44 +0000 |
---|---|---|
committer | Rob Purchase <shotofadds@rockbox.org> | 2008-09-16 08:09:44 +0000 |
commit | 1a08f46329e9f6d7bd55a8a9ad45db27df8a7593 (patch) | |
tree | 693d2bd43f42c2d1ba35584e3a0b08f4fcef5969 /firmware/target/arm/pcm-telechips.c | |
parent | 9cf7ef68c9747fe1baa16a80e28d8cb783ea63f5 (diff) | |
download | rockbox-1a08f46329e9f6d7bd55a8a9ad45db27df8a7593.tar.gz rockbox-1a08f46329e9f6d7bd55a8a9ad45db27df8a7593.zip |
Commit fs#9404 (iAudio 7 updates by vitja). Also fixes play/pause behaviour on D2.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18528 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/pcm-telechips.c')
-rw-r--r-- | firmware/target/arm/pcm-telechips.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/firmware/target/arm/pcm-telechips.c b/firmware/target/arm/pcm-telechips.c index a0ad00eb22..63f50f7d78 100644 --- a/firmware/target/arm/pcm-telechips.c +++ b/firmware/target/arm/pcm-telechips.c | |||
@@ -207,7 +207,11 @@ void pcm_play_unlock(void) | |||
207 | 207 | ||
208 | void pcm_play_dma_pause(bool pause) | 208 | void pcm_play_dma_pause(bool pause) |
209 | { | 209 | { |
210 | (void) pause; | 210 | if (pause) { |
211 | play_stop_pcm(); | ||
212 | } else { | ||
213 | play_start_pcm(); | ||
214 | } | ||
211 | } | 215 | } |
212 | 216 | ||
213 | size_t pcm_get_bytes_waiting(void) | 217 | size_t pcm_get_bytes_waiting(void) |
@@ -251,11 +255,12 @@ const void * pcm_rec_dma_get_peak_buffer(int *count) | |||
251 | 255 | ||
252 | void pcm_record_more(void *start, size_t size) | 256 | void pcm_record_more(void *start, size_t size) |
253 | { | 257 | { |
258 | (void) start; | ||
259 | (void) size; | ||
254 | } | 260 | } |
255 | #endif | 261 | #endif |
256 | 262 | ||
257 | #if defined(COWON_D2) | 263 | #if defined(CPU_TCC77X) || defined(CPU_TCC780X) |
258 | /* TODO: hardcoded hex values differs for tcc7xx and tcc8xx */ | ||
259 | void fiq_handler(void) ICODE_ATTR __attribute__((naked)); | 264 | void fiq_handler(void) ICODE_ATTR __attribute__((naked)); |
260 | void fiq_handler(void) | 265 | void fiq_handler(void) |
261 | { | 266 | { |
@@ -266,10 +271,14 @@ void fiq_handler(void) | |||
266 | * r0-r3 and r12 is a working register. | 271 | * r0-r3 and r12 is a working register. |
267 | */ | 272 | */ |
268 | asm volatile ( | 273 | asm volatile ( |
274 | #if defined(CPU_TCC780X) | ||
269 | "mov r8, #0xc000 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */ | 275 | "mov r8, #0xc000 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */ |
270 | "ldr r9, =0xf3001004 \n" /* CREQ */ | 276 | "ldr r9, =0xf3001004 \n" /* CREQ */ |
277 | #elif defined(CPU_TCC77X) | ||
278 | "mov r8, #0x0030 \n" /* DAI_TX_IRQ_MASK | DAI_RX_IRQ_MASK */ | ||
279 | "ldr r9, =0x80000104 \n" /* CREQ */ | ||
280 | #endif | ||
271 | "str r8, [r9] \n" /* clear DAI IRQs */ | 281 | "str r8, [r9] \n" /* clear DAI IRQs */ |
272 | |||
273 | "ldmia r11, { r8-r9 } \n" /* r8 = p, r9 = size */ | 282 | "ldmia r11, { r8-r9 } \n" /* r8 = p, r9 = size */ |
274 | "cmp r9, #0x10 \n" /* is size <16? */ | 283 | "cmp r9, #0x10 \n" /* is size <16? */ |
275 | "blt .more_data \n" /* if so, ask pcmbuf for more data */ | 284 | "blt .more_data \n" /* if so, ask pcmbuf for more data */ |