mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-08 12:45:26 -05:00
Fuze/e200v2: Speed up the LCD further by letting the FIFO fill until it's full instead of keeping it almost empty.
The blue bars I previously had with this way are fixed by blocking DBOP output while reading buttons from GPIO. We reached the maximum fps even at unboosted now (100.0 fps at lcd_update(), DBOP can't do more). Optimisation to YUV stuff is still possible though. The e200v2 scrollwheel is very improved due to the this and the previous speedup since the chance of getting the wheel read blocked is greatly decreased with faster updates. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22578 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
fb65077a18
commit
b9093b2b35
3 changed files with 19 additions and 13 deletions
|
|
@ -170,16 +170,16 @@ void lcd_write_data(const fb_data* p_bytes, int count)
|
|||
DBOP_DOUT32 = *data++;
|
||||
count -= 2;
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/* due to the 32bit alignment requirement, we possibly need to do a
|
||||
* 16bit transfer at the end also */
|
||||
if (count > 0)
|
||||
lcd_write_single_data16(*(fb_data*)data);
|
||||
|
||||
/* While push fifo is not empty */
|
||||
while ((DBOP_STAT & (1<<10)) == 0);
|
||||
}
|
||||
|
||||
static void lcd_write_reg(int reg, int value)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue