On Fri, Mar 1, 2019 at 9:14 PM Mans Rullgard <m...@mansr.com> wrote: > > 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: Mans Rullgard <m...@mansr.com> > --- > drivers/auxdisplay/Kconfig | 21 +++++++++++++++++++++ > drivers/auxdisplay/charlcd.c | 10 +++++++++- > 2 files changed, 30 insertions(+), 1 deletion(-) > > diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig > index 7d3fe27d6868..c52c738e554a 100644 > --- a/drivers/auxdisplay/Kconfig > +++ b/drivers/auxdisplay/Kconfig > @@ -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
LGTM, but I don't agree on this default. I would prefer either on or off, not flashing for sure. Though it seems the case before the patch... > + > + 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 > diff --git a/drivers/auxdisplay/charlcd.c b/drivers/auxdisplay/charlcd.c > index db0356dca2d7..ff8c53c082ff 100644 > --- a/drivers/auxdisplay/charlcd.c > +++ b/drivers/auxdisplay/charlcd.c > @@ -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 I would rather put here defined(_OFF)... > +#define LCD_INIT_BL "\x1b[L-" ...and do #else #define LCD_INIT_BL "" // or whatever stands for as-is > +#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; > -- > 2.20.1 > -- With Best Regards, Andy Shevchenko