display: Move functions related to display status(on/off/dim/standby) 22/288722/15
authorYunhee Seo <yuni.seo@samsung.com>
Wed, 22 Feb 2023 05:52:18 +0000 (14:52 +0900)
committeryunhee <yuni.seo@samsung.com>
Mon, 20 Mar 2023 07:58:49 +0000 (16:58 +0900)
from plugin to core display module

Remove and redefine display status change functions.
These functions are added below display-panel/display-backlight.

int display_panel_set_panel_state_by_on_state(enum device_flags flags)
int display_panel_set_panel_state_by_off_state(enum device_flags flags)
int display_panel_set_panel_state_by_standby_state(bool standby_on)
int display_backlight_set_brightness_by_dim_brightness(void)
-> With these functions, it is possible to change display panel/backlight status.

Change-Id: I4313046c610410ccef82ac18fda1e334960330b1
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
16 files changed:
plugins/iot-headed/display/core.c
plugins/iot-headed/display/device-interface.c
plugins/mobile/display/core.c
plugins/mobile/display/device-interface.c
plugins/tv/display/core.c
plugins/tv/display/device-interface.c
plugins/wearable/display/auto-brightness-sensorhub.c
plugins/wearable/display/core.c
plugins/wearable/display/device-interface.c
src/display/ambient-mode.c
src/display/device-interface.h
src/display/display-backlight.c
src/display/display-backlight.h
src/display/display-dbus.c
src/display/display-panel.c
src/display/display-panel.h

index e894b2a..056371b 100644 (file)
@@ -64,6 +64,7 @@
 #include "display-signal.h"
 #include "display-lock.h"
 #include "display-backlight.h"
+#include "display-panel.h"
 #include "shared/plugin.h"
 
 #define DISPLAY_CONF_FILE    "/etc/deviced/display.conf"
@@ -338,7 +339,7 @@ void lcd_on_procedure(int state, enum device_flags flag)
        if (!(flags & LCD_PHASED_TRANSIT_MODE)) {
                /* Update brightness level */
                if (state == LCD_DIM)
-                       backlight_ops->dim();
+                       display_backlight_set_brightness_by_dim_brightness();
                else if (state == LCD_NORMAL)
                        backlight_ops->update();
        }
@@ -1435,7 +1436,7 @@ static int default_action(int timeout)
                    backlight_ops->get_custom_status())
                        backlight_ops->save_custom_brightness();
                /* lcd dim state : dim the brightness */
-               backlight_ops->dim();
+               display_backlight_set_brightness_by_dim_brightness();
 
                if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP))
                        lcd_on_procedure(LCD_DIM, NORMAL_MODE);
@@ -2005,8 +2006,8 @@ static void esd_action(void)
 
        if (!check_default(touchscreen_ops))
                touchscreen_ops->stop(NORMAL_MODE);
-       backlight_ops->off(NORMAL_MODE);
-       backlight_ops->on(NORMAL_MODE);
+       display_panel_set_panel_state_by_off_state(NORMAL_MODE);
+       display_panel_set_panel_state_by_on_state(NORMAL_MODE);
        if (!check_default(touchscreen_ops))
                touchscreen_ops->start(NORMAL_MODE);
 }
@@ -2224,10 +2225,10 @@ static int display_start(enum device_flags flags)
        if (flags & NORMAL_MODE) {
                if (flags & LCD_PANEL_OFF_MODE)
                        /* standby on */
-                       backlight_ops->standby(true);
+                       display_panel_set_panel_state_by_standby_state(true);
                else
                        /* normal lcd on */
-                       backlight_ops->on(flags);
+                       display_panel_set_panel_state_by_on_state(flags);
 
                return 0;
        }
@@ -2251,7 +2252,7 @@ static int display_stop(enum device_flags flags)
 {
        /* NORMAL MODE */
        if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) {
-               backlight_ops->off(flags);
+               display_panel_set_panel_state_by_off_state(flags);
                return 0;
        }
 
index 777b27f..d2fe1ba 100644 (file)
@@ -51,9 +51,7 @@
 #define TOUCH_ON       1
 #define TOUCH_OFF      0
 
