summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Leonhardt <sebastian.leonhardt@web.de>2016-06-28 02:05:25 +0200
committerSebastian Leonhardt <sebastian.leonhardt@web.de>2019-02-07 22:10:52 +0100
commit287685932e53849192020092bce7d7a21d9e2a71 (patch)
tree7d9c1f0cff0dbc0928735d7f7d678b804a0eb5e2
parent03e63da3165fa2ea02286a4497d2e9cf0bdc6ea6 (diff)
downloadrockbox-287685932e53849192020092bce7d7a21d9e2a71.tar.gz
rockbox-287685932e53849192020092bce7d7a21d9e2a71.zip
Fix lcd not waking up when backlight is always off
This patch is relevant for targets with a transflective display. If the backlight was set to "always off" (e.g. to use the lcd in a pure passive way), and the sleep timer ran off, the LCD would stay disabled and didn't wake up when a button is pressed. Change-Id: I0a157c7f421d9fc4c7d8ba903f2cf93f6cef51d0
-rw-r--r--firmware/backlight.c4
-rw-r--r--firmware/export/backlight.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/firmware/backlight.c b/firmware/backlight.c
index 3acc89c27c..caff55ce5e 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -499,6 +499,10 @@ static void backlight_update_state(void)
499 if (UNLIKELY(timeout < 0)) 499 if (UNLIKELY(timeout < 0))
500 { 500 {
501 do_backlight_off(); 501 do_backlight_off();
502#if defined(HAVE_TRANSFLECTIVE_LCD) && defined(HAVE_LCD_SLEEP)
503 /* LCD must be enabled to allow "passive" operation (backlight always off) */
504 lcd_awake();
505#endif
502#if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_SETTING) \ 506#if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_SETTING) \
503 || (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG) 507 || (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG)
504 /* necessary step to issue fading down when the setting is selected */ 508 /* necessary step to issue fading down when the setting is selected */
diff --git a/firmware/export/backlight.h b/firmware/export/backlight.h
index 6d029790b3..326de4ce28 100644
--- a/firmware/export/backlight.h
+++ b/firmware/export/backlight.h
@@ -64,6 +64,10 @@ void lcd_set_sleep_after_backlight_off(int timeout_seconds);
64void lcd_awake(void); 64void lcd_awake(void);
65#endif 65#endif
66 66
67#ifdef HAVE_LCD_SLEEP
68void lcd_awake(void);
69#endif
70
67#else /* !HAVE_BACKLIGHT */ 71#else /* !HAVE_BACKLIGHT */
68#define backlight_init() 72#define backlight_init()
69#endif /* !HAVE_BACKLIGHT */ 73#endif /* !HAVE_BACKLIGHT */