display: Relocate power related static function from plugins to core 63/294263/3
authorYunhee Seo <yuni.seo@samsung.com>
Thu, 15 Jun 2023 06:55:28 +0000 (15:55 +0900)
committerYunhee Seo <yuni.seo@samsung.com>
Mon, 26 Jun 2023 05:14:40 +0000 (14:14 +0900)
power_resume_from_echomem_callback(), poweroff_triggered_callback()
These power notifier callback should be registered/unregistered from display.c

There is no reason to exist in plugins.
It is desirable to be managed in display.c

Change-Id: I0d9078bb7e48d05d40a752a071153c74898db890
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 486a973..47c4c0b 100644 (file)
@@ -89,7 +89,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static int system_wakeup_flag = false;
 static char *custom_change_name;
 
 static int default_proc_change_state(unsigned int cond, pid_t pid);
@@ -813,36 +812,6 @@ static int input_init_handler(void)
        return 0;
 }
 
-static int power_resume_from_echomem_callback(void *data)
-{
-       system_wakeup_flag = true;
-       if (check_wakeup_src() == EVENT_DEVICE)
-               /* system waked up by devices */
-               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_DEVICE);
-       else
-               /* system waked up by user input */
-               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_INPUT);
-
-       return 0;
-}
-
-static int poweroff_triggered_callback(void *udata)
-{
-       int val = (int)(intptr_t) udata;
-
-       switch (val) {
-       case VCONFKEY_SYSMAN_POWER_OFF_NONE:
-               clear_pm_status_flag(PWROFF_FLAG);
-               break;
-       case VCONFKEY_SYSMAN_POWER_OFF_DIRECT:
-       case VCONFKEY_SYSMAN_POWER_OFF_RESTART:
-               set_pm_status_flag(PWROFF_FLAG);
-               break;
-       }
-
-       return 0;
-}
-
 static void esd_action(void)
 {
        const struct device_ops *touchscreen_ops = NULL;
@@ -905,8 +874,6 @@ static void display_init(void *data)
        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);
-       register_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
-       register_notifier(DEVICE_NOTIFIER_POWEROFF_TRIGGERED, poweroff_triggered_callback);
 
        init_save_userlock();
 
@@ -1039,7 +1006,6 @@ static void display_exit(void *data)
                        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);
-                       unregister_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
 
                        break;
                }
index aaf075d..84c7a14 100644 (file)
@@ -91,7 +91,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static int system_wakeup_flag = false;
 static char *custom_change_name;
 
 static int default_proc_change_state(unsigned int cond, pid_t pid);
@@ -818,36 +817,6 @@ static int input_init_handler(void)
        return 0;
 }
 
-static int power_resume_from_echomem_callback(void *data)
-{
-       system_wakeup_flag = true;
-       if (check_wakeup_src() == EVENT_DEVICE)
-               /* system waked up by devices */
-               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_DEVICE);
-       else
-               /* system waked up by user input */
-               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_INPUT);
-
-       return 0;
-}
-
-static int poweroff_triggered_callback(void *udata)
-{
-       int val = (int)(intptr_t) udata;
-
-       switch (val) {
-       case VCONFKEY_SYSMAN_POWER_OFF_NONE:
-               clear_pm_status_flag(PWROFF_FLAG);
-               break;
-       case VCONFKEY_SYSMAN_POWER_OFF_DIRECT:
-       case VCONFKEY_SYSMAN_POWER_OFF_RESTART:
-               set_pm_status_flag(PWROFF_FLAG);
-               break;
-       }
-
-       return 0;
-}
-
 static void esd_action(void)
 {
        const struct device_ops *touchscreen_ops = NULL;
@@ -910,8 +879,6 @@ static void display_init(void *data)
        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);
-       register_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
-       register_notifier(DEVICE_NOTIFIER_POWEROFF_TRIGGERED, poweroff_triggered_callback);
 
        init_save_userlock();
 
@@ -1044,7 +1011,6 @@ static void display_exit(void *data)
                        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);
-                       unregister_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
 
                        break;
                }
index 6a14386..f479c10 100644 (file)
@@ -89,7 +89,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static int system_wakeup_flag = false;
 static char *custom_change_name;
 
 static int default_proc_change_state(unsigned int cond, pid_t pid);
@@ -809,36 +808,6 @@ static int input_init_handler(void)
        return 0;
 }
 
-static int power_resume_from_echomem_callback(void *data)
-{
-       system_wakeup_flag = true;
-       if (check_wakeup_src() == EVENT_DEVICE)
-               /* system waked up by devices */
-               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_DEVICE);
-       else
-               /* system waked up by user input */
-               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_INPUT);
-
-       return 0;
-}
-
-static int poweroff_triggered_callback(void *udata)
-{
-       int val = (int)(intptr_t) udata;
-
-       switch (val) {
-       case VCONFKEY_SYSMAN_POWER_OFF_NONE:
-               clear_pm_status_flag(PWROFF_FLAG);
-               break;
-       case VCONFKEY_SYSMAN_POWER_OFF_DIRECT:
-       case VCONFKEY_SYSMAN_POWER_OFF_RESTART:
-               set_pm_status_flag(PWROFF_FLAG);
-               break;
-       }
-
-       return 0;
-}
-
 static void esd_action(void)
 {
        const struct device_ops *touchscreen_ops = NULL;
@@ -901,8 +870,6 @@ static void display_init(void *data)
        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);
