display: backlight: Relocate display_backlight_change_brightness_by_dpms_state()... 14/289414/8
authorYunhee Seo <yuni.seo@samsung.com>
Tue, 7 Mar 2023 08:25:47 +0000 (17:25 +0900)
committeryunhee <yuni.seo@samsung.com>
Mon, 20 Mar 2023 08:08:15 +0000 (17:08 +0900)
Remove and redefine backlight_transit_state function in backlight_ops.

This function is added to below display-backlight.
int display_backlight_change_brightness_by_dpms_state(enum dpms_state state)
-> In AOD mode, this function changes brightness smoothly.

Change-Id: Iee3e16ad023fc71a3d1fccbf96dcabfbc156401c
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
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/core.c
plugins/wearable/display/display-handler.c
src/display/display-backlight.c
src/display/display-backlight.h

index 30bf606..5d637b8 100644 (file)
@@ -299,7 +299,7 @@ static gboolean late_transit_on(void *data)
        g_source_remove(transit_timer);
        transit_timer = 0;
 
-       backlight_ops->transit_state(DPMS_ON);
+       display_backlight_change_brightness_by_dpms_state(DPMS_ON);
        return G_SOURCE_REMOVE;
 }
 
@@ -425,7 +425,7 @@ inline void lcd_off_procedure(enum device_flags flag)
        }
 
        if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops->transit_state(DPMS_OFF);
+               display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
 
        SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
                ops->stop(flags);
index 6f68ec7..b79cfca 100644 (file)
@@ -91,51 +91,11 @@ bool display_dimstay_check(void)
        return false;
 }
 
-/* It was operated only AOD enter & leave */
-static int backlight_transit_state(int state)
-{
-       int brt, val;
-       int start, end;
-       int default_brightness = 0;
-
-       display_backlight_get_default_brightness(&default_brightness);
-
-       display_backlight_get_brightness(&brt);
-
-       if (state == DPMS_OFF) {
-               start = brt;
-               end = display_conf->aod_enter_level;
-
-               /*
-                * The value of display_backlight_get_brightness is system brightness.
-                * But when device is LBM, the value is not same with real brightness.
-                * So it should be read exactly value for transit smooth effect
-                */
-               display_backlight_get_brightness(&val);
-
-               if (val > display_conf->aod_enter_level)
-                       display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
-       } else {
-               /* prevent transit effect when another effect is already executed */
-               if (brt != display_conf->aod_enter_level) {
-                       _W("effect is already executed brt(%d) aod_level(%d)",
-                                       brt, display_conf->aod_enter_level);
-                       return 0;
-               }
-
-               start = display_conf->aod_enter_level;
-               end = default_brightness;
-               display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
-       }
-
-       return 0;
-}
-
 static struct _backlight_ops backlight_ops = {
        .get_lcd_power = dpms_get_cached_state,
        .set_brightness = NULL,
        .get_brightness = NULL,
-       .transit_state = backlight_transit_state,
+       .transit_state = NULL,
        .transit_brt = NULL,
 };
 
index 398e68b..c8d64d6 100644 (file)
@@ -306,7 +306,7 @@ static gboolean late_transit_on(void *data)
        g_source_remove(transit_timer);
        transit_timer = 0;
 
-       backlight_ops->transit_state(DPMS_ON);
+       display_backlight_change_brightness_by_dpms_state(DPMS_ON);
        return G_SOURCE_REMOVE;
 }
 
@@ -432,7 +432,7 @@ inline void lcd_off_procedure(enum device_flags flag)
        }
 
        if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops->transit_state(DPMS_OFF);
+               display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
 
        SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
                ops->stop(flags);
index b92bdcd..e2ca8a4 100644 (file)
@@ -90,51 +90,11 @@ bool display_dimstay_check(void)
        return false;
 }
 
