summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tms320dm320/dsp/arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/tms320dm320/dsp/arm.c')
-rw-r--r--firmware/target/arm/tms320dm320/dsp/arm.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/firmware/target/arm/tms320dm320/dsp/arm.c b/firmware/target/arm/tms320dm320/dsp/arm.c
index a2c19c7f62..e0df31c7a1 100644
--- a/firmware/target/arm/tms320dm320/dsp/arm.c
+++ b/firmware/target/arm/tms320dm320/dsp/arm.c
@@ -28,17 +28,27 @@
28 28
29volatile struct ipc_message status; 29volatile struct ipc_message status;
30 30
31extern int waiting; 31#if defined(HAVE_DEBUG)
32volatile int acked; 32static int acked;
33#endif
34
33interrupt void handle_int0(void) { 35interrupt void handle_int0(void) {
34 IFR = 1; 36 IFR = 1;
37
38#if defined(HAVE_DEBUG)
35 acked = 1; 39 acked = 1;
40#endif
41
36 waiting = 0; 42 waiting = 0;
37 43
38 if(dma0_stopped==0) 44 if(dma0_stopped==0)
39 { 45 {
40 if(!(DMPREC&0x01)) 46 if(!(DMPREC&0x01))
41 { 47 {
48 /* Give the HPIB access to refill first */
49 rebuffer();
50
51 /* Start the MCBSP DMA */
42 DMPREC |= 1; 52 DMPREC |= 1;
43 audiohw_start(); 53 audiohw_start();
44 } 54 }
@@ -47,15 +57,20 @@ interrupt void handle_int0(void) {
47 rebuffer(); 57 rebuffer();
48 } 58 }
49 } 59 }
60 else
61 {
62 rebuffer();
63 }
50} 64}
51 65
52void startack(void) 66#if defined(HAVE_DEBUG)
67static void startack(void)
53{ 68{
54 acked = 0; 69 acked = 0;
55 int_arm(); 70 int_arm();
56} 71}
57 72
58void waitack(void) 73static void waitack(void)
59{ 74{
60 /* Wait until ARM has picked up data. */ 75 /* Wait until ARM has picked up data. */
61 while (!acked) 76 while (!acked)
@@ -78,3 +93,4 @@ void debugf(const char *fmt, ...) {
78 93
79 acked = 2; 94 acked = 2;
80} 95}
96#endif