Thank you to anyone who has already donated - your generous donations helped make three months of treatment possible.
My brother Nate continues to fight stage IV Hodgkin's lymphoma. He's just 31, with a wife and baby girl. They have no active income (since he's been unable to return to work), no insurance, and cannot afford the treatment he needs. Nate and his family need your help. Please consider a donation, every dollar helps. Thanks.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
diff --git a/firmware/target/arm/as3525/dbop-as3525.c b/firmware/target/arm/as3525/dbop-as3525.c index 66202b7..5cbe259 100644 #include "config.h" #include <inttypes.h> +#include "kernel.h" #include "as3525.h" #include "dbop-as3525.h" #define DBOP_PRECHARGE 0xF0FF #endif +static struct wakeup dbop_wakeup; + +void dbop_init(void) +{ + wakeup_init(&dbop_wakeup); +} + + +void INT_DBOP(void) +{ + DBOP_CTRL &= ~(1<<11); + wakeup_signal(&dbop_wakeup); +} + + #if CONFIG_CPU == AS3525 /* doesn't work with the new ams sansas so far and is not needed */ static short int dbop_input_value = 0; void dbop_write_data(const int16_t* p_bytes, int count) count -= 2; /* Wait if push fifo is full */ - while ((DBOP_STAT & (1<<6)) != 0); + if (DBOP_STAT & (1<<6)) + { + DBOP_CTRL |= 1<<11|1<<7; /* enable almost-empty-irq */ + wakeup_wait(&dbop_wakeup, TIMEOUT_BLOCK); + } } /* While push fifo is not empty */ while ((DBOP_STAT & (1<<10)) == 0); diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c index 47cb465..b184a0e 100644 struct vec_int_src vec_int_srcs[] = #ifdef HAVE_RECORDING { INT_SRC_I2SIN, INT_I2SIN, }, #endif + { INT_SRC_DBOP, INT_DBOP }, }; static void setup_vic(void) void system_init(void) ascodec_init(); + void dbop_init(void); + dbop_init(); + #ifndef BOOTLOADER /* setup isr for microsd monitoring and for scrollwheel irq */ #if defined(HAVE_MULTIDRIVE) || (defined(HAVE_SCROLLWHEEL) && CONFIG_CPU != AS3525) |