From 5693622cd4de1d3dff162295690ecb25d29a2937 Mon Sep 17 00:00:00 2001 From: Greg White Date: Mon, 8 Jan 2007 02:31:12 +0000 Subject: Make lcd_enable more tolerant of multiple calls git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11943 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'firmware') diff --git a/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c index 754ee6dec4..965f4523c8 100644 --- a/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c +++ b/firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c @@ -52,7 +52,8 @@ void lcd_update_rect(int x, int y, int width, int height) if(!lcd_on) { - yield(); + for(x=0; x < 2; x++) + yield(); return; } if (use_dma_blit) @@ -95,15 +96,14 @@ void lcd_update_rect(int x, int y, int width, int height) void lcd_enable(bool state) { if(state) { - if(lcd_poweroff) { - if(!lcd_on) - memcpy(FRAME, lcd_framebuffer, LCD_WIDTH*LCD_HEIGHT*2); + if(lcd_poweroff && !lcd_on) { + memcpy(FRAME, lcd_framebuffer, LCD_WIDTH*LCD_HEIGHT*2); lcd_on = true; LCDCON1 |= 1; } } else { - if(lcd_poweroff) { + if(lcd_poweroff && lcd_on) { lcd_on = false; LCDCON1 &= ~1; } @@ -135,6 +135,11 @@ void lcd_clear_display_dma(void) void *src; bool inc = false; + if(!lcd_on) { + yield(); + yield(); + } + if (lcd_get_drawmode() & DRMODE_INVERSEVID) src = fg_pattern_blit; else -- cgit v1.2.3