rk27xx: Use DMA for lcd_update_rect()

This speeds up partial updates quite a bit but what is more
important it opens up a way to efficiently implement
lcd_blit_yuv() using hw colorspace conversion.

Tested on rk27generic, hm60x v1 and v2 and on ma9.

Benchmark for hm60x v1 (by mortalis):
HEAD patched
1/1 141fps 138fps
1/4 315fps 395fps

Change-Id: I4cc115786c3139000fc14c49a7290e289cfd6c42
This commit is contained in:
Marcin Bukat 2013-05-11 12:55:23 +02:00
parent ca8154741f
commit 440872bb42
4 changed files with 60 additions and 103 deletions

View file

@ -179,20 +179,6 @@ void lcd_set_gram_area(int x_start, int y_start,
LCDC_CTRL &= ~RGB24B;
}
void lcd_update_rect(int x, int y, int width, int height)
{
int px = x, py = y;
int pxmax = x + width, pymax = y + height;
lcd_set_gram_area(x, y, pxmax-1, pymax-1);
for (py=y; py<pymax; py++)
{
for (px=x; px<pxmax; px++)
LCD_DATA = *FBADDR(px,py);
}
}
/* Blit a YUV bitmap directly to the LCD
* provided by generic fallback in lcd-16bit-common.c
*/