summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c
index 9fb2a90c42..ac8dc380e2 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c
@@ -244,6 +244,24 @@ static void LCD_SPI_init(void)
244/* LCD init */ 244/* LCD init */
245void lcd_init_device(void) 245void lcd_init_device(void)
246{ 246{
247#ifdef BOOTLOADER
248 int i;
249 /* When the Rockbox bootloader starts, we are changing framebuffer address,
250 but we don't want what's shown on the LCD to change until we do an
251 lcd_update(), so copy the data from the old framebuffer to the new one */
252 unsigned short *buf = (unsigned short*)FRAME;
253
254 memcpy(FRAME, (short *)((LCDSADDR1)<<1), 320*240*2);
255
256 /* The Rockbox bootloader is transitioning from RGB555I to RGB565 mode
257 so convert the frambuffer data accordingly */
258 for(i=0; i< 320*240; i++){
259 *buf = ((*buf>>1) & 0x1F) | (*buf & 0xffc0);
260 buf++;
261 }
262#endif
263
264
247 /* Set pins up */ 265 /* Set pins up */
248 266
249 GPHUP &= 0x600; 267 GPHUP &= 0x600;