summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2007-01-12 20:26:23 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2007-01-12 20:26:23 +0000
commit73cd9f3b63718d1fe927e7ef4294ed902e8a1b73 (patch)
tree82fc91d5a47c267a8a5a1cdd20aa89b2cd65a079
parent0ea4d3197ed7e56f39c630741cb69152ac9e41de (diff)
downloadrockbox-73cd9f3b63718d1fe927e7ef4294ed902e8a1b73.zip
rockbox-73cd9f3b63718d1fe927e7ef4294ed902e8a1b73.tar.gz
rockbox-73cd9f3b63718d1fe927e7ef4294ed902e8a1b73.tar.bz2
rockbox-73cd9f3b63718d1fe927e7ef4294ed902e8a1b73.tar.xz
Turn backlight ON at boot unless bootloader has already done that.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11992 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/main.c4
-rw-r--r--firmware/backlight.c24
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c4
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/backlight-target.h2
-rw-r--r--firmware/target/coldfire/iaudio/x5/backlight-target.h2
-rw-r--r--firmware/target/coldfire/iaudio/x5/backlight-x5.c4
-rw-r--r--firmware/target/coldfire/iriver/backlight-target.h2
-rw-r--r--firmware/target/coldfire/iriver/h100/backlight-h100.c6
-rw-r--r--firmware/target/coldfire/iriver/h300/backlight-h300.c4
9 files changed, 35 insertions, 17 deletions
diff --git a/apps/main.c b/apps/main.c
index 4b0e98c..ccfc68f 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -306,6 +306,8 @@ static void init(void)
cpu_boost(true);
#endif
+ backlight_init();
+
buffer_init();
settings_reset();
@@ -347,8 +349,6 @@ static void init(void)
m5636_init();
#endif
- backlight_init();
-
button_init();
powermgmt_init();
diff --git a/firmware/backlight.c b/firmware/backlight.c
index 63bde6a..d621aa4 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -152,8 +152,8 @@ static int fade_in_count = 1;
static int fade_out_count = 4;
static bool bl_timer_active = false;
-static int bl_dim_current = BL_PWM_COUNT;
-static int bl_dim_target = BL_PWM_COUNT;
+static int bl_dim_current = 0;
+static int bl_dim_target = 0;
static int bl_pwm_counter = 0;
static volatile int bl_cycle_counter = 0;
static enum {DIM_STATE_START, DIM_STATE_MAIN} bl_dim_state = DIM_STATE_START;
@@ -556,17 +556,21 @@ static void backlight_tick(void)
void backlight_init(void)
{
queue_init(&backlight_queue, true);
- create_thread(backlight_thread, backlight_stack,
- sizeof(backlight_stack), backlight_thread_name
- IF_PRIO(, PRIORITY_SYSTEM));
- tick_add_task(backlight_tick);
+
#ifdef SIMULATOR
/* do nothing */
#elif defined(__BACKLIGHT_INIT)
/* Remove the __BACKLIGHT_INIT references when __backlight_init is
available on all backlighted targets. Take them out of the
backlight-target.h files as well */
- __backlight_init();
+ if (__backlight_init())
+ {
+# if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
+ /* If backlight is already on, don't fade in. */
+ bl_dim_current = BL_PWM_COUNT;
+ bl_dim_target = BL_PWM_COUNT;
+# endif
+ }
#elif CONFIG_BACKLIGHT == BL_PA14_LO || CONFIG_BACKLIGHT == BL_PA14_HI
PACR1 &= ~0x3000; /* Set PA14 (backlight control) to GPIO */
or_b(0x40, &PAIORH); /* ..and output */
@@ -575,6 +579,11 @@ void backlight_init(void)
#ifdef HAVE_REMOTE_LCD
remote_backlight_on();
#endif
+
+ create_thread(backlight_thread, backlight_stack,
+ sizeof(backlight_stack), backlight_thread_name
+ IF_PRIO(, PRIORITY_SYSTEM));
+ tick_add_task(backlight_tick);
}
#ifdef X5_BACKLIGHT_SHUTDOWN
@@ -803,6 +812,7 @@ void backlight_init(void)
{
#ifdef __BACKLIGHT_INIT
__backlight_init();
+ __backlight_on();
#endif
}
#endif
diff --git a/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c
index 5b32c98..f6a8d31 100644
--- a/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c
+++ b/firmware/target/arm/gigabeat/meg-fx/backlight-meg-fx.c
@@ -113,7 +113,7 @@ unsigned char charging_leds[] = { 0x00, 0x20, 0x38, 0x3C };
-void __backlight_init(void)
+bool __backlight_init(void)
{
backlight_control = BACKLIGHT_CONTROL_IDLE;
@@ -127,6 +127,8 @@ void __backlight_init(void)
initial_tick_delay = 2000;
/* put the led control on the tick list */
tick_add_task(led_control_service);
+
+ return true;
}
diff --git a/firmware/target/arm/gigabeat/meg-fx/backlight-target.h b/firmware/target/arm/gigabeat/meg-fx/backlight-target.h
index 781fb96..5f92cee 100644
--- a/firmware/target/arm/gigabeat/meg-fx/backlight-target.h
+++ b/firmware/target/arm/gigabeat/meg-fx/backlight-target.h
@@ -76,7 +76,7 @@ void __buttonlight_mode(enum buttonlight_mode mode,
unsigned short brightness);
-void __backlight_init(void);
+bool __backlight_init(void);
void __backlight_on(void);
void __backlight_off(void);
void __backlight_set_brightness(int val);
diff --git a/firmware/target/coldfire/iaudio/x5/backlight-target.h b/firmware/target/coldfire/iaudio/x5/backlight-target.h
index e6feb8b..e70bea0 100644
--- a/firmware/target/coldfire/iaudio/x5/backlight-target.h
+++ b/firmware/target/coldfire/iaudio/x5/backlight-target.h
@@ -20,7 +20,7 @@
#define BACKLIGHT_TARGET_H
#define __BACKLIGHT_INIT
-void __backlight_init(void);
+bool __backlight_init(void);
void __backlight_on(void);
void __backlight_off(void);
void __backlight_set_brightness(int val);
diff --git a/firmware/target/coldfire/iaudio/x5/backlight-x5.c b/firmware/target/coldfire/iaudio/x5/backlight-x5.c
index 9b50993..a2682ff 100644
--- a/firmware/target/coldfire/iaudio/x5/backlight-x5.c
+++ b/firmware/target/coldfire/iaudio/x5/backlight-x5.c
@@ -24,10 +24,12 @@
#include "pcf50606.h"
#include "lcd.h"
-void __backlight_init(void)
+bool __backlight_init(void)
{
__backlight_set_brightness(DEFAULT_BRIGHTNESS_SETTING);
__backlight_on();
+
+ return true; /* Backlight always ON after boot. */
}
void __backlight_on(void)
diff --git a/firmware/target/coldfire/iriver/backlight-target.h b/firmware/target/coldfire/iriver/backlight-target.h
index ac146ea..e653fa1 100644
--- a/firmware/target/coldfire/iriver/backlight-target.h
+++ b/firmware/target/coldfire/iriver/backlight-target.h
@@ -20,7 +20,7 @@
#define BACKLIGHT_TARGET_H
#define __BACKLIGHT_INIT
-void __backlight_init(void);
+bool __backlight_init(void); /* Returns backlight current state (true=ON). */
void __backlight_on(void);
void __backlight_off(void);
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
diff --git a/firmware/target/coldfire/iriver/h100/backlight-h100.c b/firmware/target/coldfire/iriver/h100/backlight-h100.c
index 62c24dc..7cff965 100644
--- a/firmware/target/coldfire/iriver/h100/backlight-h100.c
+++ b/firmware/target/coldfire/iriver/h100/backlight-h100.c
@@ -24,11 +24,13 @@
#include "backlight.h"
#include "lcd.h"
-void __backlight_init(void)
+/* Returns the current state of the backlight (true=ON, false=OFF). */
+bool __backlight_init(void)
{
or_l(0x00020000, &GPIO1_ENABLE);
or_l(0x00020000, &GPIO1_FUNCTION);
- and_l(~0x00020000, &GPIO1_OUT); /* Start with the backlight ON */
+
+ return (GPIO1_OUT & 0x00020000) ? false : true;
}
void __backlight_on(void)
diff --git a/firmware/target/coldfire/iriver/h300/backlight-h300.c b/firmware/target/coldfire/iriver/h300/backlight-h300.c
index ef1d6d3..4cec54f 100644
--- a/firmware/target/coldfire/iriver/h300/backlight-h300.c
+++ b/firmware/target/coldfire/iriver/h300/backlight-h300.c
@@ -25,11 +25,13 @@
#include "pcf50606.h"
#include "lcd.h"
-void __backlight_init(void)
+bool __backlight_init(void)
{
or_l(0x00020000, &GPIO1_ENABLE);
or_l(0x00020000, &GPIO1_FUNCTION);
or_l(0x00020000, &GPIO1_OUT); /* Start with the backlight ON */
+
+ return true; /* Backlight always ON after boot. */
}
void __backlight_on(void)