-#define LCD_PHASED_MIN_BRIGHTNESS      1
 #define LCD_PHASED_MAX_BRIGHTNESS      100
-#define LCD_PHASED_CHANGE_STEP         5
 #define LCD_PHASED_DELAY               10000   /* microsecond */
 #define DUMP_MODE_WAITING_TIME         600000  /* milisecond */
 
@@ -203,70 +201,6 @@ static void change_brightness(int start, int end, int step)
        }
 }
 
-static int backlight_on(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt;
-
-       _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt);
-
-       cnt++;
-       ret = display_panel_set_dpms_state(DPMS_ON, flags);
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_off(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt, ambient_cnt;
-       int default_brightness = 0;
-
-       display_backlight_get_default_brightness(&default_brightness);
-
-       if (flags & AMBIENT_MODE) {
-               _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt);
-               ambient_cnt++;
-
-               return 0;
-       }
-
-       _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt);
-       cnt++;
-
-       if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops.transit_brt(default_brightness,
-                   LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP);
-
-       if (flags & FORCE_OFF_MODE)
-               ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags);
-       else
-               ret = display_panel_set_dpms_state(DPMS_OFF, flags);
-
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_dim(void)
-{
-       int ret;
-
-       ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS);
-#ifdef ENABLE_PM_LOG
-       if (!ret)
-               pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state());
-       else
-               pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state());
-#endif
-       return ret;
-}
-
 static int set_custom_status(bool on)
 {
        custom_status = on;
@@ -298,7 +232,7 @@ static int custom_backlight_update(void)
                return -EINVAL;
 
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                _I("custom brightness restored! %d", custom_brightness);
                ret = backlight_ops.set_brightness(custom_brightness);
@@ -327,7 +261,7 @@ static int backlight_update(void)
                return 0;
        }
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                display_backlight_get_default_brightness(&brt);
                ret = backlight_ops.set_brightness(brt);
@@ -335,18 +269,6 @@ static int backlight_update(void)
        return ret;
 }
 
-static int backlight_standby(int force)
-{
-       int ret = -1;
-
-       if ((dpms_get_cached_state() == DPMS_ON) || force) {
-               _I("LCD standby");
-               ret = display_panel_set_dpms_state(DPMS_STANDBY, 0);
-       }
-
-       return ret;
-}
-
 static int set_brightness(int val)
 {
        int max, ret;
@@ -538,11 +460,7 @@ static void restore_brightness_func(void)
 }
 
 static struct _backlight_ops backlight_ops = {
-       .off = backlight_off,
-       .dim = backlight_dim,
-       .on = backlight_on,
        .update = backlight_update,
-       .standby = backlight_standby,
        .get_lcd_power = dpms_get_cached_state,
        .get_lcd_power_node = get_lcd_power_node,
        .set_custom_status = set_custom_status,
index 007ecec..9e2fae7 100644 (file)
@@ -65,6 +65,7 @@
 #include "display-signal.h"
 #include "display-lock.h"
 #include "display-backlight.h"
+#include "display-panel.h"
 #include "shared/plugin.h"
 
 #define DISPLAY_CONF_FILE    "/etc/deviced/display.conf"
@@ -345,7 +346,7 @@ void lcd_on_procedure(int state, enum device_flags flag)
        if (!(flags & LCD_PHASED_TRANSIT_MODE)) {
                /* Update brightness level */
                if (state == LCD_DIM)
-                       backlight_ops->dim();
+                       display_backlight_set_brightness_by_dim_brightness();
                else if (state == LCD_NORMAL)
                        backlight_ops->update();
        }
@@ -1445,7 +1446,7 @@ static int default_action(int timeout)
                    backlight_ops->get_custom_status())
                        backlight_ops->save_custom_brightness();
                /* lcd dim state : dim the brightness */
-               backlight_ops->dim();
+               display_backlight_set_brightness_by_dim_brightness();
 
                if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP))
                        lcd_on_procedure(LCD_DIM, NORMAL_MODE);
