diff --git a/firmware/target/arm/as3525/button-e200v2-fuze.c b/firmware/target/arm/as3525/button-e200v2-fuze.c index 6a9f029..bf811ce 100644 --- a/firmware/target/arm/as3525/button-e200v2-fuze.c +++ b/firmware/target/arm/as3525/button-e200v2-fuze.c @@ -246,6 +246,9 @@ 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 +280,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 e25494d..bc2cbf3 100644 --- a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c +++ b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c @@ -173,8 +173,10 @@ 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); + 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 */