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
This commit is contained in:
Sebastian Leonhardt 2016-06-28 02:05:25 +02:00
parent 03e63da316
commit 287685932e
2 changed files with 8 additions and 0 deletions

View file

@ -499,6 +499,10 @@ static void backlight_update_state(void)
if (UNLIKELY(timeout < 0)) if (UNLIKELY(timeout < 0))
{ {
do_backlight_off(); do_backlight_off();
#if defined(HAVE_TRANSFLECTIVE_LCD) && defined(HAVE_LCD_SLEEP)
/* LCD must be enabled to allow "passive" operation (backlight always off) */
lcd_awake();
#endif
#if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_SETTING) \ #if (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_SETTING) \
|| (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG) || (CONFIG_BACKLIGHT_FADING == BACKLIGHT_FADING_SW_HW_REG)
/* necessary step to issue fading down when the setting is selected */ /* necessary step to issue fading down when the setting is selected */

View file

@ -64,6 +64,10 @@ void lcd_set_sleep_after_backlight_off(int timeout_seconds);
void lcd_awake(void); void lcd_awake(void);
#endif #endif
#ifdef HAVE_LCD_SLEEP
void lcd_awake(void);
#endif
#else /* !HAVE_BACKLIGHT */ #else /* !HAVE_BACKLIGHT */
#define backlight_init() #define backlight_init()
#endif /* !HAVE_BACKLIGHT */ #endif /* !HAVE_BACKLIGHT */