diff options
Diffstat (limited to 'firmware/target/arm/gigabeat/meg-fx/lcd-meg-fx.c')
-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) | |||
52 | 52 | ||
53 | if(!lcd_on) | 53 | if(!lcd_on) |
54 | { | 54 | { |
55 | yield(); | 55 | for(x=0; x < 2; x++) |
56 | yield(); | ||
56 | return; | 57 | return; |
57 | } | 58 | } |
58 | if (use_dma_blit) | 59 | if (use_dma_blit) |
@@ -95,15 +96,14 @@ void lcd_update_rect(int x, int y, int width, int height) | |||
95 | void lcd_enable(bool state) | 96 | void lcd_enable(bool state) |
96 | { | 97 | { |
97 | if(state) { | 98 | if(state) { |
98 | if(lcd_poweroff) { | 99 | if(lcd_poweroff && !lcd_on) { |
99 | if(!lcd_on) | 100 | memcpy(FRAME, lcd_framebuffer, LCD_WIDTH*LCD_HEIGHT*2); |
100 | memcpy(FRAME, lcd_framebuffer, LCD_WIDTH*LCD_HEIGHT*2); | ||
101 | lcd_on = true; | 101 | lcd_on = true; |
102 | LCDCON1 |= 1; | 102 | LCDCON1 |= 1; |
103 | } | 103 | } |
104 | } | 104 | } |
105 | else { | 105 | else { |
106 | if(lcd_poweroff) { | 106 | if(lcd_poweroff && lcd_on) { |
107 | lcd_on = false; | 107 | lcd_on = false; |
108 | LCDCON1 &= ~1; | 108 | LCDCON1 &= ~1; |
109 | } | 109 | } |
@@ -135,6 +135,11 @@ void lcd_clear_display_dma(void) | |||
135 | void *src; | 135 | void *src; |
136 | bool inc = false; | 136 | bool inc = false; |
137 | 137 | ||
138 | if(!lcd_on) { | ||
139 | yield(); | ||
140 | yield(); | ||
141 | } | ||
142 | |||
138 | if (lcd_get_drawmode() & DRMODE_INVERSEVID) | 143 | if (lcd_get_drawmode() & DRMODE_INVERSEVID) |
139 | src = fg_pattern_blit; | 144 | src = fg_pattern_blit; |
140 | else | 145 | else |