From e60d90d153b840c08cc677b5448a2e48354fe3cb Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Mon, 10 Jul 2023 15:28:18 +0900 Subject: [PATCH] display: Relocate delayed_init_done delayed_init_done is used from all plugins with the same logic. This function is used to unlock INTERNAL_LOCK_BOOTING after display initialization. Because INTERNAL_LOCK_BOOTING is caught while display is initialized. Thus, delayed_init_done is moved to display.c Change-Id: Id6e23dd5b10de8d20edce22715972a829c95b49e Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/core.c | 22 ---------------------- plugins/mobile/display/core.c | 22 ---------------------- plugins/tv/display/core.c | 22 ---------------------- plugins/wearable/display/core.c | 22 ---------------------- src/display/display.c | 20 ++++++++++++++++++++ 5 files changed, 20 insertions(+), 88 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index 4f4b671..2c41ed9 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -178,26 +178,6 @@ static const char *errMSG[INIT_END] = { [INIT_DBUS] = "d-bus init error", }; -static int delayed_init_done(void *data) -{ - static bool done = false; - - if (!data) - return done; - - done = *(int*)data; - if (!done) - return done; - - _I("Booting done, release booting lock."); - if (disp_plgn->pm_unlock_internal) { - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_NORMAL, PM_SLEEP_MARGIN); - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_OFF, PM_SLEEP_MARGIN); - } - - return done; -} - static void init_display_states(void *data) { struct display_plugin *dp = (struct display_plugin *) data; @@ -271,7 +251,6 @@ static void display_init(void *data) _W("Failed to load '%s', use default value: %d", DISPLAY_CONF_FILE, ret); - register_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); register_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); register_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); register_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); @@ -403,7 +382,6 @@ static void display_exit(void *data) exit_sysfs(); break; case INIT_POLL: - unregister_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index b4c14ae..30cd412 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -231,26 +231,6 @@ static const char *errMSG[INIT_END] = { [INIT_DBUS] = "d-bus init error", }; -static int delayed_init_done(void *data) -{ - static bool done = false; - - if (!data) - return done; - - done = *(int*)data; - if (!done) - return done; - - _I("Booting done, release booting lock."); - if (disp_plgn->pm_unlock_internal) { - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_NORMAL, PM_SLEEP_MARGIN); - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_OFF, PM_SLEEP_MARGIN); - } - - return done; -} - static void init_display_states(void *data) { struct display_plugin *dp = (struct display_plugin *) data; @@ -320,7 +300,6 @@ static void display_init(void *data) _W("Failed to load '%s', use default value: %d", DISPLAY_CONF_FILE, ret); - register_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); register_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); register_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); register_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); @@ -453,7 +432,6 @@ static void display_exit(void *data) exit_sysfs(); break; case INIT_POLL: - unregister_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index 6e44cb1..16341ec 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -178,26 +178,6 @@ static const char *errMSG[INIT_END] = { [INIT_DBUS] = "d-bus init error", }; -static int delayed_init_done(void *data) -{ - static bool done = false; - - if (!data) - return done; - - done = *(int*)data; - if (!done) - return done; - - _I("Booting done, release booting lock."); - if (disp_plgn->pm_unlock_internal) { - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_NORMAL, PM_SLEEP_MARGIN); - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_OFF, PM_SLEEP_MARGIN); - } - - return done; -} - static void init_display_states(void *data) { struct display_plugin *dp = (struct display_plugin *) data; @@ -268,7 +248,6 @@ static void display_init(void *data) _W("Failed to load '%s', use default value: %d", DISPLAY_CONF_FILE, ret); - register_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); register_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); register_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); register_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); @@ -400,7 +379,6 @@ static void display_exit(void *data) exit_sysfs(); break; case INIT_POLL: - unregister_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index efaf336..86be20d 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -936,26 +936,6 @@ static const char *errMSG[INIT_END] = { [INIT_DBUS] = "d-bus init error", }; -static int delayed_init_done(void *data) -{ - static bool done = false; - - if (!data) - return done; - - done = *(int*)data; - if (!done) - return done; - - _I("Booting done, release booting lock."); - if (disp_plgn->pm_unlock_internal) { - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_NORMAL, PM_SLEEP_MARGIN); - disp_plgn->pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_OFF, PM_SLEEP_MARGIN); - } - - return done; -} - static void init_display_states(void *data) { struct display_plugin *dp = (struct display_plugin *) data; @@ -1058,7 +1038,6 @@ static void display_init(void *data) register_kernel_uevent_control(&sec_dsim_uevent_ops); - register_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); register_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); register_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); register_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); @@ -1194,7 +1173,6 @@ static void display_exit(void *data) exit_sysfs(); break; case INIT_POLL: - unregister_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_BACKGROUND, display_app_background); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground); unregister_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated); diff --git a/src/display/display.c b/src/display/display.c index 7d2048c..7b06647 100644 --- a/src/display/display.c +++ b/src/display/display.c @@ -418,6 +418,24 @@ static gboolean handle_sighup(gpointer data) return G_SOURCE_REMOVE; } +static int delayed_init_done(void *data) +{ + static bool done = false; + + if (!data) + return done; + + done = *(int*)data; + if (!done) + return done; + + _I("Booting done, release booting lock."); + display_plugin_pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_NORMAL, PM_SLEEP_MARGIN); + display_plugin_pm_unlock_internal(INTERNAL_LOCK_BOOTING, LCD_OFF, PM_SLEEP_MARGIN); + + return done; +} + static int display_probe(void *data) { display_plugin_device_ops = find_device("display-plugin"); @@ -433,6 +451,7 @@ static void display_init(void *data) return; g_unix_signal_add(SIGHUP, handle_sighup, (gpointer) SIGHUP); + register_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); display_plugin_device_ops->init(data); register_kernel_uevent_control(&lcd_uevent_ops); @@ -456,6 +475,7 @@ static void display_exit(void *data) display_misc_unregister_battery_health_notifier(); unregister_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback); unregister_notifier(DEVICE_NOTIFIER_POWEROFF_TRIGGERED, poweroff_triggered_callback); + unregister_notifier(DEVICE_NOTIFIER_DELAYED_INIT, delayed_init_done); } static int display_start(enum device_flags flags) -- 2.7.4