display: Relocate delayed_init_done 33/295633/2
authorYunhee Seo <yuni.seo@samsung.com>
Mon, 10 Jul 2023 06:28:18 +0000 (15:28 +0900)
committerYunhee Seo <yuni.seo@samsung.com>
Wed, 12 Jul 2023 09:42:37 +0000 (18:42 +0900)
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 <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

index 4f4b671..2c41ed9 100644 (file)
@@ -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);
index b4c14ae..30cd412 100644 (file)
@@ -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);
index 6e44cb1..16341ec 100644 (file)
@@ -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);
index efaf336..86be20d 100644 (file)
@@ -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);
index 7d2048c..7b06647 100644 (file)
@@ -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)