From e2b0d7ef6e6f0c2ed635a44fd016eaef706a1bd3 Mon Sep 17 00:00:00 2001 From: Cis van Mierlo Date: Mon, 9 May 2022 12:04:35 +0200 Subject: [PATCH] LCD: Added existing FBIO_SETPOWER support to lcd_framebuffer.c --- drivers/lcd/lcd_framebuffer.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/drivers/lcd/lcd_framebuffer.c b/drivers/lcd/lcd_framebuffer.c index adb261d4009..bb78f550db6 100644 --- a/drivers/lcd/lcd_framebuffer.c +++ b/drivers/lcd/lcd_framebuffer.c @@ -105,6 +105,8 @@ static int lcdfb_setcursor(FAR struct fb_vtable_s *vtable, FAR struct fb_setcursor_s *settings); #endif +static int lcdfb_setpower(FAR struct fb_vtable_s *vtable, FAR int power); + /**************************************************************************** * Private Data ****************************************************************************/ @@ -436,6 +438,35 @@ static int lcdfb_setcursor(FAR struct fb_vtable_s *vtable, } #endif +/**************************************************************************** + * Name: lcdfb_setpower + ****************************************************************************/ + +static int lcdfb_setpower(FAR struct fb_vtable_s *vtable, FAR int power) +{ + int ret = -EINVAL; + FAR struct lcdfb_dev_s *priv; + FAR struct lcd_dev_s *lcd; + + DEBUGASSERT(vtable != NULL); + + priv = (FAR struct lcdfb_dev_s *)vtable; + + if (priv != NULL) + { + lcd = priv->lcd; + DEBUGASSERT(lcd->setpower != NULL); + + ret = lcd->setpower(lcd, power); + if (ret < 0) + { + lcderr("ERROR: LCD setpower() failed: %d\n", ret); + } + } + + return ret; +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -491,6 +522,7 @@ int up_fbinitialize(int display) priv->vtable.setcursor = lcdfb_setcursor, #endif priv->vtable.updatearea = lcdfb_updateearea, + priv->vtable.setpower = lcdfb_setpower, #ifdef CONFIG_LCD_EXTERNINIT /* Use external graphics driver initialization */