Index: firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c =================================================================== --- firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c (revision 21159) +++ firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c (working copy) @@ -111,10 +111,11 @@ p_bytes++; /* next packed pixels */ - /* While push fifo is not 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); } Index: firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c =================================================================== --- firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c (revision 21159) +++ firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c (working copy) @@ -97,9 +97,12 @@ { DBOP_DOUT = *p_bytes++; - /* Wait for fifo to empty */ - while ((DBOP_STAT & (1<<10)) == 0); + /* Wait if fifo is full */ + while ((DBOP_STAT & (1<<6)) != 0); } + + /* Wait for fifo to empty */ + while ((DBOP_STAT & (1<<10)) == 0); } static void lcd_write_reg(int reg, int value)