display: Relocate delayed_dpms_init_done() from plugins to core 71/294271/4
authorYunhee Seo <yuni.seo@samsung.com>
Thu, 15 Jun 2023 07:25:10 +0000 (16:25 +0900)
committerYunhee Seo <yuni.seo@samsung.com>
Mon, 26 Jun 2023 05:14:40 +0000 (14:14 +0900)
During display init, it is necessary to add a timer to wait for dpms initialization.
Also, that work should be handled in the display.c

Thus, this function is added below display.c
void display_add_timer_for_wating_dpms_init(void);
    -> This replaces add_timer_for_dpms_init()

Change-Id: Icfcc248b54899608a6a0c483df0ae572e0112798
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
plugins/iot-headed/display/core.c
plugins/mobile/display/core.c
plugins/tv/display/core.c
plugins/wearable/display/core.c
src/display/display.c
src/display/display.h

index ae08c92..a109de9 100644 (file)
@@ -698,44 +698,6 @@ static int delayed_init_done(void *data)
        return done;
 }
 
-static gboolean delayed_dpms_init_done(gpointer data)
-{
-       int timeout;
-
-       if (!display_panel_init_dpms())
-               return G_SOURCE_CONTINUE;
-
-       switch (get_pm_cur_state()) {
-       case S_NORMAL:
-       case S_LCDDIM:
-               display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
-               if (display_conf.timeout_enable) {
-                       timeout = states[S_NORMAL].timeout;
-                       /* check minimun lcd on time */
-                       if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
-                               timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       display_state_transition_reset_state_transition_timeout(timeout);
-               }
-               break;
-       case S_LCDOFF:
-               display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
-               timeout = display_conf.lcdoff_timeout;
-               display_state_transition_reset_state_transition_timeout(timeout);
-               break;
-       default:
-               break;
-       }
-
-       return G_SOURCE_REMOVE;
-}
-
-static void add_timer_for_dpms_init(void)
-{
-       guint id = g_timeout_add(500/* milliseconds */, delayed_dpms_init_done, NULL);
-       if (id == 0)
-               _E("Failed to add display_panel_init_dpms timeout.");
-}
-
 static void init_display_states(void *data)
 {
        struct display_plugin *dp = (struct display_plugin *) data;
@@ -915,7 +877,7 @@ static void display_init(void *data)
                        else
                                display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
                } else {
-                       add_timer_for_dpms_init();
+                       display_add_timer_for_waiting_dpms_init();
                }
 
                if (display_conf.lcd_always_on) {
index c8a1d31..dd3b864 100644 (file)
@@ -707,44 +707,6 @@ static int delayed_init_done(void *data)
        return done;
 }
 
-static gboolean delayed_dpms_init_done(gpointer data)
-{
-       int timeout;
-
-       if (!display_panel_init_dpms())
-               return G_SOURCE_CONTINUE;
-
-       switch (get_pm_cur_state()) {
-       case S_NORMAL:
-       case S_LCDDIM:
-               display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
-               if (display_conf.timeout_enable) {
-                       timeout = states[S_NORMAL].timeout;
-                       /* check minimun lcd on time */
-                       if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
-                               timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       display_state_transition_reset_state_transition_timeout(timeout);
-               }
-               break;
-       case S_LCDOFF:
-               display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
-               timeout = display_conf.lcdoff_timeout;
-               display_state_transition_reset_state_transition_timeout(timeout);
-               break;
-       default:
-               break;
-       }
-
-       return G_SOURCE_REMOVE;
-}
-
-static void add_timer_for_dpms_init(void)
-{
-       guint id = g_timeout_add(500/* milliseconds */, delayed_dpms_init_done, NULL);
-       if (id == 0)
-               _E("Failed to add display_panel_init_dpms timeout.");
-}
-
 static void init_display_states(void *data)
 {
        struct display_plugin *dp = (struct display_plugin *) data;
@@ -920,7 +882,7 @@ static void display_init(void *data)
                        else
                                display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
                } else {
-                       add_timer_for_dpms_init();
+                       display_add_timer_for_waiting_dpms_init();
                }
 
                if (display_conf.lcd_always_on) {
index b7b624f..20465d5 100644 (file)
@@ -697,44 +697,6 @@ static int delayed_init_done(void *data)
        return done;
 }
 