@@ -2011,8 +2012,8 @@ static void esd_action(void)
 
        if (!check_default(touchscreen_ops))
                touchscreen_ops->stop(NORMAL_MODE);
-       backlight_ops->off(NORMAL_MODE);
-       backlight_ops->on(NORMAL_MODE);
+       display_panel_set_panel_state_by_off_state(NORMAL_MODE);
+       display_panel_set_panel_state_by_on_state(NORMAL_MODE);
        if (!check_default(touchscreen_ops))
                touchscreen_ops->start(NORMAL_MODE);
 }
@@ -2233,10 +2234,10 @@ static int display_start(enum device_flags flags)
        if (flags & NORMAL_MODE) {
                if (flags & LCD_PANEL_OFF_MODE)
                        /* standby on */
-                       backlight_ops->standby(true);
+                       display_panel_set_panel_state_by_standby_state(true);
                else
                        /* normal lcd on */
-                       backlight_ops->on(flags);
+                       display_panel_set_panel_state_by_on_state(flags);
                FIND_DISPLAY(enhance_ops, "enhance");
                if (enhance_ops && enhance_ops->func)
                        enhance_ops->func(RESTORE_ENHANCE_OUTDOOR, &on);
@@ -2262,7 +2263,7 @@ static int display_stop(enum device_flags flags)
 {
        /* NORMAL MODE */
        if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) {
-               backlight_ops->off(flags);
+               display_panel_set_panel_state_by_off_state(flags);
                return 0;
        }
 
index eb4dc95..9cc68ae 100644 (file)
@@ -52,9 +52,7 @@
 #define TOUCH_ON       1
 #define TOUCH_OFF      0
 
-#define LCD_PHASED_MIN_BRIGHTNESS      1
 #define LCD_PHASED_MAX_BRIGHTNESS      100
-#define LCD_PHASED_CHANGE_STEP         5
 #define LCD_PHASED_DELAY               10000   /* microsecond */
 #define DUMP_MODE_WAITING_TIME         600000  /* milisecond */
 
@@ -202,70 +200,6 @@ static void change_brightness(int start, int end, int step)
        }
 }
 
-static int backlight_on(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt;
-
-       _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt);
-
-       cnt++;
-       ret = display_panel_set_dpms_state(DPMS_ON, flags);
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_off(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt, ambient_cnt;
-       int default_brightness = 0;
-
-       display_backlight_get_default_brightness(&default_brightness);
-
-       if (flags & AMBIENT_MODE) {
-               _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt);
-               ambient_cnt++;
-
-               return 0;
-       }
-
-       _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt);
-       cnt++;
-
-       if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops.transit_brt(default_brightness,
-                   LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP);
-
-       if (flags & FORCE_OFF_MODE)
-               ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags);
-       else
-               ret = display_panel_set_dpms_state(DPMS_OFF, flags);
-
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_dim(void)
-{
-       int ret;
-
-       ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS);
-#ifdef ENABLE_PM_LOG
-       if (!ret)
-               pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state());
-       else
-               pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state());
-#endif
-       return ret;
-}
-
 static int set_custom_status(bool on)
 {
        custom_status = on;
@@ -297,7 +231,7 @@ static int custom_backlight_update(void)
                return -EINVAL;
 
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                _I("custom brightness restored! %d", custom_brightness);
                ret = backlight_ops.set_brightness(custom_brightness);
@@ -326,7 +260,7 @@ static int backlight_update(void)
                return 0;
        }
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                display_backlight_get_default_brightness(&brt);
                ret = backlight_ops.set_brightness(brt);
@@ -334,18 +268,6 @@ static int backlight_update(void)
        return ret;
 }
 
