From ac946416060c19eb6cfe9da3d1885baee329df30 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sat, 14 Apr 2007 19:49:58 +0000 Subject: e200: Use cached memory for the yuv chroma buffer. Gives some speedup. Align lcd_driver_framebuffer to the same alignment as lcd_framebuffer. The need for this became apparent when the first change cause aligment & 3 != 0 and the screen was wrapped one pixel right with a black pixel at (0, 0). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13161 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/sandisk/sansa-e200/lcd-e200.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'firmware/target/arm/sandisk/sansa-e200') diff --git a/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c b/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c index 93d79633b1..3748b73fb3 100644 --- a/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c +++ b/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c @@ -52,7 +52,8 @@ /* We don't know how to receive a DMA finished signal from the LCD controller * To avoid problems with flickering, we double-buffer the framebuffer and turn * off DMA while updates are taking place */ -static fb_data lcd_driver_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH]; +static fb_data lcd_driver_framebuffer[LCD_FBHEIGHT][LCD_FBWIDTH] + __attribute__((aligned(16))); /* Same alignment as in lcd-16bit.c */ static inline void lcd_init_gpio(void) { @@ -334,7 +335,7 @@ void lcd_yuv_blit(unsigned char * const src[3], { /* Caches for chroma data so it only need be recaculated every other line */ - unsigned char chroma_buf[LCD_HEIGHT/2*3]; /* 480 bytes */ + static unsigned char chroma_buf[LCD_HEIGHT/2*3]; /* 330 bytes */ unsigned char const * yuv_src[3]; off_t z; -- cgit v1.2.3