summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg White <gwhite@rockbox.org>2007-01-08 02:31:12 +0000
committerGreg White <gwhite@rockbox.org>2007-01-08 02:31:12 +0000
commit5693622cd4de1d3dff162295690ecb25d29a2937 (patch)
tree2a77c55832c9e317ec97c1786bdab75520c44b52
parent8cce37f161d3202be977a363a3d94d7013cf7da8 (diff)
downloadrockbox-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.c15
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