-static int backlight_standby(int force)
-{
-       int ret = -1;
-
-       if ((dpms_get_cached_state() == DPMS_ON) || force) {
-               _I("LCD standby");
-               ret = display_panel_set_dpms_state(DPMS_STANDBY, 0);
-       }
-
-       return ret;
-}
-
 static int set_brightness(int val)
 {
        int max, ret;
@@ -537,11 +459,7 @@ static void restore_brightness_func(void)
 }
 
 static struct _backlight_ops backlight_ops = {
-       .off = backlight_off,
-       .dim = backlight_dim,
-       .on = backlight_on,
        .update = backlight_update,
-       .standby = backlight_standby,
        .get_lcd_power = dpms_get_cached_state,
        .get_lcd_power_node = get_lcd_power_node,
        .set_custom_status = set_custom_status,
index 99393dd..a489846 100644 (file)
@@ -63,6 +63,7 @@
 #include "display-signal.h"
 #include "display-lock.h"
 #include "display-backlight.h"
+#include "display-panel.h"
 #include "shared/plugin.h"
 
 #define DISPLAY_CONF_FILE    "/etc/deviced/display.conf"
@@ -338,7 +339,7 @@ void lcd_on_procedure(int state, enum device_flags flag)
        if (!(flags & LCD_PHASED_TRANSIT_MODE)) {
                /* Update brightness level */
                if (state == LCD_DIM)
-                       backlight_ops->dim();
+                       display_backlight_set_brightness_by_dim_brightness();
                else if (state == LCD_NORMAL)
                        backlight_ops->update();
        }
@@ -1435,7 +1436,7 @@ static int default_action(int timeout)
                    backlight_ops->get_custom_status())
                        backlight_ops->save_custom_brightness();
                /* lcd dim state : dim the brightness */
-               backlight_ops->dim();
+               display_backlight_set_brightness_by_dim_brightness();
 
                if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP))
                        lcd_on_procedure(LCD_DIM, NORMAL_MODE);
@@ -2002,8 +2003,8 @@ static void esd_action(void)
 
        if (!check_default(touchscreen_ops))
                touchscreen_ops->stop(NORMAL_MODE);
-       backlight_ops->off(NORMAL_MODE);
-       backlight_ops->on(NORMAL_MODE);
+       display_panel_set_panel_state_by_off_state(NORMAL_MODE);
+       display_panel_set_panel_state_by_on_state(NORMAL_MODE);
        if (!check_default(touchscreen_ops))
                touchscreen_ops->start(NORMAL_MODE);
 }
@@ -2221,10 +2222,10 @@ static int display_start(enum device_flags flags)
        if (flags & NORMAL_MODE) {
                if (flags & LCD_PANEL_OFF_MODE)
                        /* standby on */
-                       backlight_ops->standby(true);
+                       display_panel_set_panel_state_by_standby_state(true);
                else
                        /* normal lcd on */
-                       backlight_ops->on(flags);
+                       display_panel_set_panel_state_by_on_state(flags);
 
                return 0;
        }
@@ -2248,7 +2249,7 @@ static int display_stop(enum device_flags flags)
 {
        /* NORMAL MODE */
        if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) {
-               backlight_ops->off(flags);
+               display_panel_set_panel_state_by_off_state(flags);
                return 0;
        }
 
index 768575b..e3952a7 100644 (file)
@@ -51,9 +51,7 @@
 #define TOUCH_ON       1
 #define TOUCH_OFF      0
 
-#define LCD_PHASED_MIN_BRIGHTNESS      1
 #define LCD_PHASED_MAX_BRIGHTNESS      100
-#define LCD_PHASED_CHANGE_STEP         5
 #define LCD_PHASED_DELAY               10000   /* microsecond */
 #define DUMP_MODE_WAITING_TIME         600000  /* milisecond */
 
@@ -203,70 +201,6 @@ static void change_brightness(int start, int end, int step)
        }
 }
 
