summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-03-17 03:36:36 +0000
committerThomas Martitz <kugel@rockbox.org>2009-03-17 03:36:36 +0000
commit4ed387d60313ac79fa7ac8b403bf3195f7c0c549 (patch)
treed5bc4861cbdde61b054d12deed4ffea92af03bd3
parent68f9ef2d575c4d6801730a0a8242227383d682f7 (diff)
downloadrockbox-4ed387d60313ac79fa7ac8b403bf3195f7c0c549.tar.gz
rockbox-4ed387d60313ac79fa7ac8b403bf3195f7c0c549.zip
Fix reds and yellows (hopefully). Some targets apparently didn't properly #ifdef lcd_enable and lcd_sleep code out, so that it got partly active in the bootloader; rename the ui simulator stub fixes most reds; for the clip: move the hook code into lcd-1bit-vert.c which should fix the bootloader red.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20333 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/lcd-1bit-vert.c19
-rw-r--r--firmware/export/config-creativezvm.h3
-rw-r--r--firmware/export/config-e200v2.h3
-rw-r--r--firmware/export/config-fuze.h3
-rw-r--r--firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c16
-rw-r--r--firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c8
-rw-r--r--firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c9
-rw-r--r--firmware/target/arm/ipod/video/lcd-video.c5
-rw-r--r--firmware/target/arm/iriver/h10/lcd-h10_20gb.c16
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c6
-rw-r--r--firmware/target/arm/sandisk/sansa-c200/lcd-c200.c6
-rw-r--r--firmware/target/arm/sandisk/sansa-e200/lcd-e200.c10
-rw-r--r--firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c2
-rw-r--r--firmware/target/coldfire/iaudio/x5/lcd-x5.c14
-rw-r--r--firmware/target/mips/ingenic_jz47xx/lcd-target.h2
-rw-r--r--uisimulator/common/stubs.c2
16 files changed, 78 insertions, 46 deletions
diff --git a/firmware/drivers/lcd-1bit-vert.c b/firmware/drivers/lcd-1bit-vert.c
index f8461e3cbd..b09ce0e76d 100644
--- a/firmware/drivers/lcd-1bit-vert.c
+++ b/firmware/drivers/lcd-1bit-vert.c
@@ -95,6 +95,25 @@ void LCDFN(init)(void)
95#endif 95#endif
96} 96}
97 97
98#ifdef MAIN_LCD
99#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
100static void (*lcd_activation_hook)(void) = NULL;
101
102void lcd_activation_set_hook(void (*func)(void))
103{
104 lcd_activation_hook = func;
105}
106
107void lcd_activation_call_hook(void)
108{
109 void (*func)(void) = lcd_activation_hook;
110
111 if (func != NULL)
112 func();
113}
114#endif
115#endif
116
98/*** parameter handling ***/ 117/*** parameter handling ***/
99 118
100void LCDFN(set_drawmode)(int mode) 119void LCDFN(set_drawmode)(int mode)
diff --git a/firmware/export/config-creativezvm.h b/firmware/export/config-creativezvm.h
index 2e14f7440c..7374e7d430 100644
--- a/firmware/export/config-creativezvm.h
+++ b/firmware/export/config-creativezvm.h
@@ -70,7 +70,8 @@
70#define LCD_PIXELFORMAT RGB565 /* rgb565 */ 70#define LCD_PIXELFORMAT RGB565 /* rgb565 */
71 71
72/* Define this if your LCD can be enabled/disabled */ 72/* Define this if your LCD can be enabled/disabled */
73#define HAVE_LCD_ENABLE 73/* Disabled until properly working
74#define HAVE_LCD_ENABLE */
74 75
75#define CONFIG_KEYPAD CREATIVEZVM_PAD 76#define CONFIG_KEYPAD CREATIVEZVM_PAD
76#define HAVE_HEADPHONE_DETECTION 77#define HAVE_HEADPHONE_DETECTION
diff --git a/firmware/export/config-e200v2.h b/firmware/export/config-e200v2.h
index 5d2fa81df7..7e6771cd9e 100644
--- a/firmware/export/config-e200v2.h
+++ b/firmware/export/config-e200v2.h
@@ -54,10 +54,11 @@
54#define HAVE_LCD_ENABLE 54#define HAVE_LCD_ENABLE
55 55
56/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE 56/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE
57 should be defined as well. */ 57 should be defined as well.
58#define HAVE_LCD_SLEEP 58#define HAVE_LCD_SLEEP
59#define HAVE_LCD_SLEEP_SETTING 59#define HAVE_LCD_SLEEP_SETTING
60#endif 60#endif
61 */
61 62
62/* define this if you can flip your LCD */ 63/* define this if you can flip your LCD */
63#define HAVE_LCD_FLIP 64#define HAVE_LCD_FLIP
diff --git a/firmware/export/config-fuze.h b/firmware/export/config-fuze.h
index c52298f442..17a34aa8f5 100644
--- a/firmware/export/config-fuze.h
+++ b/firmware/export/config-fuze.h
@@ -54,10 +54,11 @@
54#define HAVE_LCD_ENABLE 54#define HAVE_LCD_ENABLE
55 55
56/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE 56/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE
57 should be defined as well. */ 57 should be defined as well.
58#define HAVE_LCD_SLEEP 58#define HAVE_LCD_SLEEP
59#define HAVE_LCD_SLEEP_SETTING 59#define HAVE_LCD_SLEEP_SETTING
60#endif 60#endif
61*/
61 62
62/* define this if you can flip your LCD */ 63/* define this if you can flip your LCD */
63#define HAVE_LCD_FLIP 64#define HAVE_LCD_FLIP
diff --git a/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c b/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c
index 640f6694c9..0689779af0 100644
--- a/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c
+++ b/firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c
@@ -160,22 +160,6 @@ void lcd_set_flip(bool yesno)
160} 160}
161 161
162#ifdef HAVE_LCD_ENABLE 162#ifdef HAVE_LCD_ENABLE
163static void (*lcd_activation_hook)(void) = NULL;
164
165void lcd_activation_set_hook(void (*func)(void))
166{
167 lcd_activation_hook = func;
168}
169
170void lcd_activation_call_hook(void)
171{
172 void (*func)(void) = lcd_activation_hook;
173
174 if (func != NULL)
175 func();
176}
177
178
179void lcd_enable(bool enable) 163void lcd_enable(bool enable)
180{ 164{
181 if(display_on == enable) 165 if(display_on == enable)
diff --git a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
index 8715622717..517aa6a979 100644
--- a/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
+++ b/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
@@ -321,6 +321,7 @@ void lcd_init_device(void)
321 _display_on(); 321 _display_on();
322} 322}
323 323
324#if defined(HAVE_LCD_ENABLE)
324void lcd_enable(bool on) 325void lcd_enable(bool on)
325{ 326{
326 if(display_on!=on) 327 if(display_on!=on)
@@ -337,16 +338,15 @@ void lcd_enable(bool on)
337 } 338 }
338 } 339 }
339} 340}
341#endif
340 342
343#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
341bool lcd_active(void) 344bool lcd_active(void)
342{ 345{
343 return display_on; 346 return display_on;
344} 347}
345 348
346void lcd_sleep(void) 349#endif
347{
348 /* TODO */
349}
350 350
351/*** update functions ***/ 351/*** update functions ***/
352 352
diff --git a/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c b/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c
index 5196784a2f..db69c9763a 100644
--- a/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c
+++ b/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c
@@ -185,6 +185,7 @@ static void _display_on(void)
185 lcd_update(); 185 lcd_update();
186} 186}
187 187
188#if defined(HAVE_LCD_ENABLE)
188void lcd_enable(bool on) 189void lcd_enable(bool on)
189{ 190{
190 if (display_on == on) 191 if (display_on == on)
@@ -217,16 +218,14 @@ void lcd_enable(bool on)
217 display_on = false; 218 display_on = false;
218 } 219 }
219} 220}
221#endif
220 222
223#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
221bool lcd_active(void) 224bool lcd_active(void)
222{ 225{
223 return display_on; 226 return display_on;
224} 227}
225 228#endif
226void lcd_sleep(void)
227{
228 /* TODO */
229}
230 229
231/*** update functions ***/ 230/*** update functions ***/
232 231
diff --git a/firmware/target/arm/ipod/video/lcd-video.c b/firmware/target/arm/ipod/video/lcd-video.c
index c0e98cf53c..7ce446333b 100644
--- a/firmware/target/arm/ipod/video/lcd-video.c
+++ b/firmware/target/arm/ipod/video/lcd-video.c
@@ -597,6 +597,11 @@ void lcd_sleep(void)
597 mutex_unlock(&lcdstate_lock); 597 mutex_unlock(&lcdstate_lock);
598} 598}
599 599
600bool lcd_active(void)
601{
602 return lcd_state.display;
603}
604
600#ifdef HAVE_LCD_SHUTDOWN 605#ifdef HAVE_LCD_SHUTDOWN
601void lcd_shutdown(void) 606void lcd_shutdown(void)
602{ 607{
diff --git a/firmware/target/arm/iriver/h10/lcd-h10_20gb.c b/firmware/target/arm/iriver/h10/lcd-h10_20gb.c
index 03a398af8d..5bc2ebc2b3 100644
--- a/firmware/target/arm/iriver/h10/lcd-h10_20gb.c
+++ b/firmware/target/arm/iriver/h10/lcd-h10_20gb.c
@@ -352,6 +352,7 @@ static void lcd_display_off(void)
352 lcd_write_reg(R_DISP_CONTROL, 0x0000); 352 lcd_write_reg(R_DISP_CONTROL, 0x0000);
353} 353}
354 354
355#if defined(HAVE_LCD_ENABLE)
355void lcd_enable(bool on) 356void lcd_enable(bool on)
356{ 357{
357 if (on == display_on) 358 if (on == display_on)
@@ -370,12 +371,9 @@ void lcd_enable(bool on)
370 lcd_display_off(); 371 lcd_display_off();
371 } 372 }
372} 373}
374#endif
373 375
374bool lcd_active(void) 376#ifdef HAVE_LCD_SLEEP
375{
376 return display_on;
377}
378
379void lcd_sleep(void) 377void lcd_sleep(void)
380{ 378{
381 if (power_on) 379 if (power_on)
@@ -385,6 +383,14 @@ void lcd_sleep(void)
385 /* BT2-0=000, DC2-0=000, AP2-0=000, SLP=0, STB=1 */ 383 /* BT2-0=000, DC2-0=000, AP2-0=000, SLP=0, STB=1 */
386 lcd_write_reg(R_POWER_CONTROL1, 0x0001); 384 lcd_write_reg(R_POWER_CONTROL1, 0x0001);
387} 385}
386#endif
387
388#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
389bool lcd_active(void)
390{
391 return display_on;
392}
393#endif
388 394
389/*** update functions ***/ 395/*** update functions ***/
390 396
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 fd52eda5e9..46aac24e60 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c
@@ -42,10 +42,12 @@ extern struct viewport* current_vp;
42extern void lcd_copy_buffer_rect(fb_data *dst, const fb_data *src, 42extern void lcd_copy_buffer_rect(fb_data *dst, const fb_data *src,
43 int width, int height); 43 int width, int height);
44 44
45#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
45bool lcd_active(void) 46bool lcd_active(void)
46{ 47{
47 return lcd_on; 48 return lcd_on;
48} 49}
50#endif
49 51
50static unsigned int LCDBANK(unsigned int address) 52static unsigned int LCDBANK(unsigned int address)
51{ 53{
@@ -278,6 +280,7 @@ void lcd_init_device(void)
278 LCD_SPI_init(); 280 LCD_SPI_init();
279} 281}
280 282
283#if defined(HAVE_LCD_SLEEP)
281void lcd_sleep(void) 284void lcd_sleep(void)
282{ 285{
283 if (lcd_powered) 286 if (lcd_powered)
@@ -289,7 +292,9 @@ void lcd_sleep(void)
289 LCD_SPI_powerdown(); 292 LCD_SPI_powerdown();
290 } 293 }
291} 294}
295#endif
292 296
297#if defined(HAVE_LCD_ENABLE)
293void lcd_enable(bool state) 298void lcd_enable(bool state)
294{ 299{
295 if (state == lcd_on) 300 if (state == lcd_on)
@@ -315,6 +320,7 @@ void lcd_enable(bool state)
315 lcd_on = false; 320 lcd_on = false;
316 } 321 }
317} 322}
323#endif
318 324
319void lcd_set_flip(bool yesno) { 325void lcd_set_flip(bool yesno) {
320 if (!lcd_on) 326 if (!lcd_on)
diff --git a/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c b/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c
index be730d3291..922fb9e1ab 100644
--- a/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c
+++ b/firmware/target/arm/sandisk/sansa-c200/lcd-c200.c
@@ -190,6 +190,7 @@ void lcd_set_invert_display(bool yesno)
190 (void)yesno; 190 (void)yesno;
191} 191}
192 192
193#if defined(HAVE_LCD_ENABLE)
193void lcd_enable(bool yesno) 194void lcd_enable(bool yesno)
194{ 195{
195 if (yesno == is_lcd_enabled) 196 if (yesno == is_lcd_enabled)
@@ -206,11 +207,14 @@ void lcd_enable(bool yesno)
206 lcd_send_command(R_STANDBY_ON); 207 lcd_send_command(R_STANDBY_ON);
207 } 208 }
208} 209}
210#endif
209 211
210bool lcd_enabled(void) 212#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
213bool lcd_active(void)
211{ 214{
212 return is_lcd_enabled; 215 return is_lcd_enabled;
213} 216}
217#endif
214 218
215 219
216/* turn the display upside down (call lcd_update() afterwards) */ 220/* turn the display upside down (call lcd_update() afterwards) */
diff --git a/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c b/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c
index e1a4d738d7..eebd678b83 100644
--- a/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c
+++ b/firmware/target/arm/sandisk/sansa-e200/lcd-e200.c
@@ -22,11 +22,11 @@
22 * KIND, either express or implied. 22 * KIND, either express or implied.
23 * 23 *
24 ****************************************************************************/ 24 ****************************************************************************/
25#include "lcd.h"
26#include "system.h"
27#include <string.h> 25#include <string.h>
28#include "backlight-target.h"
29#include "cpu.h" 26#include "cpu.h"
27#include "system.h"
28#include "backlight-target.h"
29#include "lcd.h"
30 30
31/* Power and display status */ 31/* Power and display status */
32static bool power_on = false; /* Is the power turned on? */ 32static bool power_on = false; /* Is the power turned on? */
@@ -427,7 +427,7 @@ void lcd_init_device(void)
427 427
428 LCD_REG_6 |= 1; /* Start DMA */ 428 LCD_REG_6 |= 1; /* Start DMA */
429} 429}
430 430#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
431void lcd_enable(bool on) 431void lcd_enable(bool on)
432{ 432{
433 if (on == display_on) 433 if (on == display_on)
@@ -455,7 +455,7 @@ bool lcd_active(void)
455{ 455{
456 return display_on; 456 return display_on;
457} 457}
458 458#endif
459void lcd_sleep(void) 459void lcd_sleep(void)
460{ 460{
461 LCD_REG_6 &= ~1; 461 LCD_REG_6 &= ~1;
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c
index 9c63f0f5ee..cdba4c8118 100644
--- a/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c
+++ b/firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c
@@ -46,7 +46,7 @@ volatile bool lcd_poweroff = false;
46extern unsigned fg_pattern; 46extern unsigned fg_pattern;
47extern unsigned bg_pattern; 47extern unsigned bg_pattern;
48 48
49bool lcd_enabled(void) 49bool lcd_active(void)
50{ 50{
51 return lcd_on; 51 return lcd_on;
52} 52}
diff --git a/firmware/target/coldfire/iaudio/x5/lcd-x5.c b/firmware/target/coldfire/iaudio/x5/lcd-x5.c
index 4737f31bc8..105dc43322 100644
--- a/firmware/target/coldfire/iaudio/x5/lcd-x5.c
+++ b/firmware/target/coldfire/iaudio/x5/lcd-x5.c
@@ -374,6 +374,7 @@ void lcd_init_device(void)
374#endif 374#endif
375} 375}
376 376
377#if defined(HAVE_LCD_ENABLE)
377void lcd_enable(bool on) 378void lcd_enable(bool on)
378{ 379{
379 if (on == display_on) 380 if (on == display_on)
@@ -392,12 +393,10 @@ void lcd_enable(bool on)
392 lcd_display_off(); 393 lcd_display_off();
393 } 394 }
394} 395}
396#endif
395 397
396bool lcd_active(void)
397{
398 return display_on;
399}
400 398
399#if defined(HAVE_LCD_SLEEP)
401void lcd_sleep(void) 400void lcd_sleep(void)
402{ 401{
403 if (power_on) 402 if (power_on)
@@ -407,7 +406,14 @@ void lcd_sleep(void)
407 /* BT2-0=000, DC2-0=000, AP2-0=000, SLP=0, STB=1 */ 406 /* BT2-0=000, DC2-0=000, AP2-0=000, SLP=0, STB=1 */
408 lcd_write_reg(R_POWER_CONTROL1, 0x0001); 407 lcd_write_reg(R_POWER_CONTROL1, 0x0001);
409} 408}
409#endif
410 410
411#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
412bool lcd_active(void)
413{
414 return display_on;
415}
416#endif
411/*** update functions ***/ 417/*** update functions ***/
412 418
413/* Line write helper function for lcd_yuv_blit. Write two lines of yuv420. 419/* Line write helper function for lcd_yuv_blit. Write two lines of yuv420.
diff --git a/firmware/target/mips/ingenic_jz47xx/lcd-target.h b/firmware/target/mips/ingenic_jz47xx/lcd-target.h
index e643608d56..95eecf7823 100644
--- a/firmware/target/mips/ingenic_jz47xx/lcd-target.h
+++ b/firmware/target/mips/ingenic_jz47xx/lcd-target.h
@@ -24,7 +24,7 @@
24#include <stdbool.h> 24#include <stdbool.h>
25 25
26void lcd_enable(bool state); 26void lcd_enable(bool state);
27bool lcd_enabled(void); 27bool lcd_active(void);
28void lcd_init_device(void); 28void lcd_init_device(void);
29 29
30 30
diff --git a/uisimulator/common/stubs.c b/uisimulator/common/stubs.c
index 78171ac82b..6fd3061133 100644
--- a/uisimulator/common/stubs.c
+++ b/uisimulator/common/stubs.c
@@ -202,7 +202,7 @@ bool headphones_inserted(void)
202} 202}
203#endif 203#endif
204 204
205#ifdef HAVE_LCD_ENABLE 205#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
206bool lcd_enabled(void) 206bool lcd_enabled(void)
207{ 207{
208 return true; 208 return true;