-/* It was operated only AOD enter & leave */
-static int backlight_transit_state(int state)
-{
-       int brt, val;
-       int start, end;
-       int default_brightness = 0;
-
-       display_backlight_get_default_brightness(&default_brightness);
-
-       display_backlight_get_brightness(&brt);
-
-       if (state == DPMS_OFF) {
-               start = brt;
-               end = display_conf->aod_enter_level;
-
-               /*
-                * The value of display_backlight_get_brightness is system brightness.
-                * But when device is LBM, the value is not same with real brightness.
-                * So it should be read exactly value for transit smooth effect
-                */
-               display_backlight_get_brightness(&val);
-
-               if (val > display_conf->aod_enter_level)
-                       display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
-       } else {
-               /* prevent transit effect when another effect is already executed */
-               if (brt != display_conf->aod_enter_level) {
-                       _W("effect is already executed brt(%d) aod_level(%d)",
-                                       brt, display_conf->aod_enter_level);
-                       return 0;
-               }
-
-               start = display_conf->aod_enter_level;
-               end = default_brightness;
-               display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
-       }
-
-       return 0;
-}
-
 static struct _backlight_ops backlight_ops = {
        .get_lcd_power = dpms_get_cached_state,
        .set_brightness = NULL,
        .get_brightness = NULL,
-       .transit_state = backlight_transit_state,
+       .transit_state = NULL,
        .transit_brt = NULL,
 };
 
index d434bd4..e7b7ca5 100644 (file)
@@ -299,7 +299,7 @@ static gboolean late_transit_on(void *data)
        g_source_remove(transit_timer);
        transit_timer = 0;
 
-       backlight_ops->transit_state(DPMS_ON);
+       display_backlight_change_brightness_by_dpms_state(DPMS_ON);
        return G_SOURCE_REMOVE;
 }
 
@@ -425,7 +425,7 @@ inline void lcd_off_procedure(enum device_flags flag)
        }
 
        if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops->transit_state(DPMS_OFF);
+               display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
 
        SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
                ops->stop(flags);
index 1756de5..e8eb6e4 100644 (file)
@@ -91,51 +91,11 @@ bool display_dimstay_check(void)
        return false;
 }
 
-/* It was operated only AOD enter & leave */
-static int backlight_transit_state(int state)
-{
-       int brt, val;
-       int start, end;
-       int default_brightness = 0;
-
-       display_backlight_get_default_brightness(&default_brightness);
-
-       display_backlight_get_brightness(&brt);
-
-       if (state == DPMS_OFF) {
-               start = brt;
-               end = display_conf->aod_enter_level;
-
-               /*
-                * The value of display_backlight_get_brightness is system brightness.
-                * But when device is LBM, the value is not same with real brightness.
-                * So it should be read exactly value for transit smooth effect
-                */
-               display_backlight_get_brightness(&val);
-
-               if (val > display_conf->aod_enter_level)
-                       display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
-       } else {
-               /* prevent transit effect when another effect is already executed */
-               if (brt != display_conf->aod_enter_level) {
-                       _W("effect is already executed brt(%d) aod_level(%d)",
-                                       brt, display_conf->aod_enter_level);
-                       return 0;
-               }
-
-               start = display_conf->aod_enter_level;
-               end = default_brightness;
-               display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
-       }
-
-       return 0;
-}
-
 static struct _backlight_ops backlight_ops = {
        .get_lcd_power = dpms_get_cached_state,
        .set_brightness = NULL,
        .get_brightness = NULL,
-       .transit_state = backlight_transit_state,
+       .transit_state = NULL,
        .transit_brt = NULL,
 };
 
index c62c3db..adcb55b 100644 (file)
@@ -509,7 +509,7 @@ static gboolean late_transit_on(void *data)
        g_source_remove(transit_timer);
        transit_timer = 0;
 
-       backlight_ops->transit_state(DPMS_ON);
+       display_backlight_change_brightness_by_dpms_state(DPMS_ON);
        return G_SOURCE_REMOVE;
 }
 
@@ -643,7 +643,7 @@ inline void lcd_off_procedure(enum device_flags flag)
        }
 
        if (flags & LCD_PHASED_TRANSIT_MODE)
