From: Yunhee Seo Date: Thu, 15 Jun 2023 07:25:10 +0000 (+0900) Subject: display: Relocate delayed_dpms_init_done() from plugins to core X-Git-Tag: accepted/tizen/unified/dev/20230726.115933~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=977a4b84834b3254d322e4af29d268b82f29bd68;p=platform%2Fcore%2Fsystem%2Fdeviced.git display: Relocate delayed_dpms_init_done() from plugins to core 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 --- diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index ae08c92..a109de9 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -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) { diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index c8a1d31..dd3b864 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -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) { diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index b7b624f..20465d5 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -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) { diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index 71993c7..4eb15ca 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -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) { diff --git a/src/display/display.c b/src/display/display.c index 6239bd9..157da0f 100644 --- a/src/display/display.c +++ b/src/display/display.c @@ -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"); diff --git a/src/display/display.h b/src/display/display.h index a2b6e35..436d61c 100644 --- a/src/display/display.h +++ b/src/display/display.h @@ -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__