summaryrefslogtreecommitdiff
path: root/firmware/backlight.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-04-26 01:23:39 +0000
committerThomas Martitz <kugel@rockbox.org>2009-04-26 01:23:39 +0000
commit6abae1f124367a2936c91b651a360f21532705d1 (patch)
tree0d8ee65f85cac92f9ff9bf416845c9adb28754a6 /firmware/backlight.c
parentc40af94d128d90ba837d6b9c420a1f7fb1905f0d (diff)
downloadrockbox-6abae1f124367a2936c91b651a360f21532705d1.zip
rockbox-6abae1f124367a2936c91b651a360f21532705d1.tar.gz
rockbox-6abae1f124367a2936c91b651a360f21532705d1.tar.bz2
rockbox-6abae1f124367a2936c91b651a360f21532705d1.tar.xz
Remove the calls to backlight_lcd_sleep_countdown from target specific code and move it into backlight.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20793 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/backlight.c')
-rw-r--r--firmware/backlight.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c
index 7e7f745..07c55c6 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -210,7 +210,7 @@ static int lcd_sleep_timeout = 10*HZ;
static int lcd_sleep_timer SHAREDDATA_ATTR = 0;
-void backlight_lcd_sleep_countdown(bool start)
+static void backlight_lcd_sleep_countdown(bool start)
{
if (!start)
{
@@ -223,8 +223,8 @@ void backlight_lcd_sleep_countdown(bool start)
if (lcd_sleep_timeout < 0)
{
lcd_sleep_timer = 0; /* Setting == Always */
-#if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_PWM)
/* Ensure lcd_sleep() is called from backlight_thread() */
+#if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_PWM)
queue_post(&backlight_queue, LCD_SLEEP, 0);
#else
lcd_sleep();
@@ -504,11 +504,19 @@ static void backlight_update_state(void)
queue_post(&backlight_queue, SYS_TIMEOUT, 0);
#else
_backlight_off();
+#ifdef HAVE_LCD_SLEEP
+ backlight_lcd_sleep_countdown(true); /* start sleep countdown */
+#endif
#endif
}
else
{
backlight_timer = timeout;
+
+#ifdef HAVE_LCD_SLEEP
+ backlight_lcd_sleep_countdown(false); /* wake up lcd */
+#endif
+
#if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_SETTING) \
|| (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG)
backlight_setup_fade_up();
@@ -670,7 +678,15 @@ void backlight_thread(void)
if (backlight_fading_state != NOT_FADING)
{
if ((_backlight_fade_step(backlight_fading_state)))
- backlight_fading_state = NOT_FADING; /* finished fading */
+ { /* finished fading */
+#ifdef HAVE_LCD_SLEEP
+ if (backlight_fading_state == FADING_DOWN)
+ { /* start sleep countdown */
+ backlight_lcd_sleep_countdown(true);
+ }
+#endif
+ backlight_fading_state = NOT_FADING;
+ }
}
else
#endif /* CONFIG_BACKLIGHT_FADING */