diff options
author | Greg White <gwhite@rockbox.org> | 2007-01-08 02:31:12 +0000 |
---|---|---|
committer | Greg White <gwhite@rockbox.org> | 2007-01-08 02:31:12 +0000 |
commit | 5693622cd4de1d3dff162295690ecb25d29a2937 (patch) | |
tree | 2a77c55832c9e317ec97c1786bdab75520c44b52 | |
parent | 8cce37f161d3202be977a363a3d94d7013cf7da8 (diff) | |
download | rockbox-5693622cd4de1d3dff162295690ecb25d29a2937.tar.gz rockbox-5693622cd4de1d3dff162295690ecb25d29a2937.zip |
Make lcd_enable more tolerant of multiple calls
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11943 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c | 15 |
1 files changed, 10 insertions, 5 deletions
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 |