-static int backlight_on(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt;
-
-       _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt);
-
-       cnt++;
-       ret = display_panel_set_dpms_state(DPMS_ON, flags);
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_off(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt, ambient_cnt;
-       int default_brightness = 0;
-
-       display_backlight_get_default_brightness(&default_brightness);
-
-       if (flags & AMBIENT_MODE) {
-               _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt);
-               ambient_cnt++;
-
-               return 0;
-       }
-
-       _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt);
-       cnt++;
-
-       if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops.transit_brt(default_brightness,
-                   LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP);
-
-       if (flags & FORCE_OFF_MODE)
-               ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags);
-       else
-               ret = display_panel_set_dpms_state(DPMS_OFF, flags);
-
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_dim(void)
-{
-       int ret;
-
-       ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS);
-#ifdef ENABLE_PM_LOG
-       if (!ret)
-               pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state());
-       else
-               pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state());
-#endif
-       return ret;
-}
-
 static int set_custom_status(bool on)
 {
        custom_status = on;
@@ -298,7 +232,7 @@ static int custom_backlight_update(void)
                return -EINVAL;
 
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                _I("custom brightness restored! %d", custom_brightness);
                ret = backlight_ops.set_brightness(custom_brightness);
@@ -327,7 +261,7 @@ static int backlight_update(void)
                return 0;
        }
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                display_backlight_get_default_brightness(&brt);
                ret = backlight_ops.set_brightness(brt);
@@ -335,18 +269,6 @@ static int backlight_update(void)
        return ret;
 }
 
-static int backlight_standby(int force)
-{
-       int ret = -1;
-
-       if ((dpms_get_cached_state() == DPMS_ON) || force) {
-               _I("LCD standby");
-               ret = display_panel_set_dpms_state(DPMS_STANDBY, 0);
-       }
-
-       return ret;
-}
-
 static int set_brightness(int val)
 {
        int max, ret;
@@ -538,11 +460,7 @@ static void restore_brightness_func(void)
 }
 
 static struct _backlight_ops backlight_ops = {
-       .off = backlight_off,
-       .dim = backlight_dim,
-       .on = backlight_on,
        .update = backlight_update,
-       .standby = backlight_standby,
        .get_lcd_power = dpms_get_cached_state,
        .get_lcd_power_node = get_lcd_power_node,
        .set_custom_status = set_custom_status,
index 451072b..a2ae6db 100644 (file)
@@ -232,7 +232,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes
        } else if (request == BR_LOWDIM_ON) {
                if (!lowdim) {
                        if (!hbm && !hold_brt && (get_pm_cur_state() == S_NORMAL))
-                               backlight_ops->dim();
+                               display_backlight_set_brightness_by_dim_brightness();
                        change_flag(&lowdim, 1);
                }
        } else if (request == BR_LBM_OFF) {
@@ -248,7 +248,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes
                                change_brightness_transit(lbm_down_brt(default_brightness), default_brightness);
                                backlight_ops->set_brightness(default_brightness);
                        } else {
-                               backlight_ops->dim();
+                               display_backlight_set_brightness_by_dim_brightness();
                        }
                } else if (lbm && hold_brt) {
                        change_flag(&lbm, 0);
@@ -273,7 +273,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes
                        if (!lowdim)
                                backlight_ops->set_brightness(default_brightness);
                        else
-                               backlight_ops->dim();
+                               display_backlight_set_brightness_by_dim_brightness();
                } else if (lbm && hold_brt) {
                        change_flag(&hold_brt, 0);
                        if (!lowdim) {
index 8fa7d4f..59cc552 100644 (file)
@@ -66,6 +66,7 @@
 #include "display/display-signal.h"
 #include "display-lock.h"
 #include "display-backlight.h"
+#include "display-panel.h"
 #include "shared/plugin.h"
 
 #define DISPLAY_CONF_FILE    "/etc/deviced/display.conf"
@@ -556,7 +557,7 @@ void lcd_on_procedure(int state, enum device_flags flag)
        if (!(flags & LCD_PHASED_TRANSIT_MODE)) {
                /* Update brightness level */
                if (state == LCD_DIM)
-                       backlight_ops->dim();
+                       display_backlight_set_brightness_by_dim_brightness();
                else if (state == LCD_NORMAL)
                        backlight_ops->update();
        }
@@ -1706,7 +1707,7 @@ static int default_action(int timeout)
                    backlight_ops->get_custom_status())
                        backlight_ops->save_custom_brightness();
                /* lcd dim state : dim the brightness */
-               backlight_ops->dim();
+               display_backlight_set_brightness_by_dim_brightness();
 
                if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP))
                        lcd_on_procedure(LCD_DIM, NORMAL_MODE);