-       register_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
-       register_notifier(DEVICE_NOTIFIER_POWEROFF_TRIGGERED, poweroff_triggered_callback);
 
        init_save_userlock();
 
@@ -1035,7 +1002,6 @@ static void display_exit(void *data)
                        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);
-                       unregister_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
 
                        break;
                }
index fd0d559..71993c7 100644 (file)
@@ -98,7 +98,6 @@ static int (*fp_get_charging_status) (int *val);
 static void (*power_saving_func) (int onoff);
 static enum device_ops_status status = DEVICE_OPS_STATUS_UNINIT;
 
-static int system_wakeup_flag = false;
 static char *custom_change_name;
 static guint transit_timer;
 /*
@@ -1427,36 +1426,6 @@ static int input_init_handler(void)
        return 0;
 }
 
-static int power_resume_from_echomem_callback(void *data)
-{
-       system_wakeup_flag = true;
-       if (check_wakeup_src() == EVENT_DEVICE)
-               /* system waked up by devices */
-               states[get_pm_cur_state()].trans(EVENT_DEVICE);
-       else
-               /* system waked up by user input */
-               states[get_pm_cur_state()].trans(EVENT_INPUT);
-
-       return 0;
-}
-
-static int poweroff_triggered_callback(void *udata)
-{
-       int val = (int)(intptr_t) udata;
-
-       switch (val) {
-       case VCONFKEY_SYSMAN_POWER_OFF_NONE:
-               clear_pm_status_flag(PWROFF_FLAG);
-               break;
-       case VCONFKEY_SYSMAN_POWER_OFF_DIRECT:
-       case VCONFKEY_SYSMAN_POWER_OFF_RESTART:
-               set_pm_status_flag(PWROFF_FLAG);
-               break;
-       }
-
-       return 0;
-}
-
 static void esd_action(void)
 {
        const struct device_ops *touchscreen_ops = NULL;
@@ -1552,8 +1521,6 @@ static void display_init(void *data)
        register_notifier(DEVICE_NOTIFIER_APPLICATION_FOREGROUND, display_app_foreground);
        register_notifier(DEVICE_NOTIFIER_APPLICATION_TERMINATED, display_app_terminated);
        register_notifier(DEVICE_NOTIFIER_LCD_AUTOBRT_SENSING, display_auto_brightness_sensing);
-       register_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
-       register_notifier(DEVICE_NOTIFIER_POWEROFF_TRIGGERED, poweroff_triggered_callback);
 
        init_save_userlock();
 
@@ -1687,7 +1654,6 @@ static void display_exit(void *data)
                        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);
-                       unregister_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
 
                        break;
                }
index 3418711..0bf003b 100644 (file)
 #include <libsyscommon/list.h>
 #include <shared/devices.h>
 
+#include "shared/device-notifier.h"
 #include "shared/log.h"
+#include "device-interface.h"
 #include "display.h"
 #include "display-plugin.h"
 #include "display-config.h"
 #include "display-misc.h"
 #include "display-signal.h"
+#include "display-state-transition.h"
 
 static const struct device_ops *display_plugin_device_ops;
 static int pm_cur_state;
@@ -210,6 +213,36 @@ int display_get_display_ops_status(enum device_ops_status *dev_ops_status)
        return 0;
 }
 
+static int power_resume_from_echomem_callback(void *data)
+{
+       display_plugin_set_system_wakeup_flag(true);
+       if (check_wakeup_src() == EVENT_DEVICE)
+               /* system waked up by devices */
+               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_DEVICE);
+       else
+               /* system waked up by user input */
+               display_state_transition_do_state_transition(get_pm_cur_state(), EVENT_INPUT);
+
+       return 0;
+}
+
+static int poweroff_triggered_callback(void *udata)
+{
+       int val = (int)(intptr_t) udata;
+
+       switch (val) {
+       case VCONFKEY_SYSMAN_POWER_OFF_NONE:
+               clear_pm_status_flag(PWROFF_FLAG);
+               break;
+       case VCONFKEY_SYSMAN_POWER_OFF_DIRECT:
+       case VCONFKEY_SYSMAN_POWER_OFF_RESTART:
+               set_pm_status_flag(PWROFF_FLAG);
+               break;
+       }
+
+       return 0;
+}
+
 static int display_probe(void *data)
 {
        display_plugin_device_ops = find_device("display-plugin");
@@ -228,6 +261,8 @@ static void display_init(void *data)
 
        display_signal_register_display_brightness_notifier();
        display_misc_register_battery_health_notifier();
+       register_notifier(DEVICE_NOTIFIER_POWER_RESUME_FROM_ECHO_MEM, power_resume_from_echomem_callback);
+       register_notifier(DEVICE_NOTIFIER_POWEROFF_TRIGGERED, poweroff_triggered_callback);
 }
 
 static void display_exit(void *data)
@@ -239,6 +274,8 @@ static void display_exit(void *data)
 
        display_signal_unregister_display_brightness_notifier();
        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);
 }
 
 static int display_start(enum device_flags flags)