From 4ed387d60313ac79fa7ac8b403bf3195f7c0c549 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Tue, 17 Mar 2009 03:36:36 +0000 Subject: 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 --- firmware/drivers/lcd-1bit-vert.c | 19 +++++++++++++++++++ firmware/export/config-creativezvm.h | 3 ++- firmware/export/config-e200v2.h | 3 ++- firmware/export/config-fuze.h | 3 ++- firmware/target/arm/as3525/sansa-clip/lcd-ssd1303.c | 16 ---------------- firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c | 8 ++++---- firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c | 9 ++++----- firmware/target/arm/ipod/video/lcd-video.c | 5 +++++ firmware/target/arm/iriver/h10/lcd-h10_20gb.c | 16 +++++++++++----- firmware/target/arm/s3c2440/gigabeat-fx/lcd-meg-fx.c | 6 ++++++ firmware/target/arm/sandisk/sansa-c200/lcd-c200.c | 6 +++++- firmware/target/arm/sandisk/sansa-e200/lcd-e200.c | 10 +++++----- firmware/target/arm/tms320dm320/mrobe-500/lcd-mr500.c | 2 +- firmware/target/coldfire/iaudio/x5/lcd-x5.c | 14 ++++++++++---- firmware/target/mips/ingenic_jz47xx/lcd-target.h | 2 +- uisimulator/common/stubs.c | 2 +- 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) #endif } +#ifdef MAIN_LCD +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) +static void (*lcd_activation_hook)(void) = NULL; + +void lcd_activation_set_hook(void (*func)(void)) +{ + lcd_activation_hook = func; +} + +void lcd_activation_call_hook(void) +{ + void (*func)(void) = lcd_activation_hook; + + if (func != NULL) + func(); +} +#endif +#endif + /*** parameter handling ***/ void 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 @@ #define LCD_PIXELFORMAT RGB565 /* rgb565 */ /* Define this if your LCD can be enabled/disabled */ -#define HAVE_LCD_ENABLE +/* Disabled until properly working +#define HAVE_LCD_ENABLE */ #define CONFIG_KEYPAD CREATIVEZVM_PAD #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 @@ #define HAVE_LCD_ENABLE /* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE - should be defined as well. */ + should be defined as well. #define HAVE_LCD_SLEEP #define HAVE_LCD_SLEEP_SETTING #endif + */ /* define this if you can flip your LCD */ #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 @@ #define HAVE_LCD_ENABLE /* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE - should be defined as well. */ + should be defined as well. #define HAVE_LCD_SLEEP #define HAVE_LCD_SLEEP_SETTING #endif +*/ /* define this if you can flip your LCD */ #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) } #ifdef HAVE_LCD_ENABLE -static void (*lcd_activation_hook)(void) = NULL; - -void lcd_activation_set_hook(void (*func)(void)) -{ - lcd_activation_hook = func; -} - -void lcd_activation_call_hook(void) -{ - void (*func)(void) = lcd_activation_hook; - - if (func != NULL) - func(); -} - - void lcd_enable(bool enable) { 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) _display_on(); } +#if defined(HAVE_LCD_ENABLE) void lcd_enable(bool on) { if(display_on!=on) @@ -337,16 +338,15 @@ void lcd_enable(bool on) } } } +#endif +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) bool lcd_active(void) { return display_on; } -void lcd_sleep(void) -{ - /* TODO */ -} +#endif /*** update functions ***/ 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) lcd_update(); } +#if defined(HAVE_LCD_ENABLE) void lcd_enable(bool on) { if (display_on == on) @@ -217,16 +218,14 @@ void lcd_enable(bool on) display_on = false; } } +#endif +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) bool lcd_active(void) { return display_on; } - -void lcd_sleep(void) -{ - /* TODO */ -} +#endif /*** update functions ***/ 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) mutex_unlock(&lcdstate_lock); } +bool lcd_active(void) +{ + return lcd_state.display; +} + #ifdef HAVE_LCD_SHUTDOWN void lcd_shutdown(void) { 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) lcd_write_reg(R_DISP_CONTROL, 0x0000); } +#if defined(HAVE_LCD_ENABLE) void lcd_enable(bool on) { if (on == display_on) @@ -370,12 +371,9 @@ void lcd_enable(bool on) lcd_display_off(); } } +#endif -bool lcd_active(void) -{ - return display_on; -} - +#ifdef HAVE_LCD_SLEEP void lcd_sleep(void) { if (power_on) @@ -385,6 +383,14 @@ void lcd_sleep(void) /* BT2-0=000, DC2-0=000, AP2-0=000, SLP=0, STB=1 */ lcd_write_reg(R_POWER_CONTROL1, 0x0001); } +#endif + +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) +bool lcd_active(void) +{ + return display_on; +} +#endif /*** update functions ***/ 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; extern void lcd_copy_buffer_rect(fb_data *dst, const fb_data *src, int width, int height); +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) bool lcd_active(void) { return lcd_on; } +#endif static unsigned int LCDBANK(unsigned int address) { @@ -278,6 +280,7 @@ void lcd_init_device(void) LCD_SPI_init(); } +#if defined(HAVE_LCD_SLEEP) void lcd_sleep(void) { if (lcd_powered) @@ -289,7 +292,9 @@ void lcd_sleep(void) LCD_SPI_powerdown(); } } +#endif +#if defined(HAVE_LCD_ENABLE) void lcd_enable(bool state) { if (state == lcd_on) @@ -315,6 +320,7 @@ void lcd_enable(bool state) lcd_on = false; } } +#endif void lcd_set_flip(bool yesno) { 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) (void)yesno; } +#if defined(HAVE_LCD_ENABLE) void lcd_enable(bool yesno) { if (yesno == is_lcd_enabled) @@ -206,11 +207,14 @@ void lcd_enable(bool yesno) lcd_send_command(R_STANDBY_ON); } } +#endif -bool lcd_enabled(void) +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) +bool lcd_active(void) { return is_lcd_enabled; } +#endif /* 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 @@ * KIND, either express or implied. * ****************************************************************************/ -#include "lcd.h" -#include "system.h" #include -#include "backlight-target.h" #include "cpu.h" +#include "system.h" +#include "backlight-target.h" +#include "lcd.h" /* Power and display status */ static bool power_on = false; /* Is the power turned on? */ @@ -427,7 +427,7 @@ void lcd_init_device(void) LCD_REG_6 |= 1; /* Start DMA */ } - +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) void lcd_enable(bool on) { if (on == display_on) @@ -455,7 +455,7 @@ bool lcd_active(void) { return display_on; } - +#endif void lcd_sleep(void) { 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; extern unsigned fg_pattern; extern unsigned bg_pattern; -bool lcd_enabled(void) +bool lcd_active(void) { return lcd_on; } 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) #endif } +#if defined(HAVE_LCD_ENABLE) void lcd_enable(bool on) { if (on == display_on) @@ -392,12 +393,10 @@ void lcd_enable(bool on) lcd_display_off(); } } +#endif -bool lcd_active(void) -{ - return display_on; -} +#if defined(HAVE_LCD_SLEEP) void lcd_sleep(void) { if (power_on) @@ -407,7 +406,14 @@ void lcd_sleep(void) /* BT2-0=000, DC2-0=000, AP2-0=000, SLP=0, STB=1 */ lcd_write_reg(R_POWER_CONTROL1, 0x0001); } +#endif +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) +bool lcd_active(void) +{ + return display_on; +} +#endif /*** update functions ***/ /* 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 @@ #include void lcd_enable(bool state); -bool lcd_enabled(void); +bool lcd_active(void); void lcd_init_device(void); 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) } #endif -#ifdef HAVE_LCD_ENABLE +#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) bool lcd_enabled(void) { return true; -- cgit v1.2.3