@@ -2289,8 +2290,8 @@ static void esd_action(void)
 
        if (!check_default(touchscreen_ops))
                touchscreen_ops->stop(NORMAL_MODE);
-       backlight_ops->off(NORMAL_MODE);
-       backlight_ops->on(NORMAL_MODE);
+       display_panel_set_panel_state_by_off_state(NORMAL_MODE);
+       display_panel_set_panel_state_by_on_state(NORMAL_MODE);
        if (!check_default(touchscreen_ops))
                touchscreen_ops->start(NORMAL_MODE);
 }
@@ -2550,10 +2551,10 @@ static int display_start(enum device_flags flags)
        if (flags & NORMAL_MODE) {
                if (flags & LCD_PANEL_OFF_MODE)
                        /* standby on */
-                       backlight_ops->standby(true);
+                       display_panel_set_panel_state_by_standby_state(true);
                else
                        /* normal lcd on */
-                       backlight_ops->on(flags);
+                       display_panel_set_panel_state_by_on_state(flags);
                FIND_DISPLAY(enhance_ops, "enhance");
                if (enhance_ops && enhance_ops->func)
                        enhance_ops->func(RESTORE_ENHANCE_OUTDOOR, &on);
@@ -2579,7 +2580,7 @@ static int display_stop(enum device_flags flags)
 {
        /* NORMAL MODE */
        if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) {
-               backlight_ops->off(flags);
+               display_panel_set_panel_state_by_off_state(flags);
                return 0;
        }
 
index 779d8c6..0fbab8d 100644 (file)
@@ -54,9 +54,7 @@
 #define TOUCH_ON       1
 #define TOUCH_OFF      0
 
-#define LCD_PHASED_MIN_BRIGHTNESS      1
 #define LCD_PHASED_MAX_BRIGHTNESS      100
-#define LCD_PHASED_CHANGE_STEP         5
 #define LCD_PHASED_DELAY               10000   /* microsecond */
 #define DUMP_MODE_WAITING_TIME         600000  /* milisecond */
 
@@ -214,70 +212,6 @@ static void change_brightness(int start, int end, int step)
        }
 }
 
-static int backlight_on(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt;
-
-       _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt);
-
-       cnt++;
-       ret = display_panel_set_dpms_state(DPMS_ON, flags);
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_off(enum device_flags flags)
-{
-       int ret = -1;
-       static int cnt, ambient_cnt;
-       int default_brightness = 0;
-
-       display_backlight_get_default_brightness(&default_brightness);
-
-       if (flags & AMBIENT_MODE) {
-               _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt);
-               ambient_cnt++;
-
-               return 0;
-       }
-
-       _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt);
-       cnt++;
-
-       if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops.transit_brt(default_brightness,
-                   LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP);
-
-       if (flags & FORCE_OFF_MODE)
-               ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags);
-       else
-               ret = display_panel_set_dpms_state(DPMS_OFF, flags);
-
-#ifdef ENABLE_PM_LOG
-       pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state());
-#endif
-
-       return ret;
-}
-
-static int backlight_dim(void)
-{
-       int ret;
-
-       ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS);
-#ifdef ENABLE_PM_LOG
-       if (!ret)
-               pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state());
-       else
-               pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state());
-#endif
-       return ret;
-}
-
 static int set_custom_status(bool on)
 {
        custom_status = on;
@@ -309,7 +243,7 @@ static int custom_backlight_update(void)
                return -EINVAL;
 
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                _I("custom brightness restored! %d", custom_brightness);
                ret = backlight_ops.set_brightness(custom_brightness);
@@ -338,7 +272,7 @@ static int backlight_update(void)
                return 0;
        }
        if (display_dimstay_check())
-               ret = backlight_dim();
+               ret = display_backlight_set_brightness_by_dim_brightness();
        else {
                display_backlight_get_default_brightness(&brt);
                ret = backlight_ops.set_brightness(brt);
@@ -346,18 +280,6 @@ static int backlight_update(void)
        return ret;
 }
 
