Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc5d04d8 authored by Mans Rullgard's avatar Mans Rullgard Committed by Miguel Ojeda
Browse files

auxdisplay: charlcd: make backlight initial state configurable



The charlcd driver currently flashes the backlight once on init.
This may not be desirable.  Thus, add options for turning the
backlight off or on as well.

Signed-off-by: default avatarMans Rullgard <mans@mansr.com>
Signed-off-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
parent c9171722
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -445,6 +445,27 @@ config PANEL_BOOT_MESSAGE
	  An empty message will only clear the display at driver init time. Any other
	  printf()-formatted message is valid with newline and escape codes.

choice
	prompt "Backlight initial state"
	default CHARLCD_BL_FLASH

	config CHARLCD_BL_OFF
		bool "Off"
		help
		  Backlight is initially turned off

	config CHARLCD_BL_ON
		bool "On"
		help
		  Backlight is initially turned on

	config CHARLCD_BL_FLASH
		bool "Flash"
		help
		  Backlight is flashed briefly on init

endchoice

endif # AUXDISPLAY

config PANEL
+9 −1
Original line number Diff line number Diff line
@@ -769,6 +769,14 @@ static void charlcd_puts(struct charlcd *lcd, const char *s)
#define LCD_INIT_TEXT "Linux-" UTS_RELEASE "\n"
#endif

#ifdef CONFIG_CHARLCD_BL_ON
#define LCD_INIT_BL "\x1b[L+"
#elif defined(CONFIG_CHARLCD_BL_FLASH)
#define LCD_INIT_BL "\x1b[L*"
#else
#define LCD_INIT_BL "\x1b[L-"
#endif

/* initialize the LCD driver */
static int charlcd_init(struct charlcd *lcd)
{
@@ -790,7 +798,7 @@ static int charlcd_init(struct charlcd *lcd)
		return ret;

	/* display a short message */
	charlcd_puts(lcd, "\x1b[Lc\x1b[Lb\x1b[L*" LCD_INIT_TEXT);
	charlcd_puts(lcd, "\x1b[Lc\x1b[Lb" LCD_INIT_BL LCD_INIT_TEXT);

	/* clear the display on the next device opening */
	priv->must_clear = true;