summaryrefslogtreecommitdiff
path: root/firmware/target/arm/pcm-telechips.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/pcm-telechips.c')
-rw-r--r--firmware/target/arm/pcm-telechips.c17
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
208void pcm_play_dma_pause(bool pause) 208void 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
213size_t pcm_get_bytes_waiting(void) 217size_t pcm_get_bytes_waiting(void)
@@ -251,11 +255,12 @@ const void * pcm_rec_dma_get_peak_buffer(int *count)
251 255
252void pcm_record_more(void *start, size_t size) 256void 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 */
259void fiq_handler(void) ICODE_ATTR __attribute__((naked)); 264void fiq_handler(void) ICODE_ATTR __attribute__((naked));
260void fiq_handler(void) 265void 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 */