-static gboolean delayed_dpms_init_done(gpointer data)
-{
-       int timeout;
-
-       if (!display_panel_init_dpms())
-               return G_SOURCE_CONTINUE;
-
-       switch (get_pm_cur_state()) {
-       case S_NORMAL:
-       case S_LCDDIM:
-               display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
-               if (display_conf.timeout_enable) {
-                       timeout = states[S_NORMAL].timeout;
-                       /* check minimun lcd on time */
-                       if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
-                               timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       display_state_transition_reset_state_transition_timeout(timeout);
-               }
-               break;
-       case S_LCDOFF:
-               display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
-               timeout = display_conf.lcdoff_timeout;
-               display_state_transition_reset_state_transition_timeout(timeout);
-               break;
-       default:
-               break;
-       }
-
-       return G_SOURCE_REMOVE;
-}
-
-static void add_timer_for_dpms_init(void)
-{
-       guint id = g_timeout_add(500/* milliseconds */, delayed_dpms_init_done, NULL);
-       if (id == 0)
-               _E("Failed to add display_panel_init_dpms timeout.");
-}
-
 static void init_display_states(void *data)
 {
        struct display_plugin *dp = (struct display_plugin *) data;
@@ -911,7 +873,7 @@ static void display_init(void *data)
                        else
                                display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
                } else {
-                       add_timer_for_dpms_init();
+                       display_add_timer_for_waiting_dpms_init();
                }
 
                if (display_conf.lcd_always_on) {
index 71993c7..4eb15ca 100644 (file)
@@ -1328,44 +1328,6 @@ static int delayed_init_done(void *data)
        return done;
 }
 
-static gboolean delayed_dpms_init_done(gpointer data)
-{
-       int timeout;
-
-       if (!display_panel_init_dpms())
-               return G_SOURCE_CONTINUE;
-
-       switch (get_pm_cur_state()) {
-       case S_NORMAL:
-       case S_LCDDIM:
-               lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
-               if (display_conf.timeout_enable) {
-                       timeout = states[S_NORMAL].timeout;
-                       /* check minimun lcd on time */
-                       if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
-                               timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
-                       display_state_transition_reset_state_transition_timeout(timeout);
-               }
-               break;
-       case S_LCDOFF:
-               lcd_off_procedure(LCD_OFF_BY_EVENT);
-               timeout = display_conf.lcdoff_timeout;
-               display_state_transition_reset_state_transition_timeout(timeout);
-               break;
-       default:
-               break;
-       }
-
-       return G_SOURCE_REMOVE;
-}
-
-static void add_timer_for_dpms_init(void)
-{
-       guint id = g_timeout_add(500/* milliseconds */, delayed_dpms_init_done, NULL);
-       if (id == 0)
-               _E("Failed to add display_panel_init_dpms timeout.");
-}
-
 static void init_display_states(void *data)
 {
        struct display_plugin *dp = (struct display_plugin *) data;
@@ -1576,7 +1538,7 @@ static void display_init(void *data)
                        else
                                lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
                } else {
-                       add_timer_for_dpms_init();
+                       display_add_timer_for_waiting_dpms_init();
                }
 
                if (display_conf.lcd_always_on) {
index 6239bd9..157da0f 100644 (file)
@@ -254,6 +254,47 @@ static int poweroff_triggered_callback(void *udata)
        return 0;
 }
 
+static gboolean delayed_dpms_init_done(gpointer data)
+{
+       int timeout = 0;
+       bool timeout_enable = false;
+       int lcdoff_timeout = 0;
+
+       if (!display_panel_init_dpms())
+               return G_SOURCE_CONTINUE;
+
+       switch (get_pm_cur_state()) {
+       case S_NORMAL:
+       case S_LCDDIM:
+               display_panel_lcd_on_procedure(LCD_NORMAL, LCD_ON_BY_EVENT);
+               display_plugin_config_get_timeout_enable(&timeout_enable);
+               if (timeout_enable) {
+                       display_plugin_state_get_timeout(S_NORMAL, &timeout);
+                       /* check minimun lcd on time */
+                       if (timeout < SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT))
+                               timeout = SEC_TO_MSEC(DEFAULT_NORMAL_TIMEOUT);
+                       display_state_transition_reset_state_transition_timeout(timeout);
+               }
+               break;
+       case S_LCDOFF:
+               display_panel_lcd_off_procedure(LCD_OFF_BY_EVENT);
+               display_plugin_config_get_lcdoff_timeout(&lcdoff_timeout);
+               display_state_transition_reset_state_transition_timeout(lcdoff_timeout);
+               break;
+       default:
+               break;
+       }
+
+       return G_SOURCE_REMOVE;
+}
+
+void display_add_timer_for_waiting_dpms_init(void)
+{
+       guint id = g_timeout_add(500/* milliseconds */, delayed_dpms_init_done, NULL);
+       if (id == 0)
+               _E("Failed to add display_panel_init_dpms timeout.");
+}
+
 static int display_probe(void *data)
 {
        display_plugin_device_ops = find_device("display-plugin");
index a2b6e35..436d61c 100644 (file)
@@ -60,5 +60,6 @@ int display_initialize_display_state_timeout_from_setting(void);
 void display_set_display_ops_status(enum device_ops_status dev_ops_status);
 int display_get_display_ops_status(enum device_ops_status *dev_ops_status);
 void display_set_power_save_mode_flag(int onoff);
+void display_add_timer_for_waiting_dpms_init(void);
 
 #endif //__DISPLAY_H__