-static int backlight_standby(int force)
-{
-       int ret = -1;
-
-       if ((dpms_get_cached_state() == DPMS_ON) || force) {
-               _I("LCD standby");
-               ret = display_panel_set_dpms_state(DPMS_STANDBY, 0);
-       }
-
-       return ret;
-}
-
 static int set_brightness(int val)
 {
        int max, ret;
@@ -603,11 +525,7 @@ static void restore_brightness_func(void)
 }
 
 static struct _backlight_ops backlight_ops = {
-       .off = backlight_off,
-       .dim = backlight_dim,
-       .on = backlight_on,
        .update = backlight_update,
-       .standby = backlight_standby,
        .get_lcd_power = dpms_get_cached_state,
        .get_lcd_power_node = get_lcd_power_node,
        .set_custom_status = set_custom_status,
index 6615309..0a91396 100644 (file)
@@ -25,6 +25,7 @@
 #include "core.h"
 #include "display.h"
 #include "display-ops.h"
+#include "display-panel.h"
 #include "shared/device-notifier.h"
 #include "shared/devices.h"
 #include "shared/plugin.h"
@@ -182,7 +183,7 @@ static void ambient_end_clock(pid_t pid)
        if (update_count == 0) {
                _D("lcd off");
 
-               backlight_ops->off(NORMAL_MODE);
+               display_panel_set_panel_state_by_off_state(NORMAL_MODE);
                broadcast_lcd_off_late(LCD_OFF_LATE_MODE);
                if (disp_plgn->pm_unlock_internal)
                        disp_plgn->pm_unlock_internal(INTERNAL_LOCK_AMBIENT, LCD_OFF, PM_SLEEP_MARGIN);
index 7461394..4ae9033 100644 (file)
@@ -61,11 +61,7 @@ int display_service_load(void);
 int display_service_free(void);
 
 struct _backlight_ops {
-       int (*off)(enum device_flags);
-       int (*dim)(void);
-       int (*on)(enum device_flags);
        int (*update)(void);
-       int (*standby)(int);
        int (*get_lcd_power)(void);
        int (*get_lcd_power_node)(void);
        int (*set_custom_status)(bool on);
index d6f78fb..bceb279 100644 (file)
@@ -26,6 +26,7 @@
 #include "display-dpms.h"
 
 static const struct display_config *display_conf;
+static struct _backlight_ops *backlight_ops;
 
 static int default_brightness;
 
@@ -116,9 +117,30 @@ int display_backlight_get_default_brightness(int *brightness)
        return 0;
 }
 
+int display_backlight_set_brightness_by_dim_brightness(void)
+{
+       int ret = 0;
+
+       ret = backlight_ops->set_brightness(PM_DIM_BRIGHTNESS);
+
+#ifdef ENABLE_PM_LOG
+       if (!ret)
+               pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state());
+       else
+               pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state());
+#endif
+       return ret;
+}
+
+/* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/
 static void __CONSTRUCTOR__ initialize(void)
 {
        display_conf = get_var_display_config();
        if (!display_conf)
                _W("Failed to get display configuration variable.");
+
+       backlight_ops = get_var_backlight_ops();
+       if (!backlight_ops)
+               _W("Failed to get backlight operator variable.");
+
 }
\ No newline at end of file
index afe21ff..326aa94 100644 (file)
@@ -24,5 +24,6 @@ int display_backlight_get_normalized_brightness(int raw_brightness,
                                                int *normalized_brightness);
 int display_backlight_set_default_brightness(int brightness);
 int display_backlight_get_default_brightness(int *brightness);
+int display_backlight_set_brightness_by_dim_brightness(void);
 
 #endif /* __DISPLAY_BACKLIGHT_H__ */