-               backlight_ops->transit_state(DPMS_OFF);
+               display_backlight_change_brightness_by_dpms_state(DPMS_OFF);
 
        SYS_G_LIST_FOREACH(lcdon_ops, l, ops)
                ops->stop(flags);
index 47912b1..7fd9087 100644 (file)
@@ -30,6 +30,7 @@
 #include "shared/common.h"
 #include "shared/devices.h"
 #include "display/display-actor.h"
+#include "display/display-backlight.h"
 #include "display/display-ops.h"
 #include "display-info.h"
 
@@ -59,7 +60,7 @@ static gboolean lcdon_from_aod_cb(gpointer data)
        if (dpms_get_cached_state() != DPMS_ON)
                return G_SOURCE_REMOVE;
 
-       backlight_ops->transit_state(DPMS_ON);
+       display_backlight_change_brightness_by_dpms_state(DPMS_ON);
        display_info.set_brightness_level(level);
 
        /* lcdon is completed, aod disappered */
@@ -142,7 +143,7 @@ static void aod_change_signal(GDBusConnection  *conn,
                if (!aod_clock_displayed)
                        return;
 
-               backlight_ops->transit_state(DPMS_ON);
+               display_backlight_change_brightness_by_dpms_state(DPMS_ON);
                if (autobrt_timer) { /* if there is reserved level, apply it */
                        g_source_remove(autobrt_timer);
                        autobrt_timer = 0;
index 8579e36..a32a13c 100644 (file)
@@ -241,6 +241,50 @@ void display_backlight_change_brightness(int start, int end, int step)
        }
 }
 
+/* FIXME: display_backlight_get_brightness is duplicated, this code structure should be changed */
+/* It was operated only AOD enter & leave */
+int display_backlight_change_brightness_by_dpms_state(enum dpms_state state)
+{
+       int brt, val;
+       int start, end;
+       int default_brightness;
+
+       display_backlight_get_default_brightness(&default_brightness);
+
+       if (backlight_ops && backlight_ops->transit_state)
+               return backlight_ops->transit_state((int)state);
+
+       display_backlight_get_brightness(&brt);
+
+       if (state == DPMS_OFF) {
+               start = brt;
+               end = display_conf->aod_enter_level;
+
+               /*
+                * The value of display_backlight_get_brightness is system brightness.
+                * But when device is LBM, the value is not same with real brightness.
+                * So it should be read exactly value for transit smooth effect
+                */
+               display_backlight_get_brightness(&val);
+
+               if (val > display_conf->aod_enter_level)
+                       display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
+       } else {
+               /* prevent transit effect when another effect is already executed */
+               if (brt != display_conf->aod_enter_level) {
+                       _W("effect is already executed brt(%d) aod_level(%d)",
+                                       brt, display_conf->aod_enter_level);
+                       return 0;
+               }
+
+               start = display_conf->aod_enter_level;
+               end = default_brightness;
+               display_backlight_change_brightness(start, end, display_conf->brightness_change_step);
+       }
+
+       return 0;
+}
+
 int display_backlight_set_default_brightness(int brightness)
 {
        if (brightness < PM_MIN_BRIGHTNESS || brightness > PM_MAX_BRIGHTNESS) {
index 538d7c7..8a5855c 100644 (file)
@@ -19,6 +19,8 @@
 #ifndef __DISPLAY_BACKLIGHT_H__
 #define __DISPLAY_BACKLIGHT_H__
 
+#include "shared/devices.h"
+
 int display_backlight_get_max_brightness(int *max_brightness);
 int display_backlight_get_normalized_brightness(int raw_brightness,
                                                int *normalized_brightness);
@@ -26,6 +28,7 @@ int display_backlight_set_brightness(int brightness);
 int display_backlight_get_brightness(int *brightness);
 int display_backlight_get_brightness_by_plugin_profile(int *brightness);
 void display_backlight_change_brightness(int start, int end, int step);
+int display_backlight_change_brightness_by_dpms_state(enum dpms_state state);
 int display_backlight_set_default_brightness(int brightness);
 int display_backlight_get_default_brightness(int *brightness);
 int display_backlight_update_by_default_brightness(void);