summaryrefslogtreecommitdiff
path: root/firmware/backlight.c
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 /firmware/backlight.c
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
Diffstat (limited to 'firmware/backlight.c')
-rw-r--r--firmware/backlight.c24
1 files changed, 17 insertions, 7 deletions
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