\ No newline at end of file
index 468c890..87a397e 100644 (file)
@@ -659,7 +659,7 @@ static GVariant *dbus_setrefreshrate(GDBusConnection *conn,
        control = display_conf->control_display;
 
        if (control)
-               backlight_ops->off(NORMAL_MODE);
+               display_panel_set_panel_state_by_off_state(NORMAL_MODE);
 
        _D("app : %d, value : %d", app, val);
        ret = display_panel_set_frame_rate(val);
@@ -667,7 +667,7 @@ static GVariant *dbus_setrefreshrate(GDBusConnection *conn,
                _E("Failed to set frame rate (%d)", ret);
 
        if (control)
-               backlight_ops->on(NORMAL_MODE);
+               display_panel_set_panel_state_by_on_state(NORMAL_MODE);
 
 error:
        return g_variant_new("(i)", ret);
index 7f936dd..6c99b5c 100644 (file)
@@ -19,6 +19,7 @@
 #include "shared/log.h"
 #include "power/power-suspend.h"
 #include "display.h"
+#include "display-backlight.h"
 #include "display-dpms.h"
 #include "display-panel.h"
 
 #define DEFAULT_WHITE_BALANCE_GAIN             1024
 #define DEFAULT_WHITE_BALANCE_OFFSET           0
 
+#define LCD_PHASED_MIN_BRIGHTNESS      1
+#define LCD_PHASED_CHANGE_STEP         5
+
+static struct _backlight_ops *backlight_ops;
+
 /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */
 int display_panel_set_dpms_state(int dpms_on, enum device_flags flags)
 {
@@ -113,6 +119,66 @@ int display_panel_get_white_balance(enum hal_display_white_balance white_balance
        return ret;
 }
 
+int display_panel_set_panel_state_by_on_state(enum device_flags flags)
+{
+       int ret = -1;
+       static int cnt;
+
+       _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt);
+
+       cnt++;
+       ret = display_panel_set_dpms_state(DPMS_ON, flags);
+
+#ifdef ENABLE_PM_LOG
+       pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state());
+#endif
+       return ret;
+}
+
+int display_panel_set_panel_state_by_off_state(enum device_flags flags)
+{
+       int ret = -1;
+       static int cnt, ambient_cnt;
+       int default_brightness = 0;
+
+       display_backlight_get_default_brightness(&default_brightness);
+
+       if (flags & AMBIENT_MODE) {
+               _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt);
+               ambient_cnt++;
+               return 0;
+       }
+
+       _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt);
+       cnt++;
+
+       if (flags & LCD_PHASED_TRANSIT_MODE)
+               backlight_ops->transit_brt(default_brightness,
+                       LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP);
+
+       if (flags & FORCE_OFF_MODE)
+               ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags);
+       else
+               ret = display_panel_set_dpms_state(DPMS_OFF, flags);
+
+#ifdef ENABLE_PM_LOG
+       pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state());
+#endif
+       return ret;
+}
+
+int display_panel_set_panel_state_by_standby_state(bool standby_on)
+{
+       int ret = -1;
+
+       if ((dpms_get_cached_state() == DPMS_ON) || standby_on) {
+               _I("LCD standby");
+               ret = display_panel_set_dpms_state(DPMS_STANDBY, 0);
+       }
+
+       return ret;
+}
+
 /* FIXME: This function is used for only wearable profile, should be fixed after plugin refactoring */
 int display_panel_set_image_effect(enum display_image_effect effect)
 {
@@ -259,4 +325,12 @@ int display_panel_get_frame_rate(int *frame_rate)
                return -ENOTSUP;
 
        return hal_device_display_get_frame_rate(frame_rate);
+}
+
+/* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/
+static void __CONSTRUCTOR__ initialize(void)
+{
+       backlight_ops = get_var_backlight_ops();
+       if (!backlight_ops)
+               _W("Failed to get backlight operator variable.");
 }
\ No newline at end of file
index a287557..eabe41e 100644 (file)
@@ -26,6 +26,9 @@
 int display_panel_set_dpms_state(int dpms_on, enum device_flags flags);
 int display_panel_set_white_balance(enum hal_display_white_balance white_balance_type, int value);
 int display_panel_get_white_balance(enum hal_display_white_balance white_balance_type, int* out_val);
+int display_panel_set_panel_state_by_on_state(enum device_flags flags);
+int display_panel_set_panel_state_by_off_state(enum device_flags flags);
+int display_panel_set_panel_state_by_standby_state(bool standby_on);
 /* Deprecated functions */
 int display_panel_set_image_effect(enum display_image_effect effect);
 int display_panel_get_image_effect(enum display_image_effect *effect);