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 |
diff --git a/firmware/target/arm/as3525/button-e200v2-fuze.c b/firmware/target/arm/as3525/button-e200v2-fuze.c index 6a9f029..9554c61 100644 @@ -246,6 +246,8 @@ static int button_gpio(void) int btn = BUTTON_NONE; if(hold_button) return btn; + DBOP_CTRL &= ~(1<<16); /* disable output (1:write enabled) */ + button_delay(); /* set afsel, so that we can read our buttons */ GPIOC_AFSEL &= ~(1<<2|1<<3|1<<4|1<<5|1<<6); /* set dir so we can read our buttons (but reset the C pins first) */ @@ -277,6 +279,7 @@ static int button_gpio(void) GPIOC_DIR |= (1<<2|1<<3|1<<4|1<<5|1<<6); GPIOC_AFSEL |= (1<<2|1<<3|1<<4|1<<5|1<<6); + DBOP_CTRL |= (1<<16); /* disable output (1:write enabled) */ return btn; } diff --git a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c index 7f02a8b..f712fb6 100644 @@ -155,10 +155,11 @@ void lcd_write_data(const fb_data* p_bytes, int count) while (count--) { DBOP_DOUT = *p_bytes++; - - /* Wait for fifo to empty */ - while ((DBOP_STAT & (1<<10)) == 0); + /* Wait if push fifo is full */ + while ((DBOP_STAT & (1<<6)) != 0); } + /* While push fifo is not empty */ + while ((DBOP_STAT & (1<<10)) == 0); } static void lcd_write_reg(int reg, int value) diff --git a/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c b/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c index fc0fdaa..833cdf8 100644 @@ -120,8 +120,11 @@ void lcd_write_data(const fb_data* p_bytes, int count) /* TODO: We should normally fill the fifo until it's full * instead of waiting after each word, * but that causes blue lines on the display */ - while ((DBOP_STAT & (1<<10)) == 0); - } + /* Wait if push fifo is full */ + while ((DBOP_STAT & (1<<6)) != 0); + } + /* While push fifo is not empty */ + while ((DBOP_STAT & (1<<10)) == 0); /* due to the 32bit alignment requirement, we possibly need to do a * 16bit transfer at the end also */ if (count > 0) |