From 95b7819e4f13d017a55d7a59aafdab3d660d1877 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Thu, 15 Jun 2023 15:55:28 +0900 Subject: [PATCH] display: Relocate power related static function from plugins to core 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 --- plugins/iot-headed/display/core.c | 34 ---------------------------------- plugins/mobile/display/core.c | 34 ---------------------------------- plugins/tv/display/core.c | 34 ---------------------------------- plugins/wearable/display/core.c | 34 ---------------------------------- src/display/display.c | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 37 insertions(+), 136 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index 486a973..47c4c0b 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -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; } diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index aaf075d..84c7a14 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -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; } diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index 6a14386..f479c10 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -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; } diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index fd0d559..71993c7 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -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; } diff --git a/src/display/display.c b/src/display/display.c index 3418711..0bf003b 100644 --- a/src/display/display.c +++ b/src/display/display.c @@ -19,12 +19,15 @@ #include #include +#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) -- 2.7.4