From 447bee07b18b7ae3da3d2f2f1a3b876a58da1050 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Thu, 16 Mar 2023 18:36:22 +0900 Subject: [PATCH 01/16] display: Remove unused code Change-Id: I4a4a48848d0b9e164f2c820c6086bf653b316b3f Signed-off-by: Youngjae Cho --- plugins/iot-headed/display/core.c | 36 ------------------------------------ plugins/mobile/display/core.c | 36 ------------------------------------ plugins/tv/display/core.c | 36 ------------------------------------ plugins/wearable/display/core.c | 36 ------------------------------------ src/display/core.h | 7 ------- 5 files changed, 151 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index 660ea0e..e7ba15f 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -226,42 +226,6 @@ guint get_transition_timer(void) return timeout_src_id; } -void change_state_action(enum state_t state, int (*func)(int timeout)) -{ - _I("[%s] 'action' is changed.", states[state].name); - states[state].action = func; -} - -void change_state_trans(enum state_t state, int (*func)(int evt)) -{ - _I("[%s] 'trans' is changed.", states[state].name); - states[state].trans = func; -} - -void change_state_check(enum state_t state, int (*func)(int curr, int next)) -{ - _I("[%s] 'check' is changed.", states[state].name); - states[state].check = func; -} - -void change_state_name(enum state_t state, const char *name) -{ - _I("[%s] 'name' is changed.", states[state].name); - states[state].name = name; -} - -void change_trans_table(enum state_t state, enum state_t next) -{ - _I("[%s] 'timeout trans table' is changed.", states[state].name); - trans_table[state][EVENT_TIMEOUT] = next; -} - -void change_proc_change_state(int (*func)(unsigned int cond, pid_t pid)) -{ - _I("'proc change state' is changed."); - proc_change_state = func; -} - static int display_brightness_changed(void *data) { int brt, ret; diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index a511760..81f0750 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -228,42 +228,6 @@ guint get_transition_timer(void) return timeout_src_id; } -void change_state_action(enum state_t state, int (*func)(int timeout)) -{ - _I("[%s] 'action' is changed.", states[state].name); - states[state].action = func; -} - -void change_state_trans(enum state_t state, int (*func)(int evt)) -{ - _I("[%s] 'trans' is changed.", states[state].name); - states[state].trans = func; -} - -void change_state_check(enum state_t state, int (*func)(int curr, int next)) -{ - _I("[%s] 'check' is changed.", states[state].name); - states[state].check = func; -} - -void change_state_name(enum state_t state, const char *name) -{ - _I("[%s] 'name' is changed.", states[state].name); - states[state].name = name; -} - -void change_trans_table(enum state_t state, enum state_t next) -{ - _I("[%s] 'timeout trans table' is changed.", states[state].name); - trans_table[state][EVENT_TIMEOUT] = next; -} - -void change_proc_change_state(int (*func)(unsigned int cond, pid_t pid)) -{ - _I("'proc change state' is changed."); - proc_change_state = func; -} - static int display_brightness_changed(void *data) { int brt, ret; diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index e784dab..eecdd01 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -226,42 +226,6 @@ guint get_transition_timer(void) return timeout_src_id; } -void change_state_action(enum state_t state, int (*func)(int timeout)) -{ - _I("[%s] 'action' is changed.", states[state].name); - states[state].action = func; -} - -void change_state_trans(enum state_t state, int (*func)(int evt)) -{ - _I("[%s] 'trans' is changed.", states[state].name); - states[state].trans = func; -} - -void change_state_check(enum state_t state, int (*func)(int curr, int next)) -{ - _I("[%s] 'check' is changed.", states[state].name); - states[state].check = func; -} - -void change_state_name(enum state_t state, const char *name) -{ - _I("[%s] 'name' is changed.", states[state].name); - states[state].name = name; -} - -void change_trans_table(enum state_t state, enum state_t next) -{ - _I("[%s] 'timeout trans table' is changed.", states[state].name); - trans_table[state][EVENT_TIMEOUT] = next; -} - -void change_proc_change_state(int (*func)(unsigned int cond, pid_t pid)) -{ - _I("'proc change state' is changed."); - proc_change_state = func; -} - static int display_brightness_changed(void *data) { int brt, ret; diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index abc7680..b402d7e 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -251,42 +251,6 @@ guint get_transition_timer(void) return timeout_src_id; } -void change_state_action(enum state_t state, int (*func)(int timeout)) -{ - _I("[%s] 'action' is changed.", states[state].name); - states[state].action = func; -} - -void change_state_trans(enum state_t state, int (*func)(int evt)) -{ - _I("[%s] 'trans' is changed.", states[state].name); - states[state].trans = func; -} - -void change_state_check(enum state_t state, int (*func)(int curr, int next)) -{ - _I("[%s] 'check' is changed.", states[state].name); - states[state].check = func; -} - -void change_state_name(enum state_t state, const char *name) -{ - _I("[%s] 'name' is changed.", states[state].name); - states[state].name = name; -} - -void change_trans_table(enum state_t state, enum state_t next) -{ - _I("[%s] 'timeout trans table' is changed.", states[state].name); - trans_table[state][EVENT_TIMEOUT] = next; -} - -void change_proc_change_state(int (*func)(unsigned int cond, pid_t pid)) -{ - _I("'proc change state' is changed."); - proc_change_state = func; -} - static int display_brightness_changed(void *data) { int brt, ret; diff --git a/src/display/core.h b/src/display/core.h index c514619..3e28126 100644 --- a/src/display/core.h +++ b/src/display/core.h @@ -180,13 +180,6 @@ void set_lock_screen_state(int state); void set_lock_screen_bg_state(bool state); /* core.c */ -void change_state_action(enum state_t state, int (*func)(int timeout)); -void change_state_trans(enum state_t state, int (*func)(int evt)); -void change_state_check(enum state_t state, int (*func)(int curr, int next)); -void change_state_name(enum state_t state, const char *name); -void change_trans_table(enum state_t state, enum state_t next); -void change_proc_change_state(int (*func)(unsigned int cond, pid_t pid)); - int delete_condition(enum state_t state); int custom_lcdoff(enum device_flags flag); int display_on_by_reason(const char *reason, int timeout); -- 2.7.4 From 9600e86c8e31cd8bd90fef5514857292d6325728 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Thu, 16 Mar 2023 18:51:02 +0900 Subject: [PATCH 02/16] display: Remove unused s-cover(HALL IC) code Change-Id: If57090427d93e3465264ba9366374cd197ba6a23 Signed-off-by: Youngjae Cho --- plugins/iot-headed/display/core.c | 28 +++------------------------- plugins/mobile/display/core.c | 28 +++------------------------- plugins/tv/display/core.c | 28 +++------------------------- plugins/wearable/display/core.c | 28 +++------------------------- src/display/poll.h | 1 - src/display/setting.h | 1 - 6 files changed, 12 insertions(+), 102 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index e7ba15f..f8ecf49 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -102,7 +102,6 @@ static unsigned int custom_normal_timeout = 0; static unsigned int custom_dim_timeout = 0; int custom_holdkey_block = false; static char *custom_change_name; -static bool hallic_open = true; static guint lock_timeout_id; static guint transit_timer; static int lock_screen_timeout = LOCK_SCREEN_INPUT_TIMEOUT; @@ -468,11 +467,6 @@ int low_battery_state(int val) return false; } -int get_hallic_open(void) -{ - return hallic_open; -} - void get_pname(pid_t pid, char *pname) { char buf[PATH_MAX]; @@ -622,15 +616,7 @@ static void update_display_time(void) { int run_timeout, val; - /* first priority : s cover */ - if (!hallic_open) { - states[S_NORMAL].timeout = S_COVER_TIMEOUT; - _I("S cover closed: Timeout(%d ms) is set by normal.", - S_COVER_TIMEOUT); - return; - } - - /* second priority : custom timeout */ + /* first priority : custom timeout */ if (custom_normal_timeout > 0) { states[S_NORMAL].timeout = custom_normal_timeout; states[S_LCDDIM].timeout = custom_dim_timeout; @@ -639,7 +625,7 @@ static void update_display_time(void) return; } - /* third priority : lock state */ + /* second priority : lock state */ if ((__get_lock_screen_state() == VCONFKEY_IDLE_LOCK) && !get_lock_screen_bg_state()) { /* timeout is different according to key or event. */ @@ -1266,7 +1252,7 @@ int check_lcdoff_direct(void) return true; lock = __get_lock_screen_state(); - if (lock != VCONFKEY_IDLE_LOCK && hallic_open) + if (lock != VCONFKEY_IDLE_LOCK) return false; hdmi_state = extcon_get_status(EXTCON_CABLE_HDMI); @@ -1600,14 +1586,6 @@ static int update_setting(int key_idx, int val) update_display_time(); states[get_pm_cur_state()].trans(EVENT_INPUT); break; - case SETTING_HALLIC_OPEN: - hallic_open = val; - update_display_time(); - if ((get_pm_cur_state() == S_NORMAL) || (get_pm_cur_state() == S_LCDDIM)) - states[get_pm_cur_state()].trans(EVENT_INPUT); - else if ((get_pm_cur_state() == S_SLEEP) && hallic_open) - proc_change_state(S_LCDOFF, INTERNAL_LOCK_HALLIC); - break; case SETTING_LOW_BATT: if (low_battery_state(val)) { if (!(get_pm_status_flag() & CHRGR_FLAG)) diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 81f0750..6980389 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -104,7 +104,6 @@ static unsigned int custom_normal_timeout = 0; static unsigned int custom_dim_timeout = 0; int custom_holdkey_block = false; static char *custom_change_name; -static bool hallic_open = true; static guint lock_timeout_id; static guint transit_timer; static int lock_screen_timeout = LOCK_SCREEN_INPUT_TIMEOUT; @@ -475,11 +474,6 @@ int low_battery_state(int val) return false; } -int get_hallic_open(void) -{ - return hallic_open; -} - void get_pname(pid_t pid, char *pname) { char buf[PATH_MAX]; @@ -629,15 +623,7 @@ static void update_display_time(void) { int run_timeout, val; - /* first priority : s cover */ - if (!hallic_open) { - states[S_NORMAL].timeout = S_COVER_TIMEOUT; - _I("S cover closed: Timeout(%d ms) is set by normal.", - S_COVER_TIMEOUT); - return; - } - - /* second priority : custom timeout */ + /* first priority : custom timeout */ if (custom_normal_timeout > 0) { states[S_NORMAL].timeout = custom_normal_timeout; states[S_LCDDIM].timeout = custom_dim_timeout; @@ -646,7 +632,7 @@ static void update_display_time(void) return; } - /* third priority : lock state */ + /* second priority : lock state */ if ((__get_lock_screen_state() == VCONFKEY_IDLE_LOCK) && !get_lock_screen_bg_state()) { /* timeout is different according to key or event. */ @@ -1276,7 +1262,7 @@ int check_lcdoff_direct(void) return true; lock = __get_lock_screen_state(); - if (lock != VCONFKEY_IDLE_LOCK && hallic_open) + if (lock != VCONFKEY_IDLE_LOCK) return false; hdmi_state = extcon_get_status(EXTCON_CABLE_HDMI); @@ -1610,14 +1596,6 @@ static int update_setting(int key_idx, int val) update_display_time(); states[get_pm_cur_state()].trans(EVENT_INPUT); break; - case SETTING_HALLIC_OPEN: - hallic_open = val; - update_display_time(); - if ((get_pm_cur_state() == S_NORMAL) || (get_pm_cur_state() == S_LCDDIM)) - states[get_pm_cur_state()].trans(EVENT_INPUT); - else if ((get_pm_cur_state() == S_SLEEP) && hallic_open) - proc_change_state(S_LCDOFF, INTERNAL_LOCK_HALLIC); - break; case SETTING_LOW_BATT: if (low_battery_state(val)) { if (!(get_pm_status_flag() & CHRGR_FLAG)) diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index eecdd01..b1e1ab7 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -102,7 +102,6 @@ static unsigned int custom_normal_timeout = 0; static unsigned int custom_dim_timeout = 0; int custom_holdkey_block = false; static char *custom_change_name; -static bool hallic_open = true; static guint lock_timeout_id; static guint transit_timer; static int lock_screen_timeout = LOCK_SCREEN_INPUT_TIMEOUT; @@ -468,11 +467,6 @@ int low_battery_state(int val) return false; } -int get_hallic_open(void) -{ - return hallic_open; -} - void get_pname(pid_t pid, char *pname) { char buf[PATH_MAX]; @@ -622,15 +616,7 @@ static void update_display_time(void) { int run_timeout, val; - /* first priority : s cover */ - if (!hallic_open) { - states[S_NORMAL].timeout = S_COVER_TIMEOUT; - _I("S cover closed: Timeout(%d ms) is set by normal.", - S_COVER_TIMEOUT); - return; - } - - /* second priority : custom timeout */ + /* first priority : custom timeout */ if (custom_normal_timeout > 0) { states[S_NORMAL].timeout = custom_normal_timeout; states[S_LCDDIM].timeout = custom_dim_timeout; @@ -639,7 +625,7 @@ static void update_display_time(void) return; } - /* third priority : lock state */ + /* second priority : lock state */ if ((__get_lock_screen_state() == VCONFKEY_IDLE_LOCK) && !get_lock_screen_bg_state()) { /* timeout is different according to key or event. */ @@ -1266,7 +1252,7 @@ int check_lcdoff_direct(void) return true; lock = __get_lock_screen_state(); - if (lock != VCONFKEY_IDLE_LOCK && hallic_open) + if (lock != VCONFKEY_IDLE_LOCK) return false; hdmi_state = extcon_get_status(EXTCON_CABLE_HDMI); @@ -1600,14 +1586,6 @@ static int update_setting(int key_idx, int val) update_display_time(); states[get_pm_cur_state()].trans(EVENT_INPUT); break; - case SETTING_HALLIC_OPEN: - hallic_open = val; - update_display_time(); - if ((get_pm_cur_state() == S_NORMAL) || (get_pm_cur_state() == S_LCDDIM)) - states[get_pm_cur_state()].trans(EVENT_INPUT); - else if ((get_pm_cur_state() == S_SLEEP) && hallic_open) - proc_change_state(S_LCDOFF, INTERNAL_LOCK_HALLIC); - break; case SETTING_LOW_BATT: if (low_battery_state(val)) { if (!(get_pm_status_flag() & CHRGR_FLAG)) diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index b402d7e..da8f29e 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -113,7 +113,6 @@ static unsigned int custom_normal_timeout = 0; static unsigned int custom_dim_timeout = 0; int custom_holdkey_block = false; static char *custom_change_name; -static bool hallic_open = true; static guint lock_timeout_id; static guint transit_timer; static int lock_screen_timeout = LOCK_SCREEN_INPUT_TIMEOUT; @@ -686,11 +685,6 @@ int low_battery_state(int val) return false; } -int get_hallic_open(void) -{ - return hallic_open; -} - void get_pname(pid_t pid, char *pname) { char buf[PATH_MAX]; @@ -840,15 +834,7 @@ static void update_display_time(void) { int run_timeout, val; - /* first priority : s cover */ - if (!hallic_open) { - states[S_NORMAL].timeout = S_COVER_TIMEOUT; - _I("S cover closed: Timeout(%d ms) is set by normal.", - S_COVER_TIMEOUT); - return; - } - - /* second priority : custom timeout */ + /* first priority : custom timeout */ if (custom_normal_timeout > 0) { states[S_NORMAL].timeout = custom_normal_timeout; states[S_LCDDIM].timeout = custom_dim_timeout; @@ -857,7 +843,7 @@ static void update_display_time(void) return; } - /* third priority : lock state */ + /* second priority : lock state */ if ((__get_lock_screen_state() == VCONFKEY_IDLE_LOCK) && !get_lock_screen_bg_state()) { /* timeout is different according to key or event. */ @@ -1517,7 +1503,7 @@ int check_lcdoff_direct(void) return true; lock = __get_lock_screen_state(); - if (lock != VCONFKEY_IDLE_LOCK && hallic_open) + if (lock != VCONFKEY_IDLE_LOCK) return false; hdmi_state = extcon_get_status(EXTCON_CABLE_HDMI); @@ -1871,14 +1857,6 @@ static int update_setting(int key_idx, int val) update_display_time(); states[get_pm_cur_state()].trans(EVENT_INPUT); break; - case SETTING_HALLIC_OPEN: - hallic_open = val; - update_display_time(); - if ((get_pm_cur_state() == S_NORMAL) || (get_pm_cur_state() == S_LCDDIM)) - states[get_pm_cur_state()].trans(EVENT_INPUT); - else if ((get_pm_cur_state() == S_SLEEP) && hallic_open) - proc_change_state(S_LCDOFF, INTERNAL_LOCK_HALLIC); - break; case SETTING_LOW_BATT: if (low_battery_state(val)) { if (!(get_pm_status_flag() & CHRGR_FLAG)) diff --git a/src/display/poll.h b/src/display/poll.h index aed0736..9328cac 100644 --- a/src/display/poll.h +++ b/src/display/poll.h @@ -62,7 +62,6 @@ enum { INTERNAL_LOCK_EARJACK, INTERNAL_LOCK_POWERKEY, INTERNAL_LOCK_PM, - INTERNAL_LOCK_HALLIC, INTERNAL_LOCK_SWIM, INTERNAL_LOCK_OVERHEAT, INTERNAL_LOCK_OVERCOOL, diff --git a/src/display/setting.h b/src/display/setting.h index 284fb62..077f505 100644 --- a/src/display/setting.h +++ b/src/display/setting.h @@ -42,7 +42,6 @@ enum { SETTING_LOW_BATT, SETTING_CHARGING, SETTING_POWEROFF, - SETTING_HALLIC_OPEN, SETTING_LOCK_SCREEN_BG, SETTING_END }; -- 2.7.4 From 0229a9c3bb3a213ffb5f9f00d7f2ccd2a8be9559 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Fri, 17 Feb 2023 17:26:45 +0900 Subject: [PATCH 03/16] display: Add functions related to brightness Move plugin static functions to core(display module). This is for moving backlight_ops functions related to brightess without dependency. int display_backlight_get_max_brightness(int *max_brightness) -> This function replaces the get_max_brightness function located in plugins. int display_backlight_get_normalized_brightness(int raw_brightness, int *normalized_brightness) -> This function replaces the get_brt_normalized function located in plugins. Change-Id: I7452f90075ef63acdc8f595fe99d47e0bfe4f4a1 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 81 +++++------------------- plugins/mobile/display/device-interface.c | 81 +++++------------------- plugins/tv/display/device-interface.c | 81 +++++------------------- plugins/wearable/display/device-interface.c | 81 +++++------------------- src/display/display-backlight.c | 90 +++++++++++++++++++++++++++ src/display/display-backlight.h | 26 ++++++++ 6 files changed, 184 insertions(+), 256 deletions(-) create mode 100644 src/display/display-backlight.c create mode 100644 src/display/display-backlight.h diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 1d716b7..4e7b22d 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -45,6 +45,7 @@ #include "display/display-dpms.h" #include "display/display.h" #include "display/display-lock.h" +#include "display/display-backlight.h" #define TOUCH_ON 1 #define TOUCH_OFF 0 @@ -374,47 +375,19 @@ static int get_default_brt(void) return default_brightness; } -static int get_max_brightness(void) -{ - static int max = -1; - int ret; - - if (max > 0) - return max; - - if (!display_dev_available) { - _E("There is no HAL for display."); - return -ENOENT; - } - - ret = hal_device_display_get_max_brightness(&max); - if (ret < 0) { - if (ret == -ENODEV) { - _E("Get max brightness is not supported."); - max = DEFAULT_DISPLAY_MAX_BRIGHTNESS; - return max; - } else { - _E("Failed to get max brightness: %d", ret); - return ret; - } - } - - return max; -} - static int set_brightness(int val) { - int max; + int max, ret; if (!display_dev_available) { _E("There is no display device."); return -ENOENT; } - max = get_max_brightness(); - if (max < 0) { + ret = display_backlight_get_max_brightness(&max); + if (ret < 0) { _E("Failed to get max brightness."); - return max; + return ret; } if (force_brightness > 0 && val != PM_DIM_BRIGHTNESS) { @@ -436,36 +409,6 @@ static int set_brightness(int val) return hal_device_display_set_brightness(val); } -static int get_brt_normalized(int brt_raw) -{ - int quotient, remainder; - int max; - - max = get_max_brightness(); - if (max < 0) { - _E("Failed to get max brightness."); - return max; - } - - /* Maximum Brightness to users is 100. - * Thus the brightness value need to be calculated using real brightness. - * ex) Let's suppose that the maximum brightness of driver is 255. - * case 1) When the user sets the brightness to 41, - * real brightness is - * 41 * 255 / 100 = 104.55 = 104 (rounded off) - * case 2) When the user gets the brightness, - * the driver returns the brightness 104. - * Thus the brightness to users is - * 104 * 100 / 255 = 40.7843.... = 41 (rounded up) - */ - quotient = brt_raw * 100 / max; - remainder = brt_raw * 100 % max; - if (remainder > 0) - quotient++; - - return quotient; -} - static int get_brightness(int *val) { int brt, ret; @@ -485,7 +428,12 @@ static int get_brightness(int *val) return ret; } - *val = get_brt_normalized(brt); + ret = display_backlight_get_normalized_brightness(brt, val); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } @@ -507,7 +455,12 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return ret; } - *brt = get_brt_normalized(brt_raw); + ret = display_backlight_get_normalized_brightness(brt_raw, brt); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index f35f24d..9bfb003 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -44,6 +44,7 @@ #include "display/display-dpms.h" #include "display/display.h" #include "display/display-lock.h" +#include "display/display-backlight.h" #include "power/power-boot.h" #include "power/power-suspend.h" @@ -373,47 +374,19 @@ static int get_default_brt(void) return default_brightness; } -static int get_max_brightness(void) -{ - static int max = -1; - int ret; - - if (max > 0) - return max; - - if (!display_dev_available) { - _E("There is no HAL for display."); - return -ENOENT; - } - - ret = hal_device_display_get_max_brightness(&max); - if (ret < 0) { - if (ret == -ENODEV) { - _E("Get max brightness is not supported."); - max = DEFAULT_DISPLAY_MAX_BRIGHTNESS; - return max; - } else { - _E("Failed to get max brightness: %d", ret); - return ret; - } - } - - return max; -} - static int set_brightness(int val) { - int max; + int max, ret; if (!display_dev_available) { _E("There is no display device."); return -ENOENT; } - max = get_max_brightness(); - if (max < 0) { + ret = display_backlight_get_max_brightness(&max); + if (ret < 0) { _E("Failed to get max brightness."); - return max; + return ret; } if (force_brightness > 0 && val != PM_DIM_BRIGHTNESS) { @@ -435,36 +408,6 @@ static int set_brightness(int val) return hal_device_display_set_brightness(val); } -static int get_brt_normalized(int brt_raw) -{ - int quotient, remainder; - int max; - - max = get_max_brightness(); - if (max < 0) { - _E("Failed to get max brightness."); - return max; - } - - /* Maximum Brightness to users is 100. - * Thus the brightness value need to be calculated using real brightness. - * ex) Let's suppose that the maximum brightness of driver is 255. - * case 1) When the user sets the brightness to 41, - * real brightness is - * 41 * 255 / 100 = 104.55 = 104 (rounded off) - * case 2) When the user gets the brightness, - * the driver returns the brightness 104. - * Thus the brightness to users is - * 104 * 100 / 255 = 40.7843.... = 41 (rounded up) - */ - quotient = brt_raw * 100 / max; - remainder = brt_raw * 100 % max; - if (remainder > 0) - quotient++; - - return quotient; -} - static int get_brightness(int *val) { int brt, ret; @@ -484,7 +427,12 @@ static int get_brightness(int *val) return ret; } - *val = get_brt_normalized(brt); + ret = display_backlight_get_normalized_brightness(brt, val); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } @@ -506,7 +454,12 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return ret; } - *brt = get_brt_normalized(brt_raw); + ret = display_backlight_get_normalized_brightness(brt_raw, brt); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index a136a0e..89081e0 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -43,6 +43,7 @@ #include "core.h" #include "display/display-dpms.h" #include "display/display.h" +#include "display/display-backlight.h" #include "power/power-suspend.h" #include "display/display-lock.h" @@ -374,47 +375,19 @@ static int get_default_brt(void) return default_brightness; } -static int get_max_brightness(void) -{ - static int max = -1; - int ret; - - if (max > 0) - return max; - - if (!display_dev_available) { - _E("There is no HAL for display device."); - return -ENOENT; - } - - ret = hal_device_display_get_max_brightness(&max); - if (ret < 0) { - if (ret == -ENODEV) { - _E("Get max brightness is not supported."); - max = DEFAULT_DISPLAY_MAX_BRIGHTNESS; - return max; - } else { - _E("Failed to get max brightness: %d", ret); - return ret; - } - } - - return max; -} - static int set_brightness(int val) { - int max; + int max, ret; if (!display_dev_available) { _E("There is no display device."); return -ENOENT; } - max = get_max_brightness(); - if (max < 0) { + ret = display_backlight_get_max_brightness(&max); + if (ret < 0) { _E("Failed to get max brightness."); - return max; + return ret; } if (force_brightness > 0 && val != PM_DIM_BRIGHTNESS) { @@ -436,36 +409,6 @@ static int set_brightness(int val) return hal_device_display_set_brightness(val); } -static int get_brt_normalized(int brt_raw) -{ - int quotient, remainder; - int max; - - max = get_max_brightness(); - if (max < 0) { - _E("Failed to get max brightness."); - return max; - } - - /* Maximum Brightness to users is 100. - * Thus the brightness value need to be calculated using real brightness. - * ex) Let's suppose that the maximum brightness of driver is 255. - * case 1) When the user sets the brightness to 41, - * real brightness is - * 41 * 255 / 100 = 104.55 = 104 (rounded off) - * case 2) When the user gets the brightness, - * the driver returns the brightness 104. - * Thus the brightness to users is - * 104 * 100 / 255 = 40.7843.... = 41 (rounded up) - */ - quotient = brt_raw * 100 / max; - remainder = brt_raw * 100 % max; - if (remainder > 0) - quotient++; - - return quotient; -} - static int get_brightness(int *val) { int brt, ret; @@ -485,7 +428,12 @@ static int get_brightness(int *val) return ret; } - *val = get_brt_normalized(brt); + ret = display_backlight_get_normalized_brightness(brt, val); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } @@ -507,7 +455,12 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return ret; } - *brt = get_brt_normalized(brt_raw); + ret = display_backlight_get_normalized_brightness(brt_raw, brt); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index e859f29..e9d442a 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -44,6 +44,7 @@ #include "display/display-dpms.h" #include "display/display.h" #include "display/display-lock.h" +#include "display/display-backlight.h" #include "battery-monitor.h" #include "battery/power-supply.h" #include "power/power-suspend.h" @@ -385,47 +386,19 @@ static int get_default_brt(void) return default_brightness; } -static int get_max_brightness(void) -{ - static int max = -1; - int ret; - - if (max > 0) - return max; - - if (!display_dev_available) { - _E("There is no HAL for display."); - return -ENOENT; - } - - ret = hal_device_display_get_max_brightness(&max); - if (ret < 0) { - if (ret == -ENODEV) { - _E("Get max brightness is not supported."); - max = DEFAULT_DISPLAY_MAX_BRIGHTNESS; - return max; - } else { - _E("Failed to get max brightness: %d", ret); - return ret; - } - } - - return max; -} - static int set_brightness(int val) { - int max; + int max, ret; if (!display_dev_available) { _E("There is no display device."); return -ENOENT; } - max = get_max_brightness(); - if (max < 0) { + ret = display_backlight_get_max_brightness(&max); + if (ret < 0) { _E("Failed to get max brightness."); - return max; + return ret; } if (force_brightness > 0 && val != PM_DIM_BRIGHTNESS) { @@ -448,36 +421,6 @@ static int set_brightness(int val) return hal_device_display_set_brightness(val); } -static int get_brt_normalized(int brt_raw) -{ - int quotient, remainder; - int max; - - max = get_max_brightness(); - if (max < 0) { - _E("Failed to get max brightness."); - return max; - } - - /* Maximum Brightness to users is 100. - * Thus the brightness value need to be calculated using real brightness. - * ex) Let's suppose that the maximum brightness of driver is 255. - * case 1) When the user sets the brightness to 41, - * real brightness is - * 41 * 255 / 100 = 104.55 = 104 (rounded off) - * case 2) When the user gets the brightness, - * the driver returns the brightness 104. - * Thus the brightness to users is - * 104 * 100 / 255 = 40.7843.... = 41 (rounded up) - */ - quotient = brt_raw * 100 / max; - remainder = brt_raw * 100 % max; - if (remainder > 0) - quotient++; - - return quotient; -} - static int get_brightness(int *val) { int brt, ret; @@ -497,7 +440,12 @@ static int get_brightness(int *val) return ret; } - *val = get_brt_normalized(brt); + ret = display_backlight_get_normalized_brightness(brt, val); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } @@ -519,7 +467,12 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return ret; } - *brt = get_brt_normalized(brt_raw); + ret = display_backlight_get_normalized_brightness(brt_raw, brt); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + return 0; } diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c new file mode 100644 index 0000000..eea7666 --- /dev/null +++ b/src/display/display-backlight.c @@ -0,0 +1,90 @@ +/* + * deviced + * + * Copyright (c) 2023 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "shared/log.h" +#include "display.h" +#include "display-backlight.h" + +/* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ +int display_backlight_get_max_brightness(int *max_brightness) +{ + static int max = -1; + int ret = 0; + + if (!max_brightness) + return -EINVAL; + + if (max > 0) { + *max_brightness = max; + return 0; + } + + if (!display_is_hal_backend_available()) { + _E("There is no HAL for display."); + return -ENOENT; + } + + ret = hal_device_display_get_max_brightness(&max); + if (ret == -ENODEV) { + _W("Get max brightness is not supported."); + *max_brightness = DEFAULT_DISPLAY_MAX_BRIGHTNESS; + return 0; + } else if (ret < 0) { + _E("Failed to get max brightness: %d", ret); + } + + return ret; +} + +/* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ +int display_backlight_get_normalized_brightness(int raw_brightness, + int *normalized_brightness) +{ + int quotient, remainder; + int max, ret; + + if (!normalized_brightness) + return -EINVAL; + + ret = display_backlight_get_max_brightness(&max); + if (ret < 0) { + _E("Failed to get max brightness."); + return ret; + } + + /** + * Thus the brightness value need to be calculated using real brightness. + * ex) Let's suppose that the maximum brightness of driver is 255. + * case 1) When the user sets the brightness to 41, + * real brightness is + * 41 * 255 / 100 = 104.55 = 104 (rounded off) + * case 2) When the user gets the brightness, + * the driver returns the brightness 104. + * Thus the brightness to users is + * 104 * 100 / 255 = 40.7843.... = 41 (rounded up) + */ + quotient = raw_brightness * 100 / max; + remainder = raw_brightness * 100 % max; + if (remainder > 0) + quotient++; + + *normalized_brightness = quotient; + return 0; +} \ No newline at end of file diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h new file mode 100644 index 0000000..cbf663c --- /dev/null +++ b/src/display/display-backlight.h @@ -0,0 +1,26 @@ +/* + * deviced + * + * Copyright (c) 2023 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DISPLAY_BACKLIGHT_H__ +#define __DISPLAY_BACKLIGHT_H__ + +int display_backlight_get_max_brightness(int *max_brightness); +int display_backlight_get_normalized_brightness(int raw_brightness, + int *normalized_brightness); + +#endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file -- 2.7.4 From a7997024e7e06e89c27761a3739632d21c9b8f7a Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Fri, 17 Feb 2023 16:33:47 +0900 Subject: [PATCH 04/16] display: Add display_panel_set_dpms_state function To move plugin functions without plugin dependency, this temporary function is needed. int display_panel_set_dpms_state(int dpms_on, enum device_flags flags) -> This function replaces the bl_onoff function of plugins. Change-Id: I0720781ba1cb2afeda5e461c1d979d4a9f2ceb4d Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 25 +++++-------------------- plugins/mobile/display/device-interface.c | 25 +++++-------------------- plugins/tv/display/device-interface.c | 25 +++++-------------------- plugins/wearable/display/device-interface.c | 25 +++++-------------------- src/display/display-panel.c | 21 ++++++++++++++++++++- src/display/display-panel.h | 3 +++ 6 files changed, 43 insertions(+), 81 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 4e7b22d..8e9ad6b 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -46,6 +46,7 @@ #include "display/display.h" #include "display/display-lock.h" #include "display/display-backlight.h" +#include "display/display-panel.h" #define TOUCH_ON 1 #define TOUCH_OFF 0 @@ -94,22 +95,6 @@ void dpms_set_running_state(int val) dpms_running_state = val; } -static int bl_onoff(int on, enum device_flags flags) -{ - dpms_set_state(on); - -#ifdef ENABLE_PM_LOG - if (on == DPMS_ON) - pm_history_save(PM_LOG_LCD_ON_COMPLETE, get_pm_cur_state()); - else if (on == DPMS_OFF || on == DPMS_FORCE_OFF) - pm_history_save(PM_LOG_LCD_OFF_COMPLETE, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_CONTROL_FAIL, on); -#endif - - return 0; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -227,7 +212,7 @@ static int backlight_on(enum device_flags flags) _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); cnt++; - ret = bl_onoff(DPMS_ON, flags); + ret = display_panel_set_dpms_state(DPMS_ON, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); #endif @@ -255,9 +240,9 @@ static int backlight_off(enum device_flags flags) LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); if (flags & FORCE_OFF_MODE) - ret = bl_onoff(DPMS_FORCE_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); else - ret = bl_onoff(DPMS_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_OFF, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); @@ -354,7 +339,7 @@ static int backlight_standby(int force) if ((dpms_get_cached_state() == DPMS_ON) || force) { _I("LCD standby"); - ret = bl_onoff(DPMS_STANDBY, 0); + ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); } return ret; diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index 9bfb003..8ee2752 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -45,6 +45,7 @@ #include "display/display.h" #include "display/display-lock.h" #include "display/display-backlight.h" +#include "display/display-panel.h" #include "power/power-boot.h" #include "power/power-suspend.h" @@ -93,22 +94,6 @@ void dpms_set_running_state(int val) dpms_running_state = val; } -static int bl_onoff(int on, enum device_flags flags) -{ - dpms_set_state(on); - -#ifdef ENABLE_PM_LOG - if (on == DPMS_ON) - pm_history_save(PM_LOG_LCD_ON_COMPLETE, get_pm_cur_state()); - else if (on == DPMS_OFF || on == DPMS_FORCE_OFF) - pm_history_save(PM_LOG_LCD_OFF_COMPLETE, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_CONTROL_FAIL, on); -#endif - - return 0; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -226,7 +211,7 @@ static int backlight_on(enum device_flags flags) _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); cnt++; - ret = bl_onoff(DPMS_ON, flags); + ret = display_panel_set_dpms_state(DPMS_ON, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); #endif @@ -254,9 +239,9 @@ static int backlight_off(enum device_flags flags) LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); if (flags & FORCE_OFF_MODE) - ret = bl_onoff(DPMS_FORCE_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); else - ret = bl_onoff(DPMS_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_OFF, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); @@ -353,7 +338,7 @@ static int backlight_standby(int force) if ((dpms_get_cached_state() == DPMS_ON) || force) { _I("LCD standby"); - ret = bl_onoff(DPMS_STANDBY, 0); + ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); } return ret; diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 89081e0..41eea37 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -42,6 +42,7 @@ #include "vconf.h" #include "core.h" #include "display/display-dpms.h" +#include "display/display-panel.h" #include "display/display.h" #include "display/display-backlight.h" #include "power/power-suspend.h" @@ -94,22 +95,6 @@ void dpms_set_running_state(int val) dpms_running_state = val; } -static int bl_onoff(int on, enum device_flags flags) -{ - dpms_set_state(on); - -#ifdef ENABLE_PM_LOG - if (on == DPMS_ON) - pm_history_save(PM_LOG_LCD_ON_COMPLETE, get_pm_cur_state()); - else if (on == DPMS_OFF || on == DPMS_FORCE_OFF) - pm_history_save(PM_LOG_LCD_OFF_COMPLETE, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_CONTROL_FAIL, on); -#endif - - return 0; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -227,7 +212,7 @@ static int backlight_on(enum device_flags flags) _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); cnt++; - ret = bl_onoff(DPMS_ON, flags); + ret = display_panel_set_dpms_state(DPMS_ON, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); #endif @@ -255,9 +240,9 @@ static int backlight_off(enum device_flags flags) LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); if (flags & FORCE_OFF_MODE) - ret = bl_onoff(DPMS_FORCE_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); else - ret = bl_onoff(DPMS_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_OFF, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); @@ -354,7 +339,7 @@ static int backlight_standby(int force) if ((dpms_get_cached_state() == DPMS_ON) || force) { _I("LCD standby"); - ret = bl_onoff(DPMS_STANDBY, 0); + ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); } return ret; diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index e9d442a..4cd6cb1 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -45,6 +45,7 @@ #include "display/display.h" #include "display/display-lock.h" #include "display/display-backlight.h" +#include "display/display-panel.h" #include "battery-monitor.h" #include "battery/power-supply.h" #include "power/power-suspend.h" @@ -106,22 +107,6 @@ void dpms_set_running_state(int val) dpms_running_state = val; } -static int bl_onoff(int on, enum device_flags flags) -{ - dpms_set_state(on); - -#ifdef ENABLE_PM_LOG - if (on == DPMS_ON) - pm_history_save(PM_LOG_LCD_ON_COMPLETE, get_pm_cur_state()); - else if (on == DPMS_OFF || on == DPMS_FORCE_OFF) - pm_history_save(PM_LOG_LCD_OFF_COMPLETE, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_CONTROL_FAIL, on); -#endif - - return 0; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -238,7 +223,7 @@ static int backlight_on(enum device_flags flags) _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); cnt++; - ret = bl_onoff(DPMS_ON, flags); + ret = display_panel_set_dpms_state(DPMS_ON, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); #endif @@ -266,9 +251,9 @@ static int backlight_off(enum device_flags flags) LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); if (flags & FORCE_OFF_MODE) - ret = bl_onoff(DPMS_FORCE_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); else - ret = bl_onoff(DPMS_OFF, flags); + ret = display_panel_set_dpms_state(DPMS_OFF, flags); #ifdef ENABLE_PM_LOG pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); @@ -365,7 +350,7 @@ static int backlight_standby(int force) if ((dpms_get_cached_state() == DPMS_ON) || force) { _I("LCD standby"); - ret = bl_onoff(DPMS_STANDBY, 0); + ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); } return ret; diff --git a/src/display/display-panel.c b/src/display/display-panel.c index 9d65416..ec7d96d 100644 --- a/src/display/display-panel.c +++ b/src/display/display-panel.c @@ -17,14 +17,33 @@ */ #include "shared/log.h" -#include "display-panel.h" +#include "power/power-suspend.h" #include "display.h" +#include "display-dpms.h" +#include "display-panel.h" #define MAX_WHITE_BALANCE_GAIN 2047 #define MAX_WHITE_BALANCE_OFFSET 2047 #define DEFAULT_WHITE_BALANCE_GAIN 1024 #define DEFAULT_WHITE_BALANCE_OFFSET 0 +/* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ +int display_panel_set_dpms_state(int dpms_on, enum device_flags flags) +{ + dpms_set_state(dpms_on); + +#ifdef ENABLE_PM_LOG + if (dpms_on == DPMS_ON) + pm_history_save(PM_LOG_LCD_ON_COMPLETE, get_pm_cur_state()); + else if (dpms_on == DPMS_OFF || dpms_on == DPMS_FORCE_OFF) + pm_history_save(PM_LOG_LCD_OFF_COMPLETE, get_pm_cur_state()); + else + pm_history_save(PM_LOG_LCD_CONTROL_FAIL, dpms_on); +#endif + + return 0; +} + int display_panel_set_white_balance(enum hal_display_white_balance white_balance_type, int value) { diff --git a/src/display/display-panel.h b/src/display/display-panel.h index efe6e45..7ca5d63 100644 --- a/src/display/display-panel.h +++ b/src/display/display-panel.h @@ -21,6 +21,9 @@ #include +#include "shared/devices.h" + +int display_panel_set_dpms_state(int dpms_on, enum device_flags flags); int display_panel_set_white_balance(enum hal_display_white_balance white_balance_type, int value); int display_panel_get_white_balance(enum hal_display_white_balance white_balance_type, int* out_val); -- 2.7.4 From 1db7b01e325710efcfceb049a9b7ba4b617f071b Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Mon, 20 Feb 2023 14:54:19 +0900 Subject: [PATCH 05/16] display: Move image effect functions from plugins to core display module Remove and redefine functions related to display image effect. These functions are added below display-panel. int display_panel_set_image_effect(enum display_image_effect effect); int display_panel_get_image_effect(enum display_image_effect *effect); -> With display_image_effect enum type, it is possible to get and set image effect type. Change-Id: I479aa296053ef75b18b4e4b2c3f93e40ecc03191 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 49 -------------------------- plugins/mobile/display/device-interface.c | 49 -------------------------- plugins/tv/display/device-interface.c | 49 -------------------------- plugins/wearable/display/device-interface.c | 49 -------------------------- plugins/wearable/display/enhance.c | 3 +- src/display/device-interface.h | 2 -- src/display/display-panel.c | 50 +++++++++++++++++++++++++++ src/display/display-panel.h | 3 ++ 8 files changed, 55 insertions(+), 199 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 8e9ad6b..6510fb1 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -449,53 +449,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_image_effect(enum display_image_effect *effect) -{ - int ret; - enum display_image_effect val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_image_effect(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get image effect is not supported."); - else - _E("Failed to get image effect: %d", ret); - - return ret; - } - - *effect = val; - - return 0; -} - -static int set_image_effect(enum display_image_effect effect) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_image_effect(effect); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set image effect is not supported."); - else - _E("Failed to set image effect: %d", ret); - - return ret; - } - - return 0; -} - static int get_panel_mode(enum display_panel_mode *mode) { int ret; @@ -703,8 +656,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_image_effect = get_image_effect, - .set_image_effect = set_image_effect, .get_panel_mode = get_panel_mode, .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index 8ee2752..d29eec4 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -448,53 +448,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_image_effect(enum display_image_effect *effect) -{ - int ret; - enum display_image_effect val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_image_effect(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get image effect is not supported."); - else - _E("Failed to get image effect: %d", ret); - - return ret; - } - - *effect = val; - - return 0; -} - -static int set_image_effect(enum display_image_effect effect) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_image_effect(effect); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set image effect is not supported."); - else - _E("Failed to set image effect: %d", ret); - - return ret; - } - - return 0; -} - static int get_panel_mode(enum display_panel_mode *mode) { int ret; @@ -702,8 +655,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_image_effect = get_image_effect, - .set_image_effect = set_image_effect, .get_panel_mode = get_panel_mode, .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 41eea37..a08e78d 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -449,53 +449,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_image_effect(enum display_image_effect *effect) -{ - int ret; - enum display_image_effect val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_image_effect(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get image effect is not supported."); - else - _E("Failed to get image effect: %d", ret); - - return ret; - } - - *effect = val; - - return 0; -} - -static int set_image_effect(enum display_image_effect effect) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_image_effect(effect); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set image effect is not supported."); - else - _E("Failed to set image effect: %d", ret); - - return ret; - } - - return 0; -} - static int get_panel_mode(enum display_panel_mode *mode) { int ret; @@ -703,8 +656,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_image_effect = get_image_effect, - .set_image_effect = set_image_effect, .get_panel_mode = get_panel_mode, .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 4cd6cb1..f4b152d 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -461,53 +461,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_image_effect(enum display_image_effect *effect) -{ - int ret; - enum display_image_effect val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_image_effect(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get image effect is not supported."); - else - _E("Failed to get image effect: %d", ret); - - return ret; - } - - *effect = val; - - return 0; -} - -static int set_image_effect(enum display_image_effect effect) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_image_effect(effect); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set image effect is not supported."); - else - _E("Failed to set image effect: %d", ret); - - return ret; - } - - return 0; -} - static int get_panel_mode(enum display_panel_mode *mode) { int ret; @@ -768,8 +721,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_image_effect = get_image_effect, - .set_image_effect = set_image_effect, .get_panel_mode = get_panel_mode, .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, diff --git a/plugins/wearable/display/enhance.c b/plugins/wearable/display/enhance.c index 56d3a04..21dfb9c 100644 --- a/plugins/wearable/display/enhance.c +++ b/plugins/wearable/display/enhance.c @@ -25,6 +25,7 @@ #include "display/core.h" #include "display/display-ops.h" +#include "display/display-panel.h" #include "shared/devices.h" #include "core/log.h" #include "shared/common.h" @@ -54,7 +55,7 @@ static int enhance_update_state(void) else state = DISPLAY_IMAGE_EFFECT_STANDARD; - backlight_ops->set_image_effect(state); + display_panel_set_image_effect(state); return state; } diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 759ff50..7e7478f 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -80,8 +80,6 @@ struct _backlight_ops { int (*get_brightness_raw)(int *val); void (*restore_brightness_func)(void); int (*get_brightness_by_light_sensor)(float lmax, float lmin, float light, int *brt); - int (*get_image_effect)(enum display_image_effect *effect); - int (*set_image_effect)(enum display_image_effect effect); int (*get_panel_mode)(enum display_panel_mode *mode); int (*set_panel_mode)(enum display_panel_mode mode); int (*get_frame_rate)(int *rate); diff --git a/src/display/display-panel.c b/src/display/display-panel.c index ec7d96d..704aa46 100644 --- a/src/display/display-panel.c +++ b/src/display/display-panel.c @@ -111,4 +111,54 @@ int display_panel_get_white_balance(enum hal_display_white_balance white_balance _E("Failed to get white balance value."); return ret; +} + +/* FIXME: This function is used for only wearable profile, should be fixed after plugin refactoring */ +int display_panel_set_image_effect(enum display_image_effect effect) +{ + int ret; + + if (!display_is_hal_backend_available()) { + _E("There is no display device."); + return -ENOENT; + } + + ret = hal_device_display_set_image_effect(effect); + if (ret < 0) { + if (ret == -ENODEV) + _E("Set image effect is not supported."); + else + _E("Failed to set image effect: %d", ret); + return ret; + } + + return 0; +} + +/* FIXME: This function is deprecated, should be fixed after plugin refactoring */ +int display_panel_get_image_effect(enum display_image_effect *effect) +{ + int ret; + enum display_image_effect val; + + if (!effect) + return -EINVAL; + + if (!display_is_hal_backend_available()) { + _E("There is no display device."); + return -ENOENT; + } + + ret = hal_device_display_get_image_effect(&val); + if (ret < 0) { + if (ret == -ENODEV) + _E("Get image effect is not supported."); + else + _E("Failed to get image effect: %d", ret); + return ret; + } + + *effect = val; + + return 0; } \ No newline at end of file diff --git a/src/display/display-panel.h b/src/display/display-panel.h index 7ca5d63..b81d42c 100644 --- a/src/display/display-panel.h +++ b/src/display/display-panel.h @@ -26,5 +26,8 @@ int display_panel_set_dpms_state(int dpms_on, enum device_flags flags); int display_panel_set_white_balance(enum hal_display_white_balance white_balance_type, int value); int display_panel_get_white_balance(enum hal_display_white_balance white_balance_type, int* out_val); +/* Deprecated functions */ +int display_panel_set_image_effect(enum display_image_effect effect); +int display_panel_get_image_effect(enum display_image_effect *effect); #endif /* __DISPLAY_PANEL_H__ */ \ No newline at end of file -- 2.7.4 From d555b26f17fb31eda0c6b417167d0759a2e55020 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Mon, 20 Feb 2023 16:50:57 +0900 Subject: [PATCH 06/16] display: Move getter and setter panel mode from plugins to core display module Remove and redefine panel mode getter/setter. These functions are added below display-panel. int display_panel_set_panel_mode(enum display_panel_mode mode); int display_panel_get_panel_mode(enum display_panel_mode *mode); -> With display_panel_mode enum type, it is possible to get and set panel mode type. Change-Id: Ideb2a6867e79ae7f9e7a51cb6386edcc32244cf4 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 49 -------------------------- plugins/mobile/display/device-interface.c | 49 -------------------------- plugins/tv/display/device-interface.c | 49 -------------------------- plugins/wearable/display/device-interface.c | 49 -------------------------- src/display/device-interface.h | 2 -- src/display/display-panel.c | 50 +++++++++++++++++++++++++++ src/display/display-panel.h | 2 ++ 7 files changed, 52 insertions(+), 198 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 6510fb1..98f0063 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -449,53 +449,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_panel_mode(enum display_panel_mode *mode) -{ - int ret; - enum display_panel_mode val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_panel_mode(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get panel mode is not supported."); - else - _E("Failed to get panel mode(%d)", ret); - - return ret; - } - - *mode = val; - - return 0; -} - -static int set_panel_mode(enum display_panel_mode mode) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_panel_mode(mode); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set panel mode is not supported."); - else - _E("Failed to set panel mode(%d)", ret); - - return ret; - } - - return 0; -} - static int get_frame_rate(int *rate) { if (!rate) @@ -656,8 +609,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_panel_mode = get_panel_mode, - .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index d29eec4..bf4fab3 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -448,53 +448,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_panel_mode(enum display_panel_mode *mode) -{ - int ret; - enum display_panel_mode val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_panel_mode(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get panel mode is not supported."); - else - _E("Failed to get panel mode(%d)", ret); - - return ret; - } - - *mode = val; - - return 0; -} - -static int set_panel_mode(enum display_panel_mode mode) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_panel_mode(mode); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set panel mode is not supported."); - else - _E("Failed to set panel mode(%d)", ret); - - return ret; - } - - return 0; -} - static int get_frame_rate(int *rate) { if (!rate) @@ -655,8 +608,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_panel_mode = get_panel_mode, - .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index a08e78d..f38cdb3 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -449,53 +449,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_panel_mode(enum display_panel_mode *mode) -{ - int ret; - enum display_panel_mode val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_panel_mode(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get panel mode is not supported."); - else - _E("Failed to get panel mode(%d)", ret); - - return ret; - } - - *mode = val; - - return 0; -} - -static int set_panel_mode(enum display_panel_mode mode) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_panel_mode(mode); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set panel mode is not supported."); - else - _E("Failed to set panel mode(%d)", ret); - - return ret; - } - - return 0; -} - static int get_frame_rate(int *rate) { if (!rate) @@ -656,8 +609,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_panel_mode = get_panel_mode, - .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index f4b152d..4fe1a14 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -461,53 +461,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_panel_mode(enum display_panel_mode *mode) -{ - int ret; - enum display_panel_mode val; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_get_panel_mode(&val); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get panel mode is not supported."); - else - _E("Failed to get panel mode(%d)", ret); - - return ret; - } - - *mode = val; - - return 0; -} - -static int set_panel_mode(enum display_panel_mode mode) -{ - int ret; - - if (!display_dev_available) { - _E("There is no display device."); - return -ENOENT; - } - - ret = hal_device_display_set_panel_mode(mode); - if (ret < 0) { - if (ret == -ENODEV) - _E("Set panel mode is not supported."); - else - _E("Failed to set panel mode(%d)", ret); - - return ret; - } - - return 0; -} - static int get_frame_rate(int *rate) { if (!rate) @@ -721,8 +674,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_panel_mode = get_panel_mode, - .set_panel_mode = set_panel_mode, .get_frame_rate = get_frame_rate, .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 7e7478f..1a33208 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -80,8 +80,6 @@ struct _backlight_ops { int (*get_brightness_raw)(int *val); void (*restore_brightness_func)(void); int (*get_brightness_by_light_sensor)(float lmax, float lmin, float light, int *brt); - int (*get_panel_mode)(enum display_panel_mode *mode); - int (*set_panel_mode)(enum display_panel_mode mode); int (*get_frame_rate)(int *rate); int (*set_frame_rate)(int rate); int (*transit_state)(int state); diff --git a/src/display/display-panel.c b/src/display/display-panel.c index 704aa46..8c88db2 100644 --- a/src/display/display-panel.c +++ b/src/display/display-panel.c @@ -161,4 +161,54 @@ int display_panel_get_image_effect(enum display_image_effect *effect) *effect = val; return 0; +} + +/* FIXME: This function is deprecated, should be fixed after plugin refactoring */ +int display_panel_set_panel_mode(enum display_panel_mode mode) +{ + int ret; + + if (!display_is_hal_backend_available()) { + _E("There is no display device."); + return -ENOENT; + } + + ret = hal_device_display_set_panel_mode(mode); + if (ret < 0) { + if (ret == -ENODEV) + _E("Set panel mode is not supported."); + else + _E("Failed to set panel mode(%d)", ret); + return ret; + } + + return 0; +} + +/* FIXME: This function is deprecated, should be fixed after plugin refactoring */ +int display_panel_get_panel_mode(enum display_panel_mode *mode) +{ + int ret; + enum display_panel_mode val; + + if (!mode) + return -EINVAL; + + if (!display_is_hal_backend_available()) { + _E("There is no display device."); + return -ENOENT; + } + + ret = hal_device_display_get_panel_mode(&val); + if (ret < 0) { + if (ret == -ENODEV) + _E("Get panel mode is not supported."); + else + _E("Failed to get panel mode(%d)", ret); + return ret; + } + + *mode = val; + + return 0; } \ No newline at end of file diff --git a/src/display/display-panel.h b/src/display/display-panel.h index b81d42c..eb92707 100644 --- a/src/display/display-panel.h +++ b/src/display/display-panel.h @@ -29,5 +29,7 @@ int display_panel_get_white_balance(enum hal_display_white_balance white_balance /* Deprecated functions */ int display_panel_set_image_effect(enum display_image_effect effect); int display_panel_get_image_effect(enum display_image_effect *effect); +int display_panel_set_panel_mode(enum display_panel_mode mode); +int display_panel_get_panel_mode(enum display_panel_mode *mode); #endif /* __DISPLAY_PANEL_H__ */ \ No newline at end of file -- 2.7.4 From e3265620ec8eae1044bd857cd41c49060db97f19 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Mon, 20 Feb 2023 17:23:16 +0900 Subject: [PATCH 07/16] display: Move getter and setter display frame rate from plugins to core display module Remove and redefine frame rate getter/setter. These functions are added below display-panel. int display_panel_set_frame_rate(int frame_rate); int display_panel_get_frame_rate(int *frame_rate); -> With these getter and setter, it is possible to get and set display frame rate value. Change-Id: Ie12367bbc0177fdfc3119ec059b75ce89f9055d6 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 48 --------------------------- plugins/mobile/display/device-interface.c | 48 --------------------------- plugins/tv/display/device-interface.c | 48 --------------------------- plugins/wearable/display/device-interface.c | 48 --------------------------- src/display/device-interface.h | 2 -- src/display/display-dbus.c | 2 +- src/display/display-panel.c | 48 +++++++++++++++++++++++++++ src/display/display-panel.h | 2 ++ 8 files changed, 51 insertions(+), 195 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 98f0063..a719e4f 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -449,52 +449,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_frame_rate(int *rate) -{ - if (!rate) - return -EINVAL; - - if (!display_dev_available) - return -ENOTSUP; - - return hal_device_display_get_frame_rate(rate); -} - -static int set_frame_rate(int rate) -{ - int ret = 0; - static int fmin = -1, fmax = -1; - - if (!display_dev_available) - return -ENOTSUP; - - if (fmin < 0) { - ret = hal_device_display_get_min_frame_rate(&fmin); - if (ret < 0) { - _E("Failed to get min frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate < fmin)) { - _E("Invalid rate(%d). (Valid rate: %d <= rate)", rate, fmin); - return -EINVAL; - } - - if (fmax < 0) { - ret = hal_device_display_get_max_frame_rate(&fmax); - if (ret < 0) { - _E("Failed to get max frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate > fmax)) { - _E("Invalid rate(%d). (Valid rate: rate <= %d)", rate, fmax); - return -EINVAL; - } - - return hal_device_display_set_frame_rate(rate); -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -609,8 +563,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_frame_rate = get_frame_rate, - .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index bf4fab3..fe0fd8b 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -448,52 +448,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_frame_rate(int *rate) -{ - if (!rate) - return -EINVAL; - - if (!display_dev_available) - return -ENOTSUP; - - return hal_device_display_get_frame_rate(rate); -} - -static int set_frame_rate(int rate) -{ - int ret = 0; - static int fmin = -1, fmax = -1; - - if (!display_dev_available) - return -ENOTSUP; - - if (fmin < 0) { - ret = hal_device_display_get_min_frame_rate(&fmin); - if (ret < 0) { - _E("Failed to get min frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate < fmin)) { - _E("Invalid rate(%d). (Valid rate: %d <= rate)", rate, fmin); - return -EINVAL; - } - - if (fmax < 0) { - ret = hal_device_display_get_max_frame_rate(&fmax); - if (ret < 0) { - _E("Failed to get max frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate > fmax)) { - _E("Invalid rate(%d). (Valid rate: rate <= %d)", rate, fmax); - return -EINVAL; - } - - return hal_device_display_set_frame_rate(rate); -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -608,8 +562,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_frame_rate = get_frame_rate, - .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index f38cdb3..d5caa72 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -449,52 +449,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_frame_rate(int *rate) -{ - if (!rate) - return -EINVAL; - - if (!display_dev_available) - return -ENOTSUP; - - return hal_device_display_get_frame_rate(rate); -} - -static int set_frame_rate(int rate) -{ - int ret = 0; - static int fmin = -1, fmax = -1; - - if (!display_dev_available) - return -ENOTSUP; - - if (fmin < 0) { - ret = hal_device_display_get_min_frame_rate(&fmin); - if (ret < 0) { - _E("Failed to get min frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate < fmin)) { - _E("Invalid rate(%d). (Valid rate: %d <= rate)", rate, fmin); - return -EINVAL; - } - - if (fmax < 0) { - ret = hal_device_display_get_max_frame_rate(&fmax); - if (ret < 0) { - _E("Failed to get max frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate > fmax)) { - _E("Invalid rate(%d). (Valid rate: rate <= %d)", rate, fmax); - return -EINVAL; - } - - return hal_device_display_set_frame_rate(rate); -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -609,8 +563,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_frame_rate = get_frame_rate, - .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 4fe1a14..72cf022 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -461,52 +461,6 @@ static int get_brightness_by_light_sensor(float lmax, float lmin, float light, i return 0; } -static int get_frame_rate(int *rate) -{ - if (!rate) - return -EINVAL; - - if (!display_dev_available) - return -ENOTSUP; - - return hal_device_display_get_frame_rate(rate); -} - -static int set_frame_rate(int rate) -{ - int ret = 0; - static int fmin = -1, fmax = -1; - - if (!display_dev_available) - return -ENOTSUP; - - if (fmin < 0) { - ret = hal_device_display_get_min_frame_rate(&fmin); - if (ret < 0) { - _E("Failed to get min frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate < fmin)) { - _E("Invalid rate(%d). (Valid rate: %d <= rate)", rate, fmin); - return -EINVAL; - } - - if (fmax < 0) { - ret = hal_device_display_get_max_frame_rate(&fmax); - if (ret < 0) { - _E("Failed to get max frate rate: %d", ret); - return ret; - } - } - if ((ret != -ENODEV) && (rate > fmax)) { - _E("Invalid rate(%d). (Valid rate: rate <= %d)", rate, fmax); - return -EINVAL; - } - - return hal_device_display_set_frame_rate(rate); -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -674,8 +628,6 @@ static struct _backlight_ops backlight_ops = { .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, .get_brightness_by_light_sensor = get_brightness_by_light_sensor, - .get_frame_rate = get_frame_rate, - .set_frame_rate = set_frame_rate, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 1a33208..c98b8b2 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -80,8 +80,6 @@ struct _backlight_ops { int (*get_brightness_raw)(int *val); void (*restore_brightness_func)(void); int (*get_brightness_by_light_sensor)(float lmax, float lmin, float light, int *brt); - int (*get_frame_rate)(int *rate); - int (*set_frame_rate)(int rate); int (*transit_state)(int state); void (*transit_brt)(int start, int end, int step); void (*blink)(int timeout); diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index 19c30f2..7d31655 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -661,7 +661,7 @@ static GVariant *dbus_setrefreshrate(GDBusConnection *conn, backlight_ops->off(NORMAL_MODE); _D("app : %d, value : %d", app, val); - ret = backlight_ops->set_frame_rate(val); + ret = display_panel_set_frame_rate(val); if (ret < 0) _E("Failed to set frame rate (%d)", ret); diff --git a/src/display/display-panel.c b/src/display/display-panel.c index 8c88db2..7f936dd 100644 --- a/src/display/display-panel.c +++ b/src/display/display-panel.c @@ -211,4 +211,52 @@ int display_panel_get_panel_mode(enum display_panel_mode *mode) *mode = val; return 0; +} + +/* FIXME: This function is deprecated, should be fixed after plugin refactoring */ +int display_panel_set_frame_rate(int frame_rate) +{ + int ret = 0; + static int fmin = -1, fmax = -1; + + if (!display_is_hal_backend_available()) + return -ENOTSUP; + + if (fmin < 0) { + ret = hal_device_display_get_min_frame_rate(&fmin); + if (ret < 0) { + _E("Failed to get min frate rate: %d", ret); + return ret; + } + } + if ((ret != -ENODEV) && (frame_rate < fmin)) { + _E("Invalid rate(%d). (Valid rate: %d <= rate)", frame_rate, fmin); + return -EINVAL; + } + + if (fmax < 0) { + ret = hal_device_display_get_max_frame_rate(&fmax); + if (ret < 0) { + _E("Failed to get max frate rate: %d", ret); + return ret; + } + } + if ((ret != -ENODEV) && (frame_rate > fmax)) { + _E("Invalid rate(%d). (Valid rate: rate <= %d)", frame_rate, fmax); + return -EINVAL; + } + + return hal_device_display_set_frame_rate(frame_rate); +} + +/* FIXME: This function is deprecated, should be fixed after plugin refactoring */ +int display_panel_get_frame_rate(int *frame_rate) +{ + if (!frame_rate) + return -EINVAL; + + if (!display_is_hal_backend_available()) + return -ENOTSUP; + + return hal_device_display_get_frame_rate(frame_rate); } \ No newline at end of file diff --git a/src/display/display-panel.h b/src/display/display-panel.h index eb92707..a287557 100644 --- a/src/display/display-panel.h +++ b/src/display/display-panel.h @@ -31,5 +31,7 @@ int display_panel_set_image_effect(enum display_image_effect effect); int display_panel_get_image_effect(enum display_image_effect *effect); int display_panel_set_panel_mode(enum display_panel_mode mode); int display_panel_get_panel_mode(enum display_panel_mode *mode); +int display_panel_set_frame_rate(int frame_rate); +int display_panel_get_frame_rate(int *frame_rate); #endif /* __DISPLAY_PANEL_H__ */ \ No newline at end of file -- 2.7.4 From 3d4ba919a2ca61f36a35af168abfcc28d830d13c Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Wed, 22 Feb 2023 14:20:53 +0900 Subject: [PATCH 08/16] display: Move default_brightness getter and setter from plugin to core display module Remove and redefine default brightness getter/setter. These functions are added below display-backlight. int display_backlight_set_default_brightness(int brightness) int display_backlight_get_default_brightness(int *brightness) -> With these functions, it is possible to get and set default brightness value. Change-Id: Iaa851094abf051f2fe15c64ff8e94376cc2b6382 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/core.c | 5 ++-- plugins/iot-headed/display/device-interface.c | 29 +++++++----------- plugins/mobile/display/core.c | 5 ++-- plugins/mobile/display/device-interface.c | 29 +++++++----------- plugins/tv/display/core.c | 5 ++-- plugins/tv/display/device-interface.c | 29 +++++++----------- .../wearable/display/auto-brightness-sensorhub.c | 11 +++---- plugins/wearable/display/core.c | 5 ++-- plugins/wearable/display/device-interface.c | 29 +++++++----------- src/display/auto-brightness.c | 5 ++-- src/display/device-interface.h | 2 -- src/display/display-backlight.c | 34 ++++++++++++++++++++++ src/display/display-backlight.h | 2 ++ src/display/display-dbus.c | 7 +++-- 14 files changed, 101 insertions(+), 96 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index f8ecf49..e894b2a 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -63,6 +63,7 @@ #include "display-dpms.h" #include "display-signal.h" #include "display-lock.h" +#include "display-backlight.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -1632,7 +1633,7 @@ static int update_setting(int key_idx, int val) _I("Brightness changed in low battery," "escape dim state."); } - backlight_ops->set_default_brt(val); + display_backlight_set_default_brightness(val); break; case SETTING_LOCK_SCREEN: set_lock_screen_state(val); @@ -1695,7 +1696,7 @@ static void check_seed_status(void) tmp = brt; } _I("Set brightness(%d) from setting app.", tmp); - backlight_ops->set_default_brt(tmp); + display_backlight_set_default_brightness(tmp); backlight_ops->set_brightness(tmp); ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state); diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index a719e4f..777b27f 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -74,7 +74,6 @@ static struct _backlight_ops backlight_ops; static bool custom_status; static int custom_brightness; static int force_brightness; -static int default_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static guint release_timer; @@ -224,6 +223,9 @@ static int backlight_off(enum device_flags flags) { int ret = -1; static int cnt, ambient_cnt; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (flags & AMBIENT_MODE) { _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); @@ -327,7 +329,7 @@ static int backlight_update(void) if (display_dimstay_check()) ret = backlight_dim(); else { - brt = backlight_ops.get_default_brt(); + display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); } return ret; @@ -345,24 +347,12 @@ static int backlight_standby(int force) return ret; } -static int set_default_brt(int level) -{ - if (level < PM_MIN_BRIGHTNESS || level > PM_MAX_BRIGHTNESS) - level = display_conf->pm_default_brightness; - - default_brightness = level; - - return 0; -} - -static int get_default_brt(void) -{ - return default_brightness; -} - static int set_brightness(int val) { int max, ret; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -454,6 +444,9 @@ static int backlight_transit_state(int state) { int brt, val; int start, end; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); backlight_ops.get_brightness(&brt); @@ -550,8 +543,6 @@ static struct _backlight_ops backlight_ops = { .on = backlight_on, .update = backlight_update, .standby = backlight_standby, - .set_default_brt = set_default_brt, - .get_default_brt = get_default_brt, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 6980389..007ecec 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -64,6 +64,7 @@ #include "display-info.h" #include "display-signal.h" #include "display-lock.h" +#include "display-backlight.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -1642,7 +1643,7 @@ static int update_setting(int key_idx, int val) _I("Brightness changed in low battery," "escape dim state."); } - backlight_ops->set_default_brt(val); + display_backlight_set_default_brightness(val); break; case SETTING_LOCK_SCREEN: set_lock_screen_state(val); @@ -1705,7 +1706,7 @@ static void check_seed_status(void) tmp = brt; } _I("Set brightness(%d) from setting app.", tmp); - backlight_ops->set_default_brt(tmp); + display_backlight_set_default_brightness(tmp); backlight_ops->set_brightness(tmp); ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state); diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index fe0fd8b..eb4dc95 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -73,7 +73,6 @@ static struct _backlight_ops backlight_ops; static bool custom_status; static int custom_brightness; static int force_brightness; -static int default_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static guint release_timer; @@ -223,6 +222,9 @@ static int backlight_off(enum device_flags flags) { int ret = -1; static int cnt, ambient_cnt; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (flags & AMBIENT_MODE) { _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); @@ -326,7 +328,7 @@ static int backlight_update(void) if (display_dimstay_check()) ret = backlight_dim(); else { - brt = backlight_ops.get_default_brt(); + display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); } return ret; @@ -344,24 +346,12 @@ static int backlight_standby(int force) return ret; } -static int set_default_brt(int level) -{ - if (level < PM_MIN_BRIGHTNESS || level > PM_MAX_BRIGHTNESS) - level = display_conf->pm_default_brightness; - - default_brightness = level; - - return 0; -} - -static int get_default_brt(void) -{ - return default_brightness; -} - static int set_brightness(int val) { int max, ret; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -453,6 +443,9 @@ static int backlight_transit_state(int state) { int brt, val; int start, end; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); backlight_ops.get_brightness(&brt); @@ -549,8 +542,6 @@ static struct _backlight_ops backlight_ops = { .on = backlight_on, .update = backlight_update, .standby = backlight_standby, - .set_default_brt = set_default_brt, - .get_default_brt = get_default_brt, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index b1e1ab7..99393dd 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -62,6 +62,7 @@ #include "display-dpms.h" #include "display-signal.h" #include "display-lock.h" +#include "display-backlight.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -1632,7 +1633,7 @@ static int update_setting(int key_idx, int val) _I("Brightness changed in low battery," "escape dim state."); } - backlight_ops->set_default_brt(val); + display_backlight_set_default_brightness(val); break; case SETTING_LOCK_SCREEN: set_lock_screen_state(val); @@ -1695,7 +1696,7 @@ static void check_seed_status(void) tmp = brt; } _I("Set brightness(%d) from setting app.", tmp); - backlight_ops->set_default_brt(tmp); + display_backlight_set_default_brightness(tmp); backlight_ops->set_brightness(tmp); ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state); diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index d5caa72..768575b 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -74,7 +74,6 @@ static struct _backlight_ops backlight_ops; static bool custom_status; static int custom_brightness; static int force_brightness; -static int default_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static guint release_timer; @@ -224,6 +223,9 @@ static int backlight_off(enum device_flags flags) { int ret = -1; static int cnt, ambient_cnt; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (flags & AMBIENT_MODE) { _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); @@ -327,7 +329,7 @@ static int backlight_update(void) if (display_dimstay_check()) ret = backlight_dim(); else { - brt = backlight_ops.get_default_brt(); + display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); } return ret; @@ -345,24 +347,12 @@ static int backlight_standby(int force) return ret; } -static int set_default_brt(int level) -{ - if (level < PM_MIN_BRIGHTNESS || level > PM_MAX_BRIGHTNESS) - level = display_conf->pm_default_brightness; - - default_brightness = level; - - return 0; -} - -static int get_default_brt(void) -{ - return default_brightness; -} - static int set_brightness(int val) { int max, ret; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -454,6 +444,9 @@ static int backlight_transit_state(int state) { int brt, val; int start, end; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); backlight_ops.get_brightness(&brt); @@ -550,8 +543,6 @@ static struct _backlight_ops backlight_ops = { .on = backlight_on, .update = backlight_update, .standby = backlight_standby, - .set_default_brt = set_default_brt, - .get_default_brt = get_default_brt, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/plugins/wearable/display/auto-brightness-sensorhub.c b/plugins/wearable/display/auto-brightness-sensorhub.c index 51950bf..451072b 100644 --- a/plugins/wearable/display/auto-brightness-sensorhub.c +++ b/plugins/wearable/display/auto-brightness-sensorhub.c @@ -30,6 +30,7 @@ #include "display/util.h" #include "display/core.h" #include "display/display-ops.h" +#include "display/display-backlight.h" #include "shared/device-notifier.h" #include "battery/power-supply.h" #include "shared/plugin.h" @@ -92,7 +93,7 @@ static void set_brightness_level(int level) auto_brightness_control(BR_HBM_ON, BR_IMPLICIT); break; case SPECIFIC_MODE_OFF: - default_brightness = backlight_ops->get_default_brt(); + display_backlight_get_default_brightness(&default_brightness); backlight_ops->get_brightness(¤t_brightness); /* Disable HBM, LBM */ @@ -124,8 +125,8 @@ static void set_default_brightness(void) { int default_brt; - default_brt = backlight_ops->get_default_brt(); - backlight_ops->set_default_brt(default_brt); + display_backlight_get_default_brightness(&default_brt); + display_backlight_set_default_brightness(default_brt); backlight_ops->update(); } @@ -185,7 +186,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes int current_brightness; int ret; - default_brightness = backlight_ops->get_default_brt(); + display_backlight_get_default_brightness(&default_brightness); backlight_ops->get_brightness(¤t_brightness); if (request == BR_LBM_ON) { @@ -296,7 +297,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes lbm_set_state(true); change_flag(&lowdim, 0); change_flag(&hold_brt, 0); - backlight_ops->set_default_brt(set_brightness); + display_backlight_set_default_brightness(set_brightness); if (!hbm) { ret = backlight_ops->set_brightness(set_brightness); if (ret < 0) { diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index da8f29e..8fa7d4f 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -65,6 +65,7 @@ #include "battery-monitor.h" #include "display/display-signal.h" #include "display-lock.h" +#include "display-backlight.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -1903,7 +1904,7 @@ static int update_setting(int key_idx, int val) _I("Brightness changed in low battery," "escape dim state."); } - backlight_ops->set_default_brt(val); + display_backlight_set_default_brightness(val); break; case SETTING_LOCK_SCREEN: set_lock_screen_state(val); @@ -1962,7 +1963,7 @@ static void check_seed_status(void) tmp = brt; } _I("Set brightness(%d) from setting app.", tmp); - backlight_ops->set_default_brt(tmp); + display_backlight_set_default_brightness(tmp); backlight_ops->set_brightness(tmp); ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &bat_state); diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 72cf022..779d8c6 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -80,7 +80,6 @@ static struct battery_plugin *battery_plgn; static bool custom_status; static int custom_brightness; static int force_brightness; -static int default_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static guint release_timer; @@ -235,6 +234,9 @@ static int backlight_off(enum device_flags flags) { int ret = -1; static int cnt, ambient_cnt; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (flags & AMBIENT_MODE) { _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); @@ -338,7 +340,7 @@ static int backlight_update(void) if (display_dimstay_check()) ret = backlight_dim(); else { - brt = backlight_ops.get_default_brt(); + display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); } return ret; @@ -356,24 +358,12 @@ static int backlight_standby(int force) return ret; } -static int set_default_brt(int level) -{ - if (level < PM_MIN_BRIGHTNESS || level > PM_MAX_BRIGHTNESS) - level = display_conf->pm_default_brightness; - - default_brightness = level; - - return 0; -} - -static int get_default_brt(void) -{ - return default_brightness; -} - static int set_brightness(int val) { int max, ret; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -467,6 +457,9 @@ static int backlight_transit_state(int state) int brt, val; int start, end; static int aod_brightness_level; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); backlight_ops.get_brightness(&brt); @@ -615,8 +608,6 @@ static struct _backlight_ops backlight_ops = { .on = backlight_on, .update = backlight_update, .standby = backlight_standby, - .set_default_brt = set_default_brt, - .get_default_brt = get_default_brt, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/src/display/auto-brightness.c b/src/display/auto-brightness.c index d7a740d..6c9e96a 100644 --- a/src/display/auto-brightness.c +++ b/src/display/auto-brightness.c @@ -32,6 +32,7 @@ #include "util.h" #include "core.h" #include "display-ops.h" +#include "display-backlight.h" #include "setting.h" #include "shared/device-notifier.h" #include @@ -146,7 +147,7 @@ static void alc_set_brightness(int setting, int value, float light) (step < 0 && tmp_value < value)) tmp_value = value; - backlight_ops->set_default_brt(tmp_value); + display_backlight_set_default_brightness(tmp_value); backlight_ops->update(); } _I("Load light data(%f) auto brt=%d min brightness=%d " @@ -442,7 +443,7 @@ static int set_autobrightness_state(int status) default_brt = brt; } - backlight_ops->set_default_brt(default_brt); + display_backlight_set_default_brightness(default_brt); backlight_ops->update(); } diff --git a/src/display/device-interface.h b/src/display/device-interface.h index c98b8b2..7461394 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -66,8 +66,6 @@ struct _backlight_ops { int (*on)(enum device_flags); int (*update)(void); int (*standby)(int); - int (*set_default_brt)(int level); - int (*get_default_brt)(void); int (*get_lcd_power)(void); int (*get_lcd_power_node)(void); int (*set_custom_status)(bool on); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index eea7666..d6f78fb 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -19,8 +19,15 @@ #include #include "shared/log.h" +#include "power/power-suspend.h" +#include "core.h" #include "display.h" #include "display-backlight.h" +#include "display-dpms.h" + +static const struct display_config *display_conf; + +static int default_brightness; /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ int display_backlight_get_max_brightness(int *max_brightness) @@ -87,4 +94,31 @@ int display_backlight_get_normalized_brightness(int raw_brightness, *normalized_brightness = quotient; return 0; +} + +int display_backlight_set_default_brightness(int brightness) +{ + if (brightness < PM_MIN_BRIGHTNESS || brightness > PM_MAX_BRIGHTNESS) { + if (display_conf) + brightness = display_conf->pm_default_brightness; + else + return -EPERM; + } + + default_brightness = brightness; + return 0; +} + +/* FIXME: default_brightness value should be initialized by vconf_get_int */ +int display_backlight_get_default_brightness(int *brightness) +{ + *brightness = default_brightness; + return 0; +} + +static void __CONSTRUCTOR__ initialize(void) +{ + display_conf = get_var_display_config(); + if (!display_conf) + _W("Failed to get display configuration variable."); } \ No newline at end of file diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index cbf663c..afe21ff 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -22,5 +22,7 @@ int display_backlight_get_max_brightness(int *max_brightness); int display_backlight_get_normalized_brightness(int raw_brightness, int *normalized_brightness); +int display_backlight_set_default_brightness(int brightness); +int display_backlight_get_default_brightness(int *brightness); #endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index 7d31655..468c890 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -45,6 +45,7 @@ #include "shared/plugin.h" #include "display-lock.h" #include "display-panel.h" +#include "display-backlight.h" #define AUL_APPSTATUS_PATH "/Org/Tizen/Aul/AppStatus" #define AUL_APPSTATUS_INTERFACE "org.tizen.aul.AppStatus" @@ -423,7 +424,7 @@ static GVariant *dbus_getbrightness(GDBusConnection *conn, result = brt; } } else { - result = backlight_ops->get_default_brt(); + display_backlight_get_default_brightness(&result); brt = 0; } @@ -473,7 +474,7 @@ static GVariant *dbus_setbrightness(GDBusConnection *conn, if (disp_plgn->auto_brightness_control) { ret = disp_plgn->auto_brightness_control(BR_SET_BRIGHTNESS, brt); } else { - backlight_ops->set_default_brt(brt); + display_backlight_set_default_brightness(brt); ret = backlight_ops->set_brightness(brt); if (ret < 0) goto error; @@ -1194,7 +1195,7 @@ static GVariant *dbus_getbrightnessinfo(GDBusConnection *conn, int default_brightness; int current_brightness; - default_brightness = backlight_ops->get_default_brt(); + display_backlight_get_default_brightness(&default_brightness); backlight_ops->get_brightness_raw(¤t_brightness); return g_variant_new("(ii)", default_brightness, current_brightness); -- 2.7.4 From aab322435e84a497cc3849586d2913b9d6c6d587 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Wed, 22 Feb 2023 14:52:18 +0900 Subject: [PATCH 09/16] display: Move functions related to display status(on/off/dim/standby) from plugin to core display module Remove and redefine display status change functions. These functions are added below display-panel/display-backlight. int display_panel_set_panel_state_by_on_state(enum device_flags flags) int display_panel_set_panel_state_by_off_state(enum device_flags flags) int display_panel_set_panel_state_by_standby_state(bool standby_on) int display_backlight_set_brightness_by_dim_brightness(void) -> With these functions, it is possible to change display panel/backlight status. Change-Id: I4313046c610410ccef82ac18fda1e334960330b1 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/core.c | 15 ++-- plugins/iot-headed/display/device-interface.c | 86 +--------------------- plugins/mobile/display/core.c | 15 ++-- plugins/mobile/display/device-interface.c | 86 +--------------------- plugins/tv/display/core.c | 15 ++-- plugins/tv/display/device-interface.c | 86 +--------------------- .../wearable/display/auto-brightness-sensorhub.c | 6 +- plugins/wearable/display/core.c | 15 ++-- plugins/wearable/display/device-interface.c | 86 +--------------------- src/display/ambient-mode.c | 3 +- src/display/device-interface.h | 4 - src/display/display-backlight.c | 22 ++++++ src/display/display-backlight.h | 1 + src/display/display-dbus.c | 4 +- src/display/display-panel.c | 74 +++++++++++++++++++ src/display/display-panel.h | 3 + 16 files changed, 147 insertions(+), 374 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index e894b2a..056371b 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -64,6 +64,7 @@ #include "display-signal.h" #include "display-lock.h" #include "display-backlight.h" +#include "display-panel.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -338,7 +339,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (!(flags & LCD_PHASED_TRANSIT_MODE)) { /* Update brightness level */ if (state == LCD_DIM) - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) backlight_ops->update(); } @@ -1435,7 +1436,7 @@ static int default_action(int timeout) backlight_ops->get_custom_status()) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) lcd_on_procedure(LCD_DIM, NORMAL_MODE); @@ -2005,8 +2006,8 @@ static void esd_action(void) if (!check_default(touchscreen_ops)) touchscreen_ops->stop(NORMAL_MODE); - backlight_ops->off(NORMAL_MODE); - backlight_ops->on(NORMAL_MODE); + display_panel_set_panel_state_by_off_state(NORMAL_MODE); + display_panel_set_panel_state_by_on_state(NORMAL_MODE); if (!check_default(touchscreen_ops)) touchscreen_ops->start(NORMAL_MODE); } @@ -2224,10 +2225,10 @@ static int display_start(enum device_flags flags) if (flags & NORMAL_MODE) { if (flags & LCD_PANEL_OFF_MODE) /* standby on */ - backlight_ops->standby(true); + display_panel_set_panel_state_by_standby_state(true); else /* normal lcd on */ - backlight_ops->on(flags); + display_panel_set_panel_state_by_on_state(flags); return 0; } @@ -2251,7 +2252,7 @@ static int display_stop(enum device_flags flags) { /* NORMAL MODE */ if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) { - backlight_ops->off(flags); + display_panel_set_panel_state_by_off_state(flags); return 0; } diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 777b27f..d2fe1ba 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -51,9 +51,7 @@ #define TOUCH_ON 1 #define TOUCH_OFF 0 -#define LCD_PHASED_MIN_BRIGHTNESS 1 #define LCD_PHASED_MAX_BRIGHTNESS 100 -#define LCD_PHASED_CHANGE_STEP 5 #define LCD_PHASED_DELAY 10000 /* microsecond */ #define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ @@ -203,70 +201,6 @@ static void change_brightness(int start, int end, int step) } } -static int backlight_on(enum device_flags flags) -{ - int ret = -1; - static int cnt; - - _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); - - cnt++; - ret = display_panel_set_dpms_state(DPMS_ON, flags); -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_off(enum device_flags flags) -{ - int ret = -1; - static int cnt, ambient_cnt; - int default_brightness = 0; - - display_backlight_get_default_brightness(&default_brightness); - - if (flags & AMBIENT_MODE) { - _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); - ambient_cnt++; - - return 0; - } - - _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt); - cnt++; - - if (flags & LCD_PHASED_TRANSIT_MODE) - backlight_ops.transit_brt(default_brightness, - LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); - - if (flags & FORCE_OFF_MODE) - ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); - else - ret = display_panel_set_dpms_state(DPMS_OFF, flags); - -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_dim(void) -{ - int ret; - - ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS); -#ifdef ENABLE_PM_LOG - if (!ret) - pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state()); -#endif - return ret; -} - static int set_custom_status(bool on) { custom_status = on; @@ -298,7 +232,7 @@ static int custom_backlight_update(void) return -EINVAL; if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { _I("custom brightness restored! %d", custom_brightness); ret = backlight_ops.set_brightness(custom_brightness); @@ -327,7 +261,7 @@ static int backlight_update(void) return 0; } if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); @@ -335,18 +269,6 @@ static int backlight_update(void) return ret; } -static int backlight_standby(int force) -{ - int ret = -1; - - if ((dpms_get_cached_state() == DPMS_ON) || force) { - _I("LCD standby"); - ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); - } - - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -538,11 +460,7 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .off = backlight_off, - .dim = backlight_dim, - .on = backlight_on, .update = backlight_update, - .standby = backlight_standby, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 007ecec..9e2fae7 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -65,6 +65,7 @@ #include "display-signal.h" #include "display-lock.h" #include "display-backlight.h" +#include "display-panel.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -345,7 +346,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (!(flags & LCD_PHASED_TRANSIT_MODE)) { /* Update brightness level */ if (state == LCD_DIM) - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) backlight_ops->update(); } @@ -1445,7 +1446,7 @@ static int default_action(int timeout) backlight_ops->get_custom_status()) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) lcd_on_procedure(LCD_DIM, NORMAL_MODE); @@ -2011,8 +2012,8 @@ static void esd_action(void) if (!check_default(touchscreen_ops)) touchscreen_ops->stop(NORMAL_MODE); - backlight_ops->off(NORMAL_MODE); - backlight_ops->on(NORMAL_MODE); + display_panel_set_panel_state_by_off_state(NORMAL_MODE); + display_panel_set_panel_state_by_on_state(NORMAL_MODE); if (!check_default(touchscreen_ops)) touchscreen_ops->start(NORMAL_MODE); } @@ -2233,10 +2234,10 @@ static int display_start(enum device_flags flags) if (flags & NORMAL_MODE) { if (flags & LCD_PANEL_OFF_MODE) /* standby on */ - backlight_ops->standby(true); + display_panel_set_panel_state_by_standby_state(true); else /* normal lcd on */ - backlight_ops->on(flags); + display_panel_set_panel_state_by_on_state(flags); FIND_DISPLAY(enhance_ops, "enhance"); if (enhance_ops && enhance_ops->func) enhance_ops->func(RESTORE_ENHANCE_OUTDOOR, &on); @@ -2262,7 +2263,7 @@ static int display_stop(enum device_flags flags) { /* NORMAL MODE */ if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) { - backlight_ops->off(flags); + display_panel_set_panel_state_by_off_state(flags); return 0; } diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index eb4dc95..9cc68ae 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -52,9 +52,7 @@ #define TOUCH_ON 1 #define TOUCH_OFF 0 -#define LCD_PHASED_MIN_BRIGHTNESS 1 #define LCD_PHASED_MAX_BRIGHTNESS 100 -#define LCD_PHASED_CHANGE_STEP 5 #define LCD_PHASED_DELAY 10000 /* microsecond */ #define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ @@ -202,70 +200,6 @@ static void change_brightness(int start, int end, int step) } } -static int backlight_on(enum device_flags flags) -{ - int ret = -1; - static int cnt; - - _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); - - cnt++; - ret = display_panel_set_dpms_state(DPMS_ON, flags); -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_off(enum device_flags flags) -{ - int ret = -1; - static int cnt, ambient_cnt; - int default_brightness = 0; - - display_backlight_get_default_brightness(&default_brightness); - - if (flags & AMBIENT_MODE) { - _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); - ambient_cnt++; - - return 0; - } - - _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt); - cnt++; - - if (flags & LCD_PHASED_TRANSIT_MODE) - backlight_ops.transit_brt(default_brightness, - LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); - - if (flags & FORCE_OFF_MODE) - ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); - else - ret = display_panel_set_dpms_state(DPMS_OFF, flags); - -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_dim(void) -{ - int ret; - - ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS); -#ifdef ENABLE_PM_LOG - if (!ret) - pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state()); -#endif - return ret; -} - static int set_custom_status(bool on) { custom_status = on; @@ -297,7 +231,7 @@ static int custom_backlight_update(void) return -EINVAL; if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { _I("custom brightness restored! %d", custom_brightness); ret = backlight_ops.set_brightness(custom_brightness); @@ -326,7 +260,7 @@ static int backlight_update(void) return 0; } if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); @@ -334,18 +268,6 @@ static int backlight_update(void) return ret; } -static int backlight_standby(int force) -{ - int ret = -1; - - if ((dpms_get_cached_state() == DPMS_ON) || force) { - _I("LCD standby"); - ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); - } - - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -537,11 +459,7 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .off = backlight_off, - .dim = backlight_dim, - .on = backlight_on, .update = backlight_update, - .standby = backlight_standby, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index 99393dd..a489846 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -63,6 +63,7 @@ #include "display-signal.h" #include "display-lock.h" #include "display-backlight.h" +#include "display-panel.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -338,7 +339,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (!(flags & LCD_PHASED_TRANSIT_MODE)) { /* Update brightness level */ if (state == LCD_DIM) - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) backlight_ops->update(); } @@ -1435,7 +1436,7 @@ static int default_action(int timeout) backlight_ops->get_custom_status()) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) lcd_on_procedure(LCD_DIM, NORMAL_MODE); @@ -2002,8 +2003,8 @@ static void esd_action(void) if (!check_default(touchscreen_ops)) touchscreen_ops->stop(NORMAL_MODE); - backlight_ops->off(NORMAL_MODE); - backlight_ops->on(NORMAL_MODE); + display_panel_set_panel_state_by_off_state(NORMAL_MODE); + display_panel_set_panel_state_by_on_state(NORMAL_MODE); if (!check_default(touchscreen_ops)) touchscreen_ops->start(NORMAL_MODE); } @@ -2221,10 +2222,10 @@ static int display_start(enum device_flags flags) if (flags & NORMAL_MODE) { if (flags & LCD_PANEL_OFF_MODE) /* standby on */ - backlight_ops->standby(true); + display_panel_set_panel_state_by_standby_state(true); else /* normal lcd on */ - backlight_ops->on(flags); + display_panel_set_panel_state_by_on_state(flags); return 0; } @@ -2248,7 +2249,7 @@ static int display_stop(enum device_flags flags) { /* NORMAL MODE */ if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) { - backlight_ops->off(flags); + display_panel_set_panel_state_by_off_state(flags); return 0; } diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 768575b..e3952a7 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -51,9 +51,7 @@ #define TOUCH_ON 1 #define TOUCH_OFF 0 -#define LCD_PHASED_MIN_BRIGHTNESS 1 #define LCD_PHASED_MAX_BRIGHTNESS 100 -#define LCD_PHASED_CHANGE_STEP 5 #define LCD_PHASED_DELAY 10000 /* microsecond */ #define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ @@ -203,70 +201,6 @@ static void change_brightness(int start, int end, int step) } } -static int backlight_on(enum device_flags flags) -{ - int ret = -1; - static int cnt; - - _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); - - cnt++; - ret = display_panel_set_dpms_state(DPMS_ON, flags); -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_off(enum device_flags flags) -{ - int ret = -1; - static int cnt, ambient_cnt; - int default_brightness = 0; - - display_backlight_get_default_brightness(&default_brightness); - - if (flags & AMBIENT_MODE) { - _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); - ambient_cnt++; - - return 0; - } - - _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt); - cnt++; - - if (flags & LCD_PHASED_TRANSIT_MODE) - backlight_ops.transit_brt(default_brightness, - LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); - - if (flags & FORCE_OFF_MODE) - ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); - else - ret = display_panel_set_dpms_state(DPMS_OFF, flags); - -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_dim(void) -{ - int ret; - - ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS); -#ifdef ENABLE_PM_LOG - if (!ret) - pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state()); -#endif - return ret; -} - static int set_custom_status(bool on) { custom_status = on; @@ -298,7 +232,7 @@ static int custom_backlight_update(void) return -EINVAL; if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { _I("custom brightness restored! %d", custom_brightness); ret = backlight_ops.set_brightness(custom_brightness); @@ -327,7 +261,7 @@ static int backlight_update(void) return 0; } if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); @@ -335,18 +269,6 @@ static int backlight_update(void) return ret; } -static int backlight_standby(int force) -{ - int ret = -1; - - if ((dpms_get_cached_state() == DPMS_ON) || force) { - _I("LCD standby"); - ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); - } - - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -538,11 +460,7 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .off = backlight_off, - .dim = backlight_dim, - .on = backlight_on, .update = backlight_update, - .standby = backlight_standby, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/plugins/wearable/display/auto-brightness-sensorhub.c b/plugins/wearable/display/auto-brightness-sensorhub.c index 451072b..a2ae6db 100644 --- a/plugins/wearable/display/auto-brightness-sensorhub.c +++ b/plugins/wearable/display/auto-brightness-sensorhub.c @@ -232,7 +232,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes } else if (request == BR_LOWDIM_ON) { if (!lowdim) { if (!hbm && !hold_brt && (get_pm_cur_state() == S_NORMAL)) - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); change_flag(&lowdim, 1); } } else if (request == BR_LBM_OFF) { @@ -248,7 +248,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes change_brightness_transit(lbm_down_brt(default_brightness), default_brightness); backlight_ops->set_brightness(default_brightness); } else { - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); } } else if (lbm && hold_brt) { change_flag(&lbm, 0); @@ -273,7 +273,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes if (!lowdim) backlight_ops->set_brightness(default_brightness); else - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); } else if (lbm && hold_brt) { change_flag(&hold_brt, 0); if (!lowdim) { diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index 8fa7d4f..59cc552 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -66,6 +66,7 @@ #include "display/display-signal.h" #include "display-lock.h" #include "display-backlight.h" +#include "display-panel.h" #include "shared/plugin.h" #define DISPLAY_CONF_FILE "/etc/deviced/display.conf" @@ -556,7 +557,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (!(flags & LCD_PHASED_TRANSIT_MODE)) { /* Update brightness level */ if (state == LCD_DIM) - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) backlight_ops->update(); } @@ -1706,7 +1707,7 @@ static int default_action(int timeout) backlight_ops->get_custom_status()) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ - backlight_ops->dim(); + display_backlight_set_brightness_by_dim_brightness(); if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) lcd_on_procedure(LCD_DIM, NORMAL_MODE); @@ -2289,8 +2290,8 @@ static void esd_action(void) if (!check_default(touchscreen_ops)) touchscreen_ops->stop(NORMAL_MODE); - backlight_ops->off(NORMAL_MODE); - backlight_ops->on(NORMAL_MODE); + display_panel_set_panel_state_by_off_state(NORMAL_MODE); + display_panel_set_panel_state_by_on_state(NORMAL_MODE); if (!check_default(touchscreen_ops)) touchscreen_ops->start(NORMAL_MODE); } @@ -2550,10 +2551,10 @@ static int display_start(enum device_flags flags) if (flags & NORMAL_MODE) { if (flags & LCD_PANEL_OFF_MODE) /* standby on */ - backlight_ops->standby(true); + display_panel_set_panel_state_by_standby_state(true); else /* normal lcd on */ - backlight_ops->on(flags); + display_panel_set_panel_state_by_on_state(flags); FIND_DISPLAY(enhance_ops, "enhance"); if (enhance_ops && enhance_ops->func) enhance_ops->func(RESTORE_ENHANCE_OUTDOOR, &on); @@ -2579,7 +2580,7 @@ static int display_stop(enum device_flags flags) { /* NORMAL MODE */ if (flags & NORMAL_MODE || flags & FORCE_OFF_MODE) { - backlight_ops->off(flags); + display_panel_set_panel_state_by_off_state(flags); return 0; } diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 779d8c6..0fbab8d 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -54,9 +54,7 @@ #define TOUCH_ON 1 #define TOUCH_OFF 0 -#define LCD_PHASED_MIN_BRIGHTNESS 1 #define LCD_PHASED_MAX_BRIGHTNESS 100 -#define LCD_PHASED_CHANGE_STEP 5 #define LCD_PHASED_DELAY 10000 /* microsecond */ #define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ @@ -214,70 +212,6 @@ static void change_brightness(int start, int end, int step) } } -static int backlight_on(enum device_flags flags) -{ - int ret = -1; - static int cnt; - - _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); - - cnt++; - ret = display_panel_set_dpms_state(DPMS_ON, flags); -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_off(enum device_flags flags) -{ - int ret = -1; - static int cnt, ambient_cnt; - int default_brightness = 0; - - display_backlight_get_default_brightness(&default_brightness); - - if (flags & AMBIENT_MODE) { - _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); - ambient_cnt++; - - return 0; - } - - _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt); - cnt++; - - if (flags & LCD_PHASED_TRANSIT_MODE) - backlight_ops.transit_brt(default_brightness, - LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); - - if (flags & FORCE_OFF_MODE) - ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); - else - ret = display_panel_set_dpms_state(DPMS_OFF, flags); - -#ifdef ENABLE_PM_LOG - pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); -#endif - - return ret; -} - -static int backlight_dim(void) -{ - int ret; - - ret = backlight_ops.set_brightness(PM_DIM_BRIGHTNESS); -#ifdef ENABLE_PM_LOG - if (!ret) - pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state()); - else - pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state()); -#endif - return ret; -} - static int set_custom_status(bool on) { custom_status = on; @@ -309,7 +243,7 @@ static int custom_backlight_update(void) return -EINVAL; if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { _I("custom brightness restored! %d", custom_brightness); ret = backlight_ops.set_brightness(custom_brightness); @@ -338,7 +272,7 @@ static int backlight_update(void) return 0; } if (display_dimstay_check()) - ret = backlight_dim(); + ret = display_backlight_set_brightness_by_dim_brightness(); else { display_backlight_get_default_brightness(&brt); ret = backlight_ops.set_brightness(brt); @@ -346,18 +280,6 @@ static int backlight_update(void) return ret; } -static int backlight_standby(int force) -{ - int ret = -1; - - if ((dpms_get_cached_state() == DPMS_ON) || force) { - _I("LCD standby"); - ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); - } - - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -603,11 +525,7 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .off = backlight_off, - .dim = backlight_dim, - .on = backlight_on, .update = backlight_update, - .standby = backlight_standby, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .set_custom_status = set_custom_status, diff --git a/src/display/ambient-mode.c b/src/display/ambient-mode.c index 6615309..0a91396 100644 --- a/src/display/ambient-mode.c +++ b/src/display/ambient-mode.c @@ -25,6 +25,7 @@ #include "core.h" #include "display.h" #include "display-ops.h" +#include "display-panel.h" #include "shared/device-notifier.h" #include "shared/devices.h" #include "shared/plugin.h" @@ -182,7 +183,7 @@ static void ambient_end_clock(pid_t pid) if (update_count == 0) { _D("lcd off"); - backlight_ops->off(NORMAL_MODE); + display_panel_set_panel_state_by_off_state(NORMAL_MODE); broadcast_lcd_off_late(LCD_OFF_LATE_MODE); if (disp_plgn->pm_unlock_internal) disp_plgn->pm_unlock_internal(INTERNAL_LOCK_AMBIENT, LCD_OFF, PM_SLEEP_MARGIN); diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 7461394..4ae9033 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -61,11 +61,7 @@ int display_service_load(void); int display_service_free(void); struct _backlight_ops { - int (*off)(enum device_flags); - int (*dim)(void); - int (*on)(enum device_flags); int (*update)(void); - int (*standby)(int); int (*get_lcd_power)(void); int (*get_lcd_power_node)(void); int (*set_custom_status)(bool on); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index d6f78fb..bceb279 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -26,6 +26,7 @@ #include "display-dpms.h" static const struct display_config *display_conf; +static struct _backlight_ops *backlight_ops; static int default_brightness; @@ -116,9 +117,30 @@ int display_backlight_get_default_brightness(int *brightness) return 0; } +int display_backlight_set_brightness_by_dim_brightness(void) +{ + int ret = 0; + + ret = backlight_ops->set_brightness(PM_DIM_BRIGHTNESS); + +#ifdef ENABLE_PM_LOG + if (!ret) + pm_history_save(PM_LOG_LCD_DIM, get_pm_cur_state()); + else + pm_history_save(PM_LOG_LCD_DIM_FAIL, get_pm_cur_state()); +#endif + return ret; +} + +/* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/ static void __CONSTRUCTOR__ initialize(void) { display_conf = get_var_display_config(); if (!display_conf) _W("Failed to get display configuration variable."); + + backlight_ops = get_var_backlight_ops(); + if (!backlight_ops) + _W("Failed to get backlight operator variable."); + } \ No newline at end of file diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index afe21ff..326aa94 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -24,5 +24,6 @@ int display_backlight_get_normalized_brightness(int raw_brightness, int *normalized_brightness); int display_backlight_set_default_brightness(int brightness); int display_backlight_get_default_brightness(int *brightness); +int display_backlight_set_brightness_by_dim_brightness(void); #endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index 468c890..87a397e 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -659,7 +659,7 @@ static GVariant *dbus_setrefreshrate(GDBusConnection *conn, control = display_conf->control_display; if (control) - backlight_ops->off(NORMAL_MODE); + display_panel_set_panel_state_by_off_state(NORMAL_MODE); _D("app : %d, value : %d", app, val); ret = display_panel_set_frame_rate(val); @@ -667,7 +667,7 @@ static GVariant *dbus_setrefreshrate(GDBusConnection *conn, _E("Failed to set frame rate (%d)", ret); if (control) - backlight_ops->on(NORMAL_MODE); + display_panel_set_panel_state_by_on_state(NORMAL_MODE); error: return g_variant_new("(i)", ret); diff --git a/src/display/display-panel.c b/src/display/display-panel.c index 7f936dd..6c99b5c 100644 --- a/src/display/display-panel.c +++ b/src/display/display-panel.c @@ -19,6 +19,7 @@ #include "shared/log.h" #include "power/power-suspend.h" #include "display.h" +#include "display-backlight.h" #include "display-dpms.h" #include "display-panel.h" @@ -27,6 +28,11 @@ #define DEFAULT_WHITE_BALANCE_GAIN 1024 #define DEFAULT_WHITE_BALANCE_OFFSET 0 +#define LCD_PHASED_MIN_BRIGHTNESS 1 +#define LCD_PHASED_CHANGE_STEP 5 + +static struct _backlight_ops *backlight_ops; + /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ int display_panel_set_dpms_state(int dpms_on, enum device_flags flags) { @@ -113,6 +119,66 @@ int display_panel_get_white_balance(enum hal_display_white_balance white_balance return ret; } +int display_panel_set_panel_state_by_on_state(enum device_flags flags) +{ + int ret = -1; + static int cnt; + + _I("[DPMS XLIB Backlight] LCD on %#x cnt:%d", flags, cnt); + + cnt++; + ret = display_panel_set_dpms_state(DPMS_ON, flags); + +#ifdef ENABLE_PM_LOG + pm_history_save(PM_LOG_LCD_ON, get_pm_cur_state()); +#endif + return ret; +} + +int display_panel_set_panel_state_by_off_state(enum device_flags flags) +{ + int ret = -1; + static int cnt, ambient_cnt; + int default_brightness = 0; + + display_backlight_get_default_brightness(&default_brightness); + + if (flags & AMBIENT_MODE) { + _I("[DPMS XLIB Backlight] LCD suspend %#x cnt:%d", flags, ambient_cnt); + ambient_cnt++; + return 0; + } + + _I("[DPMS XLIB Backlight] LCD off %#x cnt:%d", flags, cnt); + cnt++; + + if (flags & LCD_PHASED_TRANSIT_MODE) + backlight_ops->transit_brt(default_brightness, + LCD_PHASED_MIN_BRIGHTNESS, LCD_PHASED_CHANGE_STEP); + + if (flags & FORCE_OFF_MODE) + ret = display_panel_set_dpms_state(DPMS_FORCE_OFF, flags); + else + ret = display_panel_set_dpms_state(DPMS_OFF, flags); + +#ifdef ENABLE_PM_LOG + pm_history_save(PM_LOG_LCD_OFF, get_pm_cur_state()); +#endif + return ret; +} + +int display_panel_set_panel_state_by_standby_state(bool standby_on) +{ + int ret = -1; + + if ((dpms_get_cached_state() == DPMS_ON) || standby_on) { + _I("LCD standby"); + ret = display_panel_set_dpms_state(DPMS_STANDBY, 0); + } + + return ret; +} + /* FIXME: This function is used for only wearable profile, should be fixed after plugin refactoring */ int display_panel_set_image_effect(enum display_image_effect effect) { @@ -259,4 +325,12 @@ int display_panel_get_frame_rate(int *frame_rate) return -ENOTSUP; return hal_device_display_get_frame_rate(frame_rate); +} + +/* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/ +static void __CONSTRUCTOR__ initialize(void) +{ + backlight_ops = get_var_backlight_ops(); + if (!backlight_ops) + _W("Failed to get backlight operator variable."); } \ No newline at end of file diff --git a/src/display/display-panel.h b/src/display/display-panel.h index a287557..eabe41e 100644 --- a/src/display/display-panel.h +++ b/src/display/display-panel.h @@ -26,6 +26,9 @@ int display_panel_set_dpms_state(int dpms_on, enum device_flags flags); int display_panel_set_white_balance(enum hal_display_white_balance white_balance_type, int value); int display_panel_get_white_balance(enum hal_display_white_balance white_balance_type, int* out_val); +int display_panel_set_panel_state_by_on_state(enum device_flags flags); +int display_panel_set_panel_state_by_off_state(enum device_flags flags); +int display_panel_set_panel_state_by_standby_state(bool standby_on); /* Deprecated functions */ int display_panel_set_image_effect(enum display_image_effect effect); int display_panel_get_image_effect(enum display_image_effect *effect); -- 2.7.4 From 383e4720474e40910546553121ca8f3a02ab044b Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Wed, 22 Feb 2023 19:13:07 +0900 Subject: [PATCH 10/16] display: Move custom_status getter and setter from plugin to core display module Remove and redefine custom_status getter/setter. These functions are added below display-backlight. void display_backlight_set_custom_status(bool on) void display_backlight_get_custom_status(bool *on) -> With these functions, it is possible to get and set custom status. Change-Id: I353fd29d0d9fcc00504070f42d472c2bb89f3511 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/core.c | 9 +++++---- plugins/iot-headed/display/device-interface.c | 18 +++--------------- plugins/iot-headed/display/key-filter.c | 7 +++++-- plugins/mobile/display/core.c | 9 +++++---- plugins/mobile/display/device-interface.c | 18 +++--------------- plugins/mobile/display/key-filter.c | 7 +++++-- plugins/tv/display/core.c | 9 +++++---- plugins/tv/display/device-interface.c | 18 +++--------------- plugins/tv/display/key-filter.c | 7 +++++-- plugins/wearable/display/core.c | 9 +++++---- plugins/wearable/display/device-interface.c | 18 +++--------------- plugins/wearable/display/key-filter.c | 7 +++++-- src/display/device-interface.h | 2 -- src/display/display-backlight.c | 13 +++++++++++++ src/display/display-backlight.h | 2 ++ src/display/display-dbus.c | 4 +++- 16 files changed, 70 insertions(+), 87 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index 056371b..b9b762a 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -1376,6 +1376,7 @@ static int default_action(int timeout) static time_t last_update_time = 0; static int last_timeout = 0; struct timeval now_tv; + bool custom_status; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1432,8 +1433,8 @@ static int default_action(int timeout) break; case S_LCDDIM: - if ((get_pm_old_state() == S_NORMAL) && - backlight_ops->get_custom_status()) + display_backlight_get_custom_status(&custom_status); + if ((get_pm_old_state() == S_NORMAL) && custom_status) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); @@ -1662,9 +1663,9 @@ static int update_setting(int key_idx, int val) break; case SETTING_POWER_CUSTOM_BRIGHTNESS: if (val == VCONFKEY_PM_CUSTOM_BRIGHTNESS_ON) - backlight_ops->set_custom_status(true); + display_backlight_set_custom_status(true); else - backlight_ops->set_custom_status(false); + display_backlight_set_custom_status(false); break; default: diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index d2fe1ba..b7f5dbd 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -69,7 +69,6 @@ #define FREEZER_VITAL_WAKEUP_CGROUP "/sys/fs/cgroup/freezer/vital_wakeup/freezer.state" static struct _backlight_ops backlight_ops; -static bool custom_status; static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; @@ -201,17 +200,6 @@ static void change_brightness(int start, int end, int step) } } -static int set_custom_status(bool on) -{ - custom_status = on; - return 0; -} - -static bool get_custom_status(void) -{ - return custom_status; -} - static int save_custom_brightness(void) { int ret, brightness; @@ -255,8 +243,10 @@ static int backlight_update(void) { int ret = 0; int brt; + bool custom_status; - if (get_custom_status()) { + display_backlight_get_custom_status(&custom_status); + if (custom_status) { _I("custom brightness mode! brt no updated"); return 0; } @@ -463,8 +453,6 @@ static struct _backlight_ops backlight_ops = { .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .set_custom_status = set_custom_status, - .get_custom_status = get_custom_status, .save_custom_brightness = save_custom_brightness, .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, diff --git a/plugins/iot-headed/display/key-filter.c b/plugins/iot-headed/display/key-filter.c index 7b75ac7..cd22e66 100644 --- a/plugins/iot-headed/display/key-filter.c +++ b/plugins/iot-headed/display/key-filter.c @@ -32,6 +32,7 @@ #include "core.h" #include "poll.h" #include "display-actor.h" +#include "display-backlight.h" #include "display-ops.h" #include "shared/common.h" #include "shared/devices.h" @@ -112,8 +113,10 @@ static inline int current_state_in_on(void) static inline void restore_custom_brightness(void) { - if ((get_pm_cur_state() == S_LCDDIM) && - backlight_ops->get_custom_status()) + bool custom_status; + + display_backlight_get_custom_status(&custom_status); + if ((get_pm_cur_state() == S_LCDDIM) && custom_status) backlight_ops->custom_update(); } diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 9e2fae7..4b97a31 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -1386,6 +1386,7 @@ static int default_action(int timeout) static time_t last_update_time = 0; static int last_timeout = 0; struct timeval now_tv; + bool custom_status; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1442,8 +1443,8 @@ static int default_action(int timeout) break; case S_LCDDIM: - if ((get_pm_old_state() == S_NORMAL) && - backlight_ops->get_custom_status()) + display_backlight_get_custom_status(&custom_status); + if ((get_pm_old_state() == S_NORMAL) && custom_status) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); @@ -1672,9 +1673,9 @@ static int update_setting(int key_idx, int val) break; case SETTING_POWER_CUSTOM_BRIGHTNESS: if (val == VCONFKEY_PM_CUSTOM_BRIGHTNESS_ON) - backlight_ops->set_custom_status(true); + display_backlight_set_custom_status(true); else - backlight_ops->set_custom_status(false); + display_backlight_set_custom_status(false); break; default: diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index 9cc68ae..e3da1ed 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -68,7 +68,6 @@ #define UNKNOWN_STR "unknown" static struct _backlight_ops backlight_ops; -static bool custom_status; static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; @@ -200,17 +199,6 @@ static void change_brightness(int start, int end, int step) } } -static int set_custom_status(bool on) -{ - custom_status = on; - return 0; -} - -static bool get_custom_status(void) -{ - return custom_status; -} - static int save_custom_brightness(void) { int ret, brightness; @@ -254,8 +242,10 @@ static int backlight_update(void) { int ret = 0; int brt; + bool custom_status; - if (get_custom_status()) { + display_backlight_get_custom_status(&custom_status); + if (custom_status) { _I("custom brightness mode! brt no updated"); return 0; } @@ -462,8 +452,6 @@ static struct _backlight_ops backlight_ops = { .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .set_custom_status = set_custom_status, - .get_custom_status = get_custom_status, .save_custom_brightness = save_custom_brightness, .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, diff --git a/plugins/mobile/display/key-filter.c b/plugins/mobile/display/key-filter.c index b8fb9ca..128dbd8 100644 --- a/plugins/mobile/display/key-filter.c +++ b/plugins/mobile/display/key-filter.c @@ -32,6 +32,7 @@ #include "core.h" #include "poll.h" #include "display-actor.h" +#include "display-backlight.h" #include "display-ops.h" #include "shared/common.h" #include "shared/devices.h" @@ -112,8 +113,10 @@ static inline int current_state_in_on(void) static inline void restore_custom_brightness(void) { - if ((get_pm_cur_state() == S_LCDDIM) && - backlight_ops->get_custom_status()) + bool custom_status; + + display_backlight_get_custom_status(&custom_status); + if ((get_pm_cur_state() == S_LCDDIM) && custom_status) backlight_ops->custom_update(); } diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index a489846..5961124 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -1376,6 +1376,7 @@ static int default_action(int timeout) static time_t last_update_time = 0; static int last_timeout = 0; struct timeval now_tv; + bool custom_status; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1432,8 +1433,8 @@ static int default_action(int timeout) break; case S_LCDDIM: - if ((get_pm_old_state() == S_NORMAL) && - backlight_ops->get_custom_status()) + display_backlight_get_custom_status(&custom_status); + if ((get_pm_old_state() == S_NORMAL) && custom_status) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); @@ -1662,9 +1663,9 @@ static int update_setting(int key_idx, int val) break; case SETTING_POWER_CUSTOM_BRIGHTNESS: if (val == VCONFKEY_PM_CUSTOM_BRIGHTNESS_ON) - backlight_ops->set_custom_status(true); + display_backlight_set_custom_status(true); else - backlight_ops->set_custom_status(false); + display_backlight_set_custom_status(false); break; default: diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index e3952a7..8b0b25d 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -69,7 +69,6 @@ #define FREEZER_VITAL_WAKEUP_CGROUP "/sys/fs/cgroup/freezer/vital_wakeup/freezer.state" static struct _backlight_ops backlight_ops; -static bool custom_status; static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; @@ -201,17 +200,6 @@ static void change_brightness(int start, int end, int step) } } -static int set_custom_status(bool on) -{ - custom_status = on; - return 0; -} - -static bool get_custom_status(void) -{ - return custom_status; -} - static int save_custom_brightness(void) { int ret, brightness; @@ -255,8 +243,10 @@ static int backlight_update(void) { int ret = 0; int brt; + bool custom_status; - if (get_custom_status()) { + display_backlight_get_custom_status(&custom_status); + if (custom_status) { _I("custom brightness mode! brt no updated"); return 0; } @@ -463,8 +453,6 @@ static struct _backlight_ops backlight_ops = { .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .set_custom_status = set_custom_status, - .get_custom_status = get_custom_status, .save_custom_brightness = save_custom_brightness, .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, diff --git a/plugins/tv/display/key-filter.c b/plugins/tv/display/key-filter.c index e3b3cdf..5da93d1 100644 --- a/plugins/tv/display/key-filter.c +++ b/plugins/tv/display/key-filter.c @@ -32,6 +32,7 @@ #include "core.h" #include "poll.h" #include "display-actor.h" +#include "display-backlight.h" #include "display-ops.h" #include "shared/common.h" #include "shared/devices.h" @@ -112,8 +113,10 @@ static inline int current_state_in_on(void) static inline void restore_custom_brightness(void) { - if ((get_pm_cur_state() == S_LCDDIM) && - backlight_ops->get_custom_status()) + bool custom_status; + + display_backlight_get_custom_status(&custom_status); + if ((get_pm_cur_state() == S_LCDDIM) && custom_status) backlight_ops->custom_update(); } diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index 59cc552..ac56de1 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -1636,6 +1636,7 @@ static int default_action(int timeout) static time_t last_update_time = 0; static int last_timeout = 0; struct timeval now_tv; + bool custom_status; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1703,8 +1704,8 @@ static int default_action(int timeout) break; case S_LCDDIM: - if ((get_pm_old_state() == S_NORMAL) && - backlight_ops->get_custom_status()) + display_backlight_get_custom_status(&custom_status); + if ((get_pm_old_state() == S_NORMAL) && custom_status) backlight_ops->save_custom_brightness(); /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); @@ -1929,9 +1930,9 @@ static int update_setting(int key_idx, int val) break; case SETTING_POWER_CUSTOM_BRIGHTNESS: if (val == VCONFKEY_PM_CUSTOM_BRIGHTNESS_ON) - backlight_ops->set_custom_status(true); + display_backlight_set_custom_status(true); else - backlight_ops->set_custom_status(false); + display_backlight_set_custom_status(false); break; default: diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 0fbab8d..39453f7 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -75,7 +75,6 @@ static struct _backlight_ops backlight_ops; static struct battery_plugin *battery_plgn; -static bool custom_status; static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; @@ -212,17 +211,6 @@ static void change_brightness(int start, int end, int step) } } -static int set_custom_status(bool on) -{ - custom_status = on; - return 0; -} - -static bool get_custom_status(void) -{ - return custom_status; -} - static int save_custom_brightness(void) { int ret, brightness; @@ -266,8 +254,10 @@ static int backlight_update(void) { int ret = 0; int brt; + bool custom_status; - if (get_custom_status()) { + display_backlight_get_custom_status(&custom_status); + if (custom_status) { _I("custom brightness mode! brt no updated"); return 0; } @@ -528,8 +518,6 @@ static struct _backlight_ops backlight_ops = { .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .set_custom_status = set_custom_status, - .get_custom_status = get_custom_status, .save_custom_brightness = save_custom_brightness, .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, diff --git a/plugins/wearable/display/key-filter.c b/plugins/wearable/display/key-filter.c index 65ba5ab..4ca88d8 100644 --- a/plugins/wearable/display/key-filter.c +++ b/plugins/wearable/display/key-filter.c @@ -33,6 +33,7 @@ #include "poll.h" #include "display-actor.h" #include "display-ops.h" +#include "display-backlight.h" #include "shared/common.h" #include "shared/devices.h" #include "shared/device-notifier.h" @@ -111,8 +112,10 @@ static inline int current_state_in_on(void) static inline void restore_custom_brightness(void) { - if ((get_pm_cur_state() == S_LCDDIM) && - backlight_ops->get_custom_status()) + bool custom_status; + + display_backlight_get_custom_status(&custom_status); + if ((get_pm_cur_state() == S_LCDDIM) && custom_status) backlight_ops->custom_update(); } diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 4ae9033..f0fa27d 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -64,8 +64,6 @@ struct _backlight_ops { int (*update)(void); int (*get_lcd_power)(void); int (*get_lcd_power_node)(void); - int (*set_custom_status)(bool on); - bool (*get_custom_status)(void); int (*save_custom_brightness)(void); int (*custom_update)(void); int (*set_force_brightness)(int level); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index bceb279..f4abc22 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -29,6 +29,7 @@ static const struct display_config *display_conf; static struct _backlight_ops *backlight_ops; static int default_brightness; +static bool custom_status; /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ int display_backlight_get_max_brightness(int *max_brightness) @@ -132,6 +133,18 @@ int display_backlight_set_brightness_by_dim_brightness(void) return ret; } +/* FIXME: This custom_status policy can be changed, after plugin refactoting*/ +void display_backlight_set_custom_status(bool on) +{ + custom_status = on; +} + +/* FIXME: This custom_status policy can be changed, after plugin refactoting*/ +void display_backlight_get_custom_status(bool *on) +{ + *on = custom_status; +} + /* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/ static void __CONSTRUCTOR__ initialize(void) { diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index 326aa94..f85cf1e 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -25,5 +25,7 @@ int display_backlight_get_normalized_brightness(int raw_brightness, int display_backlight_set_default_brightness(int brightness); int display_backlight_get_default_brightness(int *brightness); int display_backlight_set_brightness_by_dim_brightness(void); +void display_backlight_set_custom_status(bool on); +void display_backlight_get_custom_status(bool *on); #endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index 87a397e..c2384f7 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -981,8 +981,10 @@ static GVariant *dbus_getcustombrightness(GDBusConnection *conn, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { int status = 0; + bool custom_status; - status = backlight_ops->get_custom_status(); + display_backlight_get_custom_status(&custom_status); + status = custom_status; return g_variant_new("(i)", status); } -- 2.7.4 From 3a9a4af496e0256bdcc3494c63a7560f1cdfcd83 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Thu, 23 Feb 2023 14:21:07 +0900 Subject: [PATCH 11/16] display: Move brightness update function plugin to core display module Remove and redefine backlight_update function. This function is added below display-backlight. int display_backlight_update_by_default_brightness(void) -> This function replaces backlight_update function located in plugins. Change-Id: I47e2b84a5157beebfc020a62b4508af0f85b52e4 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/core.c | 8 +++--- plugins/iot-headed/display/device-interface.c | 25 ++----------------- plugins/mobile/display/core.c | 8 +++--- plugins/mobile/display/device-interface.c | 25 ++----------------- plugins/tv/display/core.c | 8 +++--- plugins/tv/display/device-interface.c | 25 ++----------------- .../wearable/display/auto-brightness-sensorhub.c | 6 ++--- plugins/wearable/display/core.c | 6 ++--- plugins/wearable/display/device-interface.c | 25 ++----------------- plugins/wearable/display/powersaver.c | 3 ++- src/display/auto-brightness.c | 4 +-- src/display/device-interface.h | 1 - src/display/display-backlight.c | 29 +++++++++++++++++++--- src/display/display-backlight.h | 1 + src/display/display-dbus.c | 2 +- 15 files changed, 58 insertions(+), 118 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index b9b762a..de8ccb3 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -341,7 +341,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (state == LCD_DIM) display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } if (state == LCD_NORMAL) @@ -1426,7 +1426,7 @@ static int default_action(int timeout) if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) check_lock_screen(); else if (get_pm_old_state() == S_LCDDIM) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); if (check_lcd_is_on() == false) lcd_on_procedure(LCD_NORMAL, NORMAL_MODE); @@ -1545,7 +1545,7 @@ static void default_saving_mode(int onoff) clear_pm_status_flag(PWRSV_FLAG); if (get_pm_cur_state() == S_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } int poll_callback(int condition, PMMsg *data) @@ -1881,7 +1881,7 @@ static int battery_health_changed(void *data) } if (backlight_ops->get_lcd_power() == DPMS_ON) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); return 0; } diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index b7f5dbd..e8cf4fe 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -239,26 +239,6 @@ static int set_force_brightness(int level) return 0; } -static int backlight_update(void) -{ - int ret = 0; - int brt; - bool custom_status; - - display_backlight_get_custom_status(&custom_status); - if (custom_status) { - _I("custom brightness mode! brt no updated"); - return 0; - } - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - display_backlight_get_default_brightness(&brt); - ret = backlight_ops.set_brightness(brt); - } - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -417,7 +397,7 @@ static void blink(int timeout) } if (timeout == 0) { - backlight_update(); + display_backlight_update_by_default_brightness(); return; } @@ -450,7 +430,6 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .save_custom_brightness = save_custom_brightness, @@ -510,7 +489,7 @@ int exit_sysfs(void) { const struct device_ops *ops = NULL; - backlight_update(); + display_backlight_update_by_default_brightness(); dpms_exit(); diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 4b97a31..25db558 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -348,7 +348,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (state == LCD_DIM) display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } if (state == LCD_NORMAL) @@ -1436,7 +1436,7 @@ static int default_action(int timeout) if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) check_lock_screen(); else if (get_pm_old_state() == S_LCDDIM) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); if (check_lcd_is_on() == false) lcd_on_procedure(LCD_NORMAL, NORMAL_MODE); @@ -1555,7 +1555,7 @@ static void default_saving_mode(int onoff) clear_pm_status_flag(PWRSV_FLAG); if (get_pm_cur_state() == S_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } int poll_callback(int condition, PMMsg *data) @@ -1891,7 +1891,7 @@ static int battery_health_changed(void *data) } if (backlight_ops->get_lcd_power() == DPMS_ON) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); return 0; } diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index e3da1ed..d9a2a57 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -238,26 +238,6 @@ static int set_force_brightness(int level) return 0; } -static int backlight_update(void) -{ - int ret = 0; - int brt; - bool custom_status; - - display_backlight_get_custom_status(&custom_status); - if (custom_status) { - _I("custom brightness mode! brt no updated"); - return 0; - } - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - display_backlight_get_default_brightness(&brt); - ret = backlight_ops.set_brightness(brt); - } - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -416,7 +396,7 @@ static void blink(int timeout) } if (timeout == 0) { - backlight_update(); + display_backlight_update_by_default_brightness(); return; } @@ -449,7 +429,6 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .save_custom_brightness = save_custom_brightness, @@ -525,7 +504,7 @@ int exit_sysfs(void) { const struct device_ops *ops = NULL; - backlight_update(); + display_backlight_update_by_default_brightness(); dpms_exit(); diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index 5961124..c63d8ee 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -341,7 +341,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (state == LCD_DIM) display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } if (state == LCD_NORMAL) @@ -1426,7 +1426,7 @@ static int default_action(int timeout) if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) check_lock_screen(); else if (get_pm_old_state() == S_LCDDIM) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); if (check_lcd_is_on() == false) lcd_on_procedure(LCD_NORMAL, NORMAL_MODE); @@ -1545,7 +1545,7 @@ static void default_saving_mode(int onoff) clear_pm_status_flag(PWRSV_FLAG); if (get_pm_cur_state() == S_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } int poll_callback(int condition, PMMsg *data) @@ -1881,7 +1881,7 @@ static int battery_health_changed(void *data) } if (backlight_ops->get_lcd_power() == DPMS_ON) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); return 0; } diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 8b0b25d..842be00 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -239,26 +239,6 @@ static int set_force_brightness(int level) return 0; } -static int backlight_update(void) -{ - int ret = 0; - int brt; - bool custom_status; - - display_backlight_get_custom_status(&custom_status); - if (custom_status) { - _I("custom brightness mode! brt no updated"); - return 0; - } - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - display_backlight_get_default_brightness(&brt); - ret = backlight_ops.set_brightness(brt); - } - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -417,7 +397,7 @@ static void blink(int timeout) } if (timeout == 0) { - backlight_update(); + display_backlight_update_by_default_brightness(); return; } @@ -450,7 +430,6 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .save_custom_brightness = save_custom_brightness, @@ -510,7 +489,7 @@ int exit_sysfs(void) { const struct device_ops *ops = NULL; - backlight_update(); + display_backlight_update_by_default_brightness(); dpms_exit(); diff --git a/plugins/wearable/display/auto-brightness-sensorhub.c b/plugins/wearable/display/auto-brightness-sensorhub.c index a2ae6db..6e7226e 100644 --- a/plugins/wearable/display/auto-brightness-sensorhub.c +++ b/plugins/wearable/display/auto-brightness-sensorhub.c @@ -127,7 +127,7 @@ static void set_default_brightness(void) display_backlight_get_default_brightness(&default_brt); display_backlight_set_default_brightness(default_brt); - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } static void set_automatic_state_cb(keynode_t *key_nodes, void *data) @@ -289,7 +289,7 @@ int auto_brightness_control(enum brightness_request_e request, int set_brightnes } else if (request == BR_LOWDIM_OFF) { if (lowdim) { if (!hbm && !hold_brt && (get_pm_cur_state() == S_NORMAL)) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); change_flag(&lowdim, 0); } } else if (request == BR_SET_BRIGHTNESS) { @@ -339,7 +339,7 @@ int auto_brightness_restore(void) return 0; /* update to the default brightness */ - return backlight_ops->update(); + return display_backlight_update_by_default_brightness(); } int prepare_level_handler(void) diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index ac56de1..8f0edcb 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -559,7 +559,7 @@ void lcd_on_procedure(int state, enum device_flags flag) if (state == LCD_DIM) display_backlight_set_brightness_by_dim_brightness(); else if (state == LCD_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } if (state == LCD_NORMAL) @@ -1697,7 +1697,7 @@ static int default_action(int timeout) if ((get_pm_old_state() == S_LCDOFF) || (get_pm_old_state() == S_SLEEP)) check_lock_screen(); else if (get_pm_old_state() == S_LCDDIM) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); if (check_lcd_is_on() == false) lcd_on_procedure(LCD_NORMAL, NORMAL_MODE); @@ -2148,7 +2148,7 @@ static int battery_health_changed(void *data) set_pm_status_flag(BATTERY_FLAG); set_pm_status_flag(DIMSTAY_FLAG); if (backlight_ops->get_lcd_power() == DPMS_ON) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } return 0; diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 39453f7..3647d8b 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -250,26 +250,6 @@ static int set_force_brightness(int level) return 0; } -static int backlight_update(void) -{ - int ret = 0; - int brt; - bool custom_status; - - display_backlight_get_custom_status(&custom_status); - if (custom_status) { - _I("custom brightness mode! brt no updated"); - return 0; - } - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - display_backlight_get_default_brightness(&brt); - ret = backlight_ops.set_brightness(brt); - } - return ret; -} - static int set_brightness(int val) { int max, ret; @@ -482,7 +462,7 @@ static void blink(int timeout) } if (timeout == 0) { - backlight_update(); + display_backlight_update_by_default_brightness(); return; } @@ -515,7 +495,6 @@ static void restore_brightness_func(void) } static struct _backlight_ops backlight_ops = { - .update = backlight_update, .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, .save_custom_brightness = save_custom_brightness, @@ -592,7 +571,7 @@ int exit_sysfs(void) { const struct device_ops *ops = NULL; - backlight_update(); + display_backlight_update_by_default_brightness(); dpms_exit(); diff --git a/plugins/wearable/display/powersaver.c b/plugins/wearable/display/powersaver.c index 600671e..e859053 100644 --- a/plugins/wearable/display/powersaver.c +++ b/plugins/wearable/display/powersaver.c @@ -25,6 +25,7 @@ #include "core/log.h" #include "display/core.h" #include "display/device-interface.h" +#include "display/display-backlight.h" #include "display/display-ops.h" #include "display-info.h" #include "powersaver.h" @@ -54,7 +55,7 @@ static int set_powersaver_mode(int mode) hbm_ops->func(HBM_SET_TIMEOUT_STATE, &hss); } - backlight_ops->update(); + display_backlight_update_by_default_brightness(); get_run_timeout(&timeout); state_st(S_NORMAL)->timeout = timeout; state_st(get_pm_cur_state())->trans(EVENT_INPUT); diff --git a/src/display/auto-brightness.c b/src/display/auto-brightness.c index 6c9e96a..cdae274 100644 --- a/src/display/auto-brightness.c +++ b/src/display/auto-brightness.c @@ -148,7 +148,7 @@ static void alc_set_brightness(int setting, int value, float light) tmp_value = value; display_backlight_set_default_brightness(tmp_value); - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } _I("Load light data(%f) auto brt=%d min brightness=%d " "brightness=%d", light, automatic_brt, min_brightness, value); @@ -444,7 +444,7 @@ static int set_autobrightness_state(int status) } display_backlight_set_default_brightness(default_brt); - backlight_ops->update(); + display_backlight_update_by_default_brightness(); } return 0; diff --git a/src/display/device-interface.h b/src/display/device-interface.h index f0fa27d..f5010f1 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -61,7 +61,6 @@ int display_service_load(void); int display_service_free(void); struct _backlight_ops { - int (*update)(void); int (*get_lcd_power)(void); int (*get_lcd_power_node)(void); int (*save_custom_brightness)(void); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index f4abc22..379c7f5 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -29,7 +29,7 @@ static const struct display_config *display_conf; static struct _backlight_ops *backlight_ops; static int default_brightness; -static bool custom_status; +static bool g_custom_status; /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ int display_backlight_get_max_brightness(int *max_brightness) @@ -133,16 +133,39 @@ int display_backlight_set_brightness_by_dim_brightness(void) return ret; } +/* FIXME: display_dimstay_check function should be changed to plugin api call */ +int display_backlight_update_by_default_brightness(void) +{ + int ret = 0; + int default_brightness; + bool custom_status; + + display_backlight_get_custom_status(&custom_status); + if (custom_status) { + _I("Custom brightness mode, no update brightness"); + return 0; + } + + if (display_dimstay_check()) { + ret = display_backlight_set_brightness_by_dim_brightness(); + } else { + display_backlight_get_default_brightness(&default_brightness); + ret = backlight_ops->set_brightness(default_brightness); + } + + return ret; +} + /* FIXME: This custom_status policy can be changed, after plugin refactoting*/ void display_backlight_set_custom_status(bool on) { - custom_status = on; + g_custom_status = on; } /* FIXME: This custom_status policy can be changed, after plugin refactoting*/ void display_backlight_get_custom_status(bool *on) { - *on = custom_status; + *on = g_custom_status; } /* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/ diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index f85cf1e..61f3095 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -24,6 +24,7 @@ int display_backlight_get_normalized_brightness(int raw_brightness, int *normalized_brightness); int display_backlight_set_default_brightness(int brightness); int display_backlight_get_default_brightness(int *brightness); +int display_backlight_update_by_default_brightness(void); int display_backlight_set_brightness_by_dim_brightness(void); void display_backlight_set_custom_status(bool on); void display_backlight_get_custom_status(bool *on); diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index c2384f7..a67860a 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -1184,7 +1184,7 @@ static GVariant *dbus_dimstay_control(GDBusConnection *conn, } if (get_pm_cur_state() == S_NORMAL) - backlight_ops->update(); + display_backlight_update_by_default_brightness(); out: return g_variant_new("(i)", ret); -- 2.7.4 From 8322b676d77cc254e1f6255989c9e5f4e187834c Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Thu, 23 Feb 2023 15:47:25 +0900 Subject: [PATCH 12/16] display: Move custom_brightness setter and update function from plugin to core display module Remove and redefine custom_brightness setter and update function. These functions are added to below display-backlight. void display_backlight_set_custom_brightness(int brightness) -> This function set custom_brightness value. int display_backlight_update_by_custom_brightness(void) -> If the conditions are met, this function updates brightness with custom_brightness value. Change-Id: I4c3662fbdfff4a4b17224ac3af74c4cac1503303 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/core.c | 7 ++++-- plugins/iot-headed/display/device-interface.c | 32 --------------------------- plugins/iot-headed/display/key-filter.c | 2 +- plugins/mobile/display/core.c | 7 ++++-- plugins/mobile/display/device-interface.c | 32 --------------------------- plugins/mobile/display/key-filter.c | 2 +- plugins/tv/display/core.c | 7 ++++-- plugins/tv/display/device-interface.c | 32 --------------------------- plugins/tv/display/key-filter.c | 2 +- plugins/wearable/display/core.c | 7 ++++-- plugins/wearable/display/device-interface.c | 32 --------------------------- plugins/wearable/display/key-filter.c | 2 +- src/display/device-interface.h | 2 -- src/display/display-backlight.c | 25 +++++++++++++++++++++ src/display/display-backlight.h | 2 ++ 15 files changed, 51 insertions(+), 142 deletions(-) diff --git a/plugins/iot-headed/display/core.c b/plugins/iot-headed/display/core.c index de8ccb3..c021a59 100644 --- a/plugins/iot-headed/display/core.c +++ b/plugins/iot-headed/display/core.c @@ -1377,6 +1377,7 @@ static int default_action(int timeout) static int last_timeout = 0; struct timeval now_tv; bool custom_status; + int brightness; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1434,8 +1435,10 @@ static int default_action(int timeout) case S_LCDDIM: display_backlight_get_custom_status(&custom_status); - if ((get_pm_old_state() == S_NORMAL) && custom_status) - backlight_ops->save_custom_brightness(); + if ((get_pm_old_state() == S_NORMAL) && custom_status) { + backlight_ops->get_brightness(&brightness); + display_backlight_set_custom_brightness(brightness); + } /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index e8cf4fe..806512a 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -69,7 +69,6 @@ #define FREEZER_VITAL_WAKEUP_CGROUP "/sys/fs/cgroup/freezer/vital_wakeup/freezer.state" static struct _backlight_ops backlight_ops; -static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; @@ -200,35 +199,6 @@ static void change_brightness(int start, int end, int step) } } -static int save_custom_brightness(void) -{ - int ret, brightness; - - ret = backlight_ops.get_brightness(&brightness); - - custom_brightness = brightness; - - return ret; -} - -static int custom_backlight_update(void) -{ - int ret = 0; - - if (custom_brightness < PM_MIN_BRIGHTNESS || - custom_brightness > PM_MAX_BRIGHTNESS) - return -EINVAL; - - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - _I("custom brightness restored! %d", custom_brightness); - ret = backlight_ops.set_brightness(custom_brightness); - } - - return ret; -} - static int set_force_brightness(int level) { if (level < 0 || level > PM_MAX_BRIGHTNESS) @@ -432,8 +402,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .save_custom_brightness = save_custom_brightness, - .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/plugins/iot-headed/display/key-filter.c b/plugins/iot-headed/display/key-filter.c index cd22e66..aefad96 100644 --- a/plugins/iot-headed/display/key-filter.c +++ b/plugins/iot-headed/display/key-filter.c @@ -117,7 +117,7 @@ static inline void restore_custom_brightness(void) display_backlight_get_custom_status(&custom_status); if ((get_pm_cur_state() == S_LCDDIM) && custom_status) - backlight_ops->custom_update(); + display_backlight_update_by_custom_brightness(); } static void pwroff_popup(void) diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 25db558..bdf0ee3 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -1387,6 +1387,7 @@ static int default_action(int timeout) static int last_timeout = 0; struct timeval now_tv; bool custom_status; + int brightness; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1444,8 +1445,10 @@ static int default_action(int timeout) case S_LCDDIM: display_backlight_get_custom_status(&custom_status); - if ((get_pm_old_state() == S_NORMAL) && custom_status) - backlight_ops->save_custom_brightness(); + if ((get_pm_old_state() == S_NORMAL) && custom_status) { + backlight_ops->get_brightness(&brightness); + display_backlight_set_custom_brightness(brightness); + } /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index d9a2a57..6985f4d 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -68,7 +68,6 @@ #define UNKNOWN_STR "unknown" static struct _backlight_ops backlight_ops; -static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; @@ -199,35 +198,6 @@ static void change_brightness(int start, int end, int step) } } -static int save_custom_brightness(void) -{ - int ret, brightness; - - ret = backlight_ops.get_brightness(&brightness); - - custom_brightness = brightness; - - return ret; -} - -static int custom_backlight_update(void) -{ - int ret = 0; - - if (custom_brightness < PM_MIN_BRIGHTNESS || - custom_brightness > PM_MAX_BRIGHTNESS) - return -EINVAL; - - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - _I("custom brightness restored! %d", custom_brightness); - ret = backlight_ops.set_brightness(custom_brightness); - } - - return ret; -} - static int set_force_brightness(int level) { if (level < 0 || level > PM_MAX_BRIGHTNESS) @@ -431,8 +401,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .save_custom_brightness = save_custom_brightness, - .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/plugins/mobile/display/key-filter.c b/plugins/mobile/display/key-filter.c index 128dbd8..efdc77c 100644 --- a/plugins/mobile/display/key-filter.c +++ b/plugins/mobile/display/key-filter.c @@ -117,7 +117,7 @@ static inline void restore_custom_brightness(void) display_backlight_get_custom_status(&custom_status); if ((get_pm_cur_state() == S_LCDDIM) && custom_status) - backlight_ops->custom_update(); + display_backlight_update_by_custom_brightness(); } static void longkey_pressed(void) diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index c63d8ee..5fa0867 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -1377,6 +1377,7 @@ static int default_action(int timeout) static int last_timeout = 0; struct timeval now_tv; bool custom_status; + int brightness; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1434,8 +1435,10 @@ static int default_action(int timeout) case S_LCDDIM: display_backlight_get_custom_status(&custom_status); - if ((get_pm_old_state() == S_NORMAL) && custom_status) - backlight_ops->save_custom_brightness(); + if ((get_pm_old_state() == S_NORMAL) && custom_status) { + backlight_ops->get_brightness(&brightness); + display_backlight_set_custom_brightness(brightness); + } /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 842be00..1fd9534 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -69,7 +69,6 @@ #define FREEZER_VITAL_WAKEUP_CGROUP "/sys/fs/cgroup/freezer/vital_wakeup/freezer.state" static struct _backlight_ops backlight_ops; -static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; @@ -200,35 +199,6 @@ static void change_brightness(int start, int end, int step) } } -static int save_custom_brightness(void) -{ - int ret, brightness; - - ret = backlight_ops.get_brightness(&brightness); - - custom_brightness = brightness; - - return ret; -} - -static int custom_backlight_update(void) -{ - int ret = 0; - - if (custom_brightness < PM_MIN_BRIGHTNESS || - custom_brightness > PM_MAX_BRIGHTNESS) - return -EINVAL; - - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - _I("custom brightness restored! %d", custom_brightness); - ret = backlight_ops.set_brightness(custom_brightness); - } - - return ret; -} - static int set_force_brightness(int level) { if (level < 0 || level > PM_MAX_BRIGHTNESS) @@ -432,8 +402,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .save_custom_brightness = save_custom_brightness, - .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/plugins/tv/display/key-filter.c b/plugins/tv/display/key-filter.c index 5da93d1..1a7729a 100644 --- a/plugins/tv/display/key-filter.c +++ b/plugins/tv/display/key-filter.c @@ -117,7 +117,7 @@ static inline void restore_custom_brightness(void) display_backlight_get_custom_status(&custom_status); if ((get_pm_cur_state() == S_LCDDIM) && custom_status) - backlight_ops->custom_update(); + display_backlight_update_by_custom_brightness(); } static void pwroff_popup(void) diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index 8f0edcb..55067ab 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -1637,6 +1637,7 @@ static int default_action(int timeout) static int last_timeout = 0; struct timeval now_tv; bool custom_status; + int brightness; if (status != DEVICE_OPS_STATUS_START) { _E("Display is not started."); @@ -1705,8 +1706,10 @@ static int default_action(int timeout) case S_LCDDIM: display_backlight_get_custom_status(&custom_status); - if ((get_pm_old_state() == S_NORMAL) && custom_status) - backlight_ops->save_custom_brightness(); + if ((get_pm_old_state() == S_NORMAL) && custom_status) { + backlight_ops->get_brightness(&brightness); + display_backlight_set_custom_brightness(brightness); + } /* lcd dim state : dim the brightness */ display_backlight_set_brightness_by_dim_brightness(); diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 3647d8b..7acfe2a 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -75,7 +75,6 @@ static struct _backlight_ops backlight_ops; static struct battery_plugin *battery_plgn; -static int custom_brightness; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; @@ -211,35 +210,6 @@ static void change_brightness(int start, int end, int step) } } -static int save_custom_brightness(void) -{ - int ret, brightness; - - ret = backlight_ops.get_brightness(&brightness); - - custom_brightness = brightness; - - return ret; -} - -static int custom_backlight_update(void) -{ - int ret = 0; - - if (custom_brightness < PM_MIN_BRIGHTNESS || - custom_brightness > PM_MAX_BRIGHTNESS) - return -EINVAL; - - if (display_dimstay_check()) - ret = display_backlight_set_brightness_by_dim_brightness(); - else { - _I("custom brightness restored! %d", custom_brightness); - ret = backlight_ops.set_brightness(custom_brightness); - } - - return ret; -} - static int set_force_brightness(int level) { if (level < 0 || level > PM_MAX_BRIGHTNESS) @@ -497,8 +467,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, .get_lcd_power_node = get_lcd_power_node, - .save_custom_brightness = save_custom_brightness, - .custom_update = custom_backlight_update, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/plugins/wearable/display/key-filter.c b/plugins/wearable/display/key-filter.c index 4ca88d8..69b0fb3 100644 --- a/plugins/wearable/display/key-filter.c +++ b/plugins/wearable/display/key-filter.c @@ -116,7 +116,7 @@ static inline void restore_custom_brightness(void) display_backlight_get_custom_status(&custom_status); if ((get_pm_cur_state() == S_LCDDIM) && custom_status) - backlight_ops->custom_update(); + display_backlight_update_by_custom_brightness(); } static void longkey_pressed(void) diff --git a/src/display/device-interface.h b/src/display/device-interface.h index f5010f1..389fab7 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -63,8 +63,6 @@ int display_service_free(void); struct _backlight_ops { int (*get_lcd_power)(void); int (*get_lcd_power_node)(void); - int (*save_custom_brightness)(void); - int (*custom_update)(void); int (*set_force_brightness)(int level); int (*set_brightness)(int val); int (*get_brightness)(int *val); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index 379c7f5..9271033 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -29,6 +29,7 @@ static const struct display_config *display_conf; static struct _backlight_ops *backlight_ops; static int default_brightness; +static int custom_brightness; static bool g_custom_status; /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ @@ -156,6 +157,30 @@ int display_backlight_update_by_default_brightness(void) return ret; } +/* FIXME: This custom_brightness policy can be changed, after plugin refactoring */ +void display_backlight_set_custom_brightness(int brightness) +{ + custom_brightness = brightness; +} + +/* FIXME: display_dimstay_check function should be changed to plugin api call */ +int display_backlight_update_by_custom_brightness(void) +{ + int ret = 0; + + if (custom_brightness < PM_MIN_BRIGHTNESS || custom_brightness > PM_MAX_BRIGHTNESS) + return -EINVAL; + + if (display_dimstay_check()) { + ret = display_backlight_set_brightness_by_dim_brightness(); + } else { + _I("Custom brightness restored! %d", custom_brightness); + ret = backlight_ops->set_brightness(custom_brightness); + } + + return ret; +} + /* FIXME: This custom_status policy can be changed, after plugin refactoting*/ void display_backlight_set_custom_status(bool on) { diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index 61f3095..61e315a 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -28,5 +28,7 @@ int display_backlight_update_by_default_brightness(void); int display_backlight_set_brightness_by_dim_brightness(void); void display_backlight_set_custom_status(bool on); void display_backlight_get_custom_status(bool *on); +void display_backlight_set_custom_brightness(int brightness); +int display_backlight_update_by_custom_brightness(void); #endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file -- 2.7.4 From ff7f3d7de57b852a9f6ff7e984d96ecd3ef15452 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Fri, 24 Feb 2023 11:31:19 +0900 Subject: [PATCH 13/16] display: Move get_brightness_by_light_sensor function from plugin to core display module Remove and redefine get_brightness_by_light_sensor function. This function is added to below display-backlight. int display_backlight_get_brightness_by_light_sensor(float lmax, float lmin, float light, int *brightness) -> This function replaces get_brightness_by_light_sensor function located in plugins. Change-Id: Ibe17d746276c2f2ca3ba7b233c88c259471aaebe Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 28 --------------------------- plugins/mobile/display/device-interface.c | 28 --------------------------- plugins/tv/display/device-interface.c | 28 --------------------------- plugins/wearable/display/device-interface.c | 28 --------------------------- src/display/auto-brightness.c | 2 +- src/display/device-interface.h | 1 - src/display/display-backlight.c | 27 ++++++++++++++++++++++++++ src/display/display-backlight.h | 2 ++ 8 files changed, 30 insertions(+), 114 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 806512a..1648dd2 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -274,33 +274,6 @@ static int get_brightness(int *val) return 0; } -static int get_brightness_by_light_sensor(float lmax, float lmin, float light, int *brt) -{ - int brt_raw; - int ret; - - if (!display_dev_available) - return -ENOTSUP; - - ret = hal_device_display_get_auto_brightness(lmax, lmin, light, &brt_raw); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get auto brightness is not supported."); - else - _E("Failed to get brightness by light sensor: %d", ret); - - return ret; - } - - ret = display_backlight_get_normalized_brightness(brt_raw, brt); - if (ret < 0) { - _E("Failed to get normalized brightness."); - return ret; - } - - return 0; -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -406,7 +379,6 @@ static struct _backlight_ops backlight_ops = { .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, - .get_brightness_by_light_sensor = get_brightness_by_light_sensor, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index 6985f4d..0d5ea50 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -273,33 +273,6 @@ static int get_brightness(int *val) return 0; } -static int get_brightness_by_light_sensor(float lmax, float lmin, float light, int *brt) -{ - int brt_raw; - int ret; - - if (!display_dev_available) - return -ENOTSUP; - - ret = hal_device_display_get_auto_brightness(lmax, lmin, light, &brt_raw); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get auto brightness is not supported."); - else - _E("Failed to get brightness by light sensor: %d", ret); - - return ret; - } - - ret = display_backlight_get_normalized_brightness(brt_raw, brt); - if (ret < 0) { - _E("Failed to get normalized brightness."); - return ret; - } - - return 0; -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -405,7 +378,6 @@ static struct _backlight_ops backlight_ops = { .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, - .get_brightness_by_light_sensor = get_brightness_by_light_sensor, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 1fd9534..c4f60e7 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -274,33 +274,6 @@ static int get_brightness(int *val) return 0; } -static int get_brightness_by_light_sensor(float lmax, float lmin, float light, int *brt) -{ - int brt_raw; - int ret; - - if (!display_dev_available) - return -ENOTSUP; - - ret = hal_device_display_get_auto_brightness(lmax, lmin, light, &brt_raw); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get auto brightness is not supported."); - else - _E("Failed to get brightness by light sensor: %d", ret); - - return ret; - } - - ret = display_backlight_get_normalized_brightness(brt_raw, brt); - if (ret < 0) { - _E("Failed to get normalized brightness."); - return ret; - } - - return 0; -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -406,7 +379,6 @@ static struct _backlight_ops backlight_ops = { .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, - .get_brightness_by_light_sensor = get_brightness_by_light_sensor, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 7acfe2a..11a7c4a 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -286,33 +286,6 @@ static int get_brightness(int *val) return 0; } -static int get_brightness_by_light_sensor(float lmax, float lmin, float light, int *brt) -{ - int brt_raw; - int ret; - - if (!display_dev_available) - return -ENOTSUP; - - ret = hal_device_display_get_auto_brightness(lmax, lmin, light, &brt_raw); - if (ret < 0) { - if (ret == -ENODEV) - _E("Get auto brightness is not supported."); - else - _E("Failed to get brightness by light sensor: %d", ret); - - return ret; - } - - ret = display_backlight_get_normalized_brightness(brt_raw, brt); - if (ret < 0) { - _E("Failed to get normalized brightness."); - return ret; - } - - return 0; -} - /* It was operated only AOD enter & leave */ static int backlight_transit_state(int state) { @@ -471,7 +444,6 @@ static struct _backlight_ops backlight_ops = { .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, - .get_brightness_by_light_sensor = get_brightness_by_light_sensor, .transit_state = backlight_transit_state, .transit_brt = change_brightness, .blink = blink, diff --git a/src/display/auto-brightness.c b/src/display/auto-brightness.c index cdae274..393794f 100644 --- a/src/display/auto-brightness.c +++ b/src/display/auto-brightness.c @@ -193,7 +193,7 @@ static bool alc_update_brt(bool setting) } light = light_data.values[index]; - ret = backlight_ops->get_brightness_by_light_sensor( + ret = display_backlight_get_brightness_by_light_sensor( lmax, lmin, light, &value); if (ret == -ENOTSUP) { _E("Not supported to handle the light data."); diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 389fab7..034f133 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -68,7 +68,6 @@ struct _backlight_ops { int (*get_brightness)(int *val); int (*get_brightness_raw)(int *val); void (*restore_brightness_func)(void); - int (*get_brightness_by_light_sensor)(float lmax, float lmin, float light, int *brt); int (*transit_state)(int state); void (*transit_brt)(int start, int end, int step); void (*blink)(int timeout); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index 9271033..a112d16 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -193,6 +193,33 @@ void display_backlight_get_custom_status(bool *on) *on = g_custom_status; } +/* FIXME: This function is not tested */ +int display_backlight_get_brightness_by_light_sensor(float lmax, float lmin, + float light, int *brightness) +{ + int raw_brightness, ret = 0; + + if (!display_is_hal_backend_available()) + return -ENOTSUP; + + ret = hal_device_display_get_auto_brightness(lmax, lmin, light, &raw_brightness); + if (ret < 0) { + if (ret == -ENODEV) + _E("Get auto brightness is not supported."); + else + _E("Failed to get brightness by light sensor: %d", ret); + return ret; + } + + ret = display_backlight_get_normalized_brightness(raw_brightness, brightness); + if (ret < 0) { + _E("Failed to get normalized brightness."); + return ret; + } + + return 0; +} + /* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/ static void __CONSTRUCTOR__ initialize(void) { diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index 61e315a..9c7e5c3 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -30,5 +30,7 @@ void display_backlight_set_custom_status(bool on); void display_backlight_get_custom_status(bool *on); void display_backlight_set_custom_brightness(int brightness); int display_backlight_update_by_custom_brightness(void); +int display_backlight_get_brightness_by_light_sensor(float lmax, float lmin, + float light, int *brightness); #endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file -- 2.7.4 From 14ca6101e746bfbb6d81c79dc1617248458617fc Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Fri, 24 Feb 2023 17:17:58 +0900 Subject: [PATCH 14/16] display: Move display blink functions from plugin to core display module Remove and redefine display blink functions. These functions are added to below display-backlight. void display_backlight_set_blink(int timeout) -> This function set display blink behavior by adding timeout callback. void display_backlight_unset_blink(void) -> This function remove blink callback function after DUMP_MODE_WAITING_TIME time. Change-Id: Iafe293ff9ff8ad65b971885bfd949e037bcffa40 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 55 --------------------------- plugins/mobile/display/device-interface.c | 55 --------------------------- plugins/tv/display/device-interface.c | 55 --------------------------- plugins/wearable/display/device-interface.c | 55 --------------------------- src/display/device-interface.h | 2 - src/display/display-backlight.c | 53 ++++++++++++++++++++++++++ src/display/display-backlight.h | 2 + src/display/display-dbus.c | 6 +-- 8 files changed, 58 insertions(+), 225 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 1648dd2..e93dedd 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -53,7 +53,6 @@ #define LCD_PHASED_MAX_BRIGHTNESS 100 #define LCD_PHASED_DELAY 10000 /* microsecond */ -#define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ #define DISPLAY_HAL_LIB_PATH "/usr/lib/libdisplay-hal.so" @@ -72,7 +71,6 @@ static struct _backlight_ops backlight_ops; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; -static guint release_timer; static const struct display_config *display_conf; inline struct _backlight_ops *get_var_backlight_ops(void) @@ -314,57 +312,6 @@ static int backlight_transit_state(int state) return 0; } -static gboolean blink_cb(gpointer data) -{ - static bool flag; - - set_brightness(flag ? PM_MAX_BRIGHTNESS : PM_MIN_BRIGHTNESS); - - flag = !flag; - - return G_SOURCE_CONTINUE; -} - -static void blink(int timeout) -{ - static guint timer; - - if (timer) { - g_source_remove(timer); - timer = 0; - } - - if (timeout < 0) { - _E("timeout value is invalid %d", timeout); - return; - } - - if (timeout == 0) { - display_backlight_update_by_default_brightness(); - return; - } - - timer = g_timeout_add(timeout, blink_cb, NULL); -} - -static gboolean release_blink_cb(gpointer data) -{ - blink(0); - - release_timer = 0; - return G_SOURCE_REMOVE; -} - -static void release_blink(void) -{ - if (release_timer) { - g_source_remove(release_timer); - release_timer = 0; - } - - release_timer = g_timeout_add(DUMP_MODE_WAITING_TIME, release_blink_cb, NULL); -} - static void restore_brightness_func(void) { backlight_ops.set_brightness = set_brightness; @@ -381,8 +328,6 @@ static struct _backlight_ops backlight_ops = { .restore_brightness_func = restore_brightness_func, .transit_state = backlight_transit_state, .transit_brt = change_brightness, - .blink = blink, - .release_blink = release_blink, }; int display_service_load(void) diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index 0d5ea50..b967e3d 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -54,7 +54,6 @@ #define LCD_PHASED_MAX_BRIGHTNESS 100 #define LCD_PHASED_DELAY 10000 /* microsecond */ -#define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ #define DISPLAY_HAL_LIB_PATH "/usr/lib/libdisplay-hal.so" @@ -71,7 +70,6 @@ static struct _backlight_ops backlight_ops; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; -static guint release_timer; static const struct display_config *display_conf; inline struct _backlight_ops *get_var_backlight_ops(void) @@ -313,57 +311,6 @@ static int backlight_transit_state(int state) return 0; } -static gboolean blink_cb(gpointer data) -{ - static bool flag; - - set_brightness(flag ? PM_MAX_BRIGHTNESS : PM_MIN_BRIGHTNESS); - - flag = !flag; - - return G_SOURCE_CONTINUE; -} - -static void blink(int timeout) -{ - static guint timer; - - if (timer) { - g_source_remove(timer); - timer = 0; - } - - if (timeout < 0) { - _E("timeout value is invalid %d", timeout); - return; - } - - if (timeout == 0) { - display_backlight_update_by_default_brightness(); - return; - } - - timer = g_timeout_add(timeout, blink_cb, NULL); -} - -static gboolean release_blink_cb(gpointer data) -{ - blink(0); - - release_timer = 0; - return G_SOURCE_REMOVE; -} - -static void release_blink(void) -{ - if (release_timer) { - g_source_remove(release_timer); - release_timer = 0; - } - - release_timer = g_timeout_add(DUMP_MODE_WAITING_TIME, release_blink_cb, NULL); -} - static void restore_brightness_func(void) { backlight_ops.set_brightness = set_brightness; @@ -380,8 +327,6 @@ static struct _backlight_ops backlight_ops = { .restore_brightness_func = restore_brightness_func, .transit_state = backlight_transit_state, .transit_brt = change_brightness, - .blink = blink, - .release_blink = release_blink, }; int display_service_load(void) diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index c4f60e7..2382b31 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -53,7 +53,6 @@ #define LCD_PHASED_MAX_BRIGHTNESS 100 #define LCD_PHASED_DELAY 10000 /* microsecond */ -#define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ #define DISPLAY_HAL_LIB_PATH "/usr/lib/libdisplay-hal.so" @@ -72,7 +71,6 @@ static struct _backlight_ops backlight_ops; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; -static guint release_timer; static const struct display_config *display_conf; inline struct _backlight_ops *get_var_backlight_ops(void) @@ -314,57 +312,6 @@ static int backlight_transit_state(int state) return 0; } -static gboolean blink_cb(gpointer data) -{ - static bool flag; - - set_brightness(flag ? PM_MAX_BRIGHTNESS : PM_MIN_BRIGHTNESS); - - flag = !flag; - - return G_SOURCE_CONTINUE; -} - -static void blink(int timeout) -{ - static guint timer; - - if (timer) { - g_source_remove(timer); - timer = 0; - } - - if (timeout < 0) { - _E("timeout value is invalid %d", timeout); - return; - } - - if (timeout == 0) { - display_backlight_update_by_default_brightness(); - return; - } - - timer = g_timeout_add(timeout, blink_cb, NULL); -} - -static gboolean release_blink_cb(gpointer data) -{ - blink(0); - - release_timer = 0; - return G_SOURCE_REMOVE; -} - -static void release_blink(void) -{ - if (release_timer) { - g_source_remove(release_timer); - release_timer = 0; - } - - release_timer = g_timeout_add(DUMP_MODE_WAITING_TIME, release_blink_cb, NULL); -} - static void restore_brightness_func(void) { backlight_ops.set_brightness = set_brightness; @@ -381,8 +328,6 @@ static struct _backlight_ops backlight_ops = { .restore_brightness_func = restore_brightness_func, .transit_state = backlight_transit_state, .transit_brt = change_brightness, - .blink = blink, - .release_blink = release_blink, }; int display_service_load(void) diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 11a7c4a..5fa17b0 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -56,7 +56,6 @@ #define LCD_PHASED_MAX_BRIGHTNESS 100 #define LCD_PHASED_DELAY 10000 /* microsecond */ -#define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ #define DISPLAY_HAL_LIB_PATH "/usr/lib/libdisplay-hal.so" @@ -78,7 +77,6 @@ static struct battery_plugin *battery_plgn; static int force_brightness; static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; -static guint release_timer; static int aod_max_level = -1; static int aod_normal_level = -1; static int aod_min_level = -1; @@ -379,57 +377,6 @@ static int backlight_transit_state(int state) return 0; } -static gboolean blink_cb(gpointer data) -{ - static bool flag; - - set_brightness(flag ? PM_MAX_BRIGHTNESS : PM_MIN_BRIGHTNESS); - - flag = !flag; - - return G_SOURCE_CONTINUE; -} - -static void blink(int timeout) -{ - static guint timer; - - if (timer) { - g_source_remove(timer); - timer = 0; - } - - if (timeout < 0) { - _E("timeout value is invalid %d", timeout); - return; - } - - if (timeout == 0) { - display_backlight_update_by_default_brightness(); - return; - } - - timer = g_timeout_add(timeout, blink_cb, NULL); -} - -static gboolean release_blink_cb(gpointer data) -{ - blink(0); - - release_timer = 0; - return G_SOURCE_REMOVE; -} - -static void release_blink(void) -{ - if (release_timer) { - g_source_remove(release_timer); - release_timer = 0; - } - - release_timer = g_timeout_add(DUMP_MODE_WAITING_TIME, release_blink_cb, NULL); -} - static void restore_brightness_func(void) { backlight_ops.set_brightness = set_brightness; @@ -446,8 +393,6 @@ static struct _backlight_ops backlight_ops = { .restore_brightness_func = restore_brightness_func, .transit_state = backlight_transit_state, .transit_brt = change_brightness, - .blink = blink, - .release_blink = release_blink, /* auto-test only function */ .get_brightness_raw = get_brightness, /* always fetch brightness from node even LBM mode */ }; diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 034f133..2158463 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -70,8 +70,6 @@ struct _backlight_ops { void (*restore_brightness_func)(void); int (*transit_state)(int state); void (*transit_brt)(int start, int end, int step); - void (*blink)(int timeout); - void (*release_blink)(void); }; struct _backlight_ops *get_var_backlight_ops(void); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index a112d16..9b226ec 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -25,12 +25,15 @@ #include "display-backlight.h" #include "display-dpms.h" +#define DUMP_MODE_WAITING_TIME 600000 /* milisecond */ + static const struct display_config *display_conf; static struct _backlight_ops *backlight_ops; static int default_brightness; static int custom_brightness; static bool g_custom_status; +static guint release_timer; /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ int display_backlight_get_max_brightness(int *max_brightness) @@ -220,6 +223,56 @@ int display_backlight_get_brightness_by_light_sensor(float lmax, float lmin, return 0; } +static gboolean blink_cb(gpointer data) +{ + static bool flag; + + backlight_ops->set_brightness(flag ? PM_MAX_BRIGHTNESS : PM_MIN_BRIGHTNESS); + flag = !flag; + + return G_SOURCE_CONTINUE; +} + +void display_backlight_set_blink(int timeout) +{ + static guint blink_timer; + + if (blink_timer) { + g_source_remove(blink_timer); + blink_timer = 0; + } + + if (timeout < 0) { + _W("timeout value is invalid %d", timeout); + return; + } + + if (timeout == 0) { + display_backlight_update_by_default_brightness(); + return; + } + + blink_timer = g_timeout_add(timeout, blink_cb, NULL); +} + +static gboolean release_blink_cb(gpointer data) +{ + display_backlight_set_blink(0); + + release_timer = 0; + return G_SOURCE_REMOVE; +} + +void display_backlight_unset_blink(void) +{ + if (release_timer) { + g_source_remove(release_timer); + release_timer = 0; + } + + release_timer = g_timeout_add(DUMP_MODE_WAITING_TIME, release_blink_cb, NULL); +} + /* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/ static void __CONSTRUCTOR__ initialize(void) { diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index 9c7e5c3..f624c27 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -32,5 +32,7 @@ void display_backlight_set_custom_brightness(int brightness); int display_backlight_update_by_custom_brightness(void); int display_backlight_get_brightness_by_light_sensor(float lmax, float lmin, float light, int *brightness); +void display_backlight_set_blink(int timeout); +void display_backlight_unset_blink(void); #endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index a67860a..091bcc5 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -780,13 +780,13 @@ static GVariant *dbus_dumpmode(GDBusConnection *conn, if (disp_plgn->pm_lock_internal) disp_plgn->pm_lock_internal(INTERNAL_LOCK_DUMPMODE, LCD_OFF, STAY_CUR_STATE, DUMP_MODE_WATING_TIME); - backlight_ops->release_blink(); + display_backlight_unset_blink(); } else if (!strcmp(on, "off")) { if (disp_plgn->pm_unlock_internal) disp_plgn->pm_unlock_internal(INTERNAL_LOCK_DUMPMODE, LCD_OFF, PM_SLEEP_MARGIN); - backlight_ops->blink(0); + display_backlight_set_blink(0); } else if (!strcmp(on, "blink")) { - backlight_ops->blink(500); + display_backlight_set_blink(500); } else { ret = -EINVAL; } -- 2.7.4 From ce501b6cd3f7ef9232273604b6266f4587c96da7 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Fri, 24 Feb 2023 18:40:55 +0900 Subject: [PATCH 15/16] display: Move display get dpms state function from plugin to core display module Remove and redefine display dpms state function. These functions are added to below display-panel. int display_panel_get_dpms_state(void) -> This function returns dpms state and replaces get_lcd_power_node located in plugins. void display_panel_set_dpms_running_state(int val) -> This function initialize dpms_running_state Change-Id: I34e29e3477113d2f19835c0782303334ba0d870f Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 36 ----------------------- plugins/mobile/display/device-interface.c | 36 ----------------------- plugins/tv/display/device-interface.c | 36 ----------------------- plugins/wearable/display/device-interface.c | 38 ------------------------- src/display/device-interface.h | 1 - src/display/display-panel.c | 41 +++++++++++++++++++++++++++ src/display/display-panel.h | 2 ++ 7 files changed, 43 insertions(+), 147 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index e93dedd..05bd53b 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -69,7 +69,6 @@ static struct _backlight_ops backlight_ops; static int force_brightness; -static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static const struct display_config *display_conf; @@ -83,11 +82,6 @@ bool display_dev_ready(void) return display_dev_available; } -void dpms_set_running_state(int val) -{ - dpms_running_state = val; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -103,35 +97,6 @@ static int bl_brt(int brightness, int delay) return ret; } -static int get_lcd_power_node(void) -{ - int ret; - enum display_state val; - - ret = hal_device_display_get_state(&val); - if (ret < 0) - return ret; - - if (val == DISPLAY_ON && ambient_get_state()) - return DPMS_OFF; - - if (dpms_running_state != DPMS_SETTING_DONE) - return dpms_running_state; - - switch (val) { - case DISPLAY_ON: - return DPMS_ON; - case DISPLAY_STANDBY: - return DPMS_STANDBY; - case DISPLAY_SUSPEND: - return DPMS_SUSPEND; - case DISPLAY_OFF: - return DPMS_OFF; - default: - return -EINVAL; - } -} - bool display_dimstay_check(void) { if (get_pm_status_flag() & DIM_FLAG) @@ -321,7 +286,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .get_lcd_power_node = get_lcd_power_node, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index b967e3d..3f77a77 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -68,7 +68,6 @@ static struct _backlight_ops backlight_ops; static int force_brightness; -static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static const struct display_config *display_conf; @@ -82,11 +81,6 @@ bool display_dev_ready(void) return display_dev_available; } -void dpms_set_running_state(int val) -{ - dpms_running_state = val; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -102,35 +96,6 @@ static int bl_brt(int brightness, int delay) return ret; } -static int get_lcd_power_node(void) -{ - int ret; - enum display_state val; - - ret = hal_device_display_get_state(&val); - if (ret < 0) - return ret; - - if (val == DISPLAY_ON && ambient_get_state()) - return DPMS_OFF; - - if (dpms_running_state != DPMS_SETTING_DONE) - return dpms_running_state; - - switch (val) { - case DISPLAY_ON: - return DPMS_ON; - case DISPLAY_STANDBY: - return DPMS_STANDBY; - case DISPLAY_SUSPEND: - return DPMS_SUSPEND; - case DISPLAY_OFF: - return DPMS_OFF; - default: - return -EINVAL; - } -} - bool display_dimstay_check(void) { if (get_pm_status_flag() & DIM_FLAG) @@ -320,7 +285,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .get_lcd_power_node = get_lcd_power_node, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 2382b31..2a672b6 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -69,7 +69,6 @@ static struct _backlight_ops backlight_ops; static int force_brightness; -static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static const struct display_config *display_conf; @@ -83,11 +82,6 @@ bool display_dev_ready(void) return display_dev_available; } -void dpms_set_running_state(int val) -{ - dpms_running_state = val; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -103,35 +97,6 @@ static int bl_brt(int brightness, int delay) return ret; } -static int get_lcd_power_node(void) -{ - int ret; - enum display_state val; - - ret = hal_device_display_get_state(&val); - if (ret < 0) - return ret; - - if (val == DISPLAY_ON && ambient_get_state()) - return DPMS_OFF; - - if (dpms_running_state != DPMS_SETTING_DONE) - return dpms_running_state; - - switch (val) { - case DISPLAY_ON: - return DPMS_ON; - case DISPLAY_STANDBY: - return DPMS_STANDBY; - case DISPLAY_SUSPEND: - return DPMS_SUSPEND; - case DISPLAY_OFF: - return DPMS_OFF; - default: - return -EINVAL; - } -} - bool display_dimstay_check(void) { if (get_pm_status_flag() & DIM_FLAG) @@ -321,7 +286,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .get_lcd_power_node = get_lcd_power_node, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 5fa17b0..33af6f4 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -75,7 +75,6 @@ static struct _backlight_ops backlight_ops; static struct battery_plugin *battery_plgn; static int force_brightness; -static int dpms_running_state = DPMS_SETTING_DONE; static bool display_dev_available = false; static int aod_max_level = -1; static int aod_normal_level = -1; @@ -95,11 +94,6 @@ bool display_dev_ready(void) return display_dev_available; } -void dpms_set_running_state(int val) -{ - dpms_running_state = val; -} - static int bl_brt(int brightness, int delay) { int ret = -1; @@ -115,37 +109,6 @@ static int bl_brt(int brightness, int delay) return ret; } -static int get_lcd_power_node(void) -{ - int ret; - enum display_state val; - - ret = hal_device_display_get_state(&val); - if (ret < 0) - return ret; - - if (val == DISPLAY_ON && ambient_get_state()) - return DPMS_OFF; - - if (dpms_running_state != DPMS_SETTING_DONE) - return dpms_running_state; - - switch (val) { - case DISPLAY_ON: - return DPMS_ON; - case DISPLAY_STANDBY: - return DPMS_STANDBY; - case DISPLAY_SUSPEND: - return DPMS_SUSPEND; - case DISPLAY_OFF: - return DPMS_OFF; - case DISPLAY_DETACH: - return DPMS_DETACH; - default: - return -EINVAL; - } -} - bool display_dimstay_check(void) { if (get_pm_status_flag() & DIM_FLAG) @@ -386,7 +349,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .get_lcd_power_node = get_lcd_power_node, .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, diff --git a/src/display/device-interface.h b/src/display/device-interface.h index 2158463..f75dd54 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -62,7 +62,6 @@ int display_service_free(void); struct _backlight_ops { int (*get_lcd_power)(void); - int (*get_lcd_power_node)(void); int (*set_force_brightness)(int level); int (*set_brightness)(int val); int (*get_brightness)(int *val); diff --git a/src/display/display-panel.c b/src/display/display-panel.c index 6c99b5c..f9e49d6 100644 --- a/src/display/display-panel.c +++ b/src/display/display-panel.c @@ -18,6 +18,7 @@ #include "shared/log.h" #include "power/power-suspend.h" +#include "ambient-mode.h" #include "display.h" #include "display-backlight.h" #include "display-dpms.h" @@ -31,6 +32,8 @@ #define LCD_PHASED_MIN_BRIGHTNESS 1 #define LCD_PHASED_CHANGE_STEP 5 +static int dpms_running_state = DPMS_SETTING_DONE; + static struct _backlight_ops *backlight_ops; /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ @@ -179,6 +182,44 @@ int display_panel_set_panel_state_by_standby_state(bool standby_on) return ret; } +/* FIXME: This function is deprecated, should be fixed after plugin refactoring */ +void display_panel_set_dpms_running_state(int val) +{ + dpms_running_state = val; +} + +/* FIXME: This function is deprecated, should be fixed after plugin refactoring */ +int display_panel_get_dpms_state(void) +{ + int ret; + enum display_state val; + + ret = hal_device_display_get_state(&val); + if (ret < 0) + return ret; + + if (val == DISPLAY_ON && ambient_get_state()) + return DPMS_OFF; + + if (dpms_running_state != DPMS_SETTING_DONE) + return dpms_running_state; + + switch (val) { + case DISPLAY_ON: + return DPMS_ON; + case DISPLAY_STANDBY: + return DPMS_STANDBY; + case DISPLAY_SUSPEND: + return DPMS_SUSPEND; + case DISPLAY_OFF: + return DPMS_OFF; + case DISPLAY_DETACH: + return DPMS_DETACH; + default: + return -EINVAL; + } +} + /* FIXME: This function is used for only wearable profile, should be fixed after plugin refactoring */ int display_panel_set_image_effect(enum display_image_effect effect) { diff --git a/src/display/display-panel.h b/src/display/display-panel.h index eabe41e..795962c 100644 --- a/src/display/display-panel.h +++ b/src/display/display-panel.h @@ -36,5 +36,7 @@ int display_panel_set_panel_mode(enum display_panel_mode mode); int display_panel_get_panel_mode(enum display_panel_mode *mode); int display_panel_set_frame_rate(int frame_rate); int display_panel_get_frame_rate(int *frame_rate); +int display_panel_get_dpms_state(void); +void display_panel_set_dpms_running_state(int val); #endif /* __DISPLAY_PANEL_H__ */ \ No newline at end of file -- 2.7.4 From fc615fd163508e350eb589a533b1f5c7f7571500 Mon Sep 17 00:00:00 2001 From: Yunhee Seo Date: Mon, 27 Feb 2023 10:59:44 +0900 Subject: [PATCH 16/16] display: Move force_brightness getter and setter from plugin to core display module Remove and redefine force_brightness getter/setter. These functions are added below display-backlight. int display_backlight_set_force_brightness(int brightness) void display_backlight_get_force_brightness(int *brightness) -> With these functions, it is possible to get and set for_brightness value. Change-Id: Ibf93bfd10ac13a462759107598ea95d5c915e610 Signed-off-by: Yunhee Seo --- plugins/iot-headed/display/device-interface.c | 15 ++------------- plugins/mobile/display/device-interface.c | 15 ++------------- plugins/tv/display/device-interface.c | 15 ++------------- plugins/wearable/display/device-interface.c | 15 ++------------- plugins/wearable/display/powersaver.c | 2 +- src/display/device-interface.h | 1 - src/display/display-backlight.c | 18 ++++++++++++++++++ src/display/display-backlight.h | 2 ++ 8 files changed, 29 insertions(+), 54 deletions(-) diff --git a/plugins/iot-headed/display/device-interface.c b/plugins/iot-headed/display/device-interface.c index 05bd53b..949ad58 100644 --- a/plugins/iot-headed/display/device-interface.c +++ b/plugins/iot-headed/display/device-interface.c @@ -68,7 +68,6 @@ #define FREEZER_VITAL_WAKEUP_CGROUP "/sys/fs/cgroup/freezer/vital_wakeup/freezer.state" static struct _backlight_ops backlight_ops; -static int force_brightness; static bool display_dev_available = false; static const struct display_config *display_conf; @@ -162,22 +161,13 @@ static void change_brightness(int start, int end, int step) } } -static int set_force_brightness(int level) -{ - if (level < 0 || level > PM_MAX_BRIGHTNESS) - return -EINVAL; - - force_brightness = level; - - return 0; -} - static int set_brightness(int val) { int max, ret; - int default_brightness = 0; + int default_brightness = 0, force_brightness = 0; display_backlight_get_default_brightness(&default_brightness); + display_backlight_get_force_brightness(&force_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -286,7 +276,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, diff --git a/plugins/mobile/display/device-interface.c b/plugins/mobile/display/device-interface.c index 3f77a77..e7f64bb 100644 --- a/plugins/mobile/display/device-interface.c +++ b/plugins/mobile/display/device-interface.c @@ -67,7 +67,6 @@ #define UNKNOWN_STR "unknown" static struct _backlight_ops backlight_ops; -static int force_brightness; static bool display_dev_available = false; static const struct display_config *display_conf; @@ -161,22 +160,13 @@ static void change_brightness(int start, int end, int step) } } -static int set_force_brightness(int level) -{ - if (level < 0 || level > PM_MAX_BRIGHTNESS) - return -EINVAL; - - force_brightness = level; - - return 0; -} - static int set_brightness(int val) { int max, ret; - int default_brightness = 0; + int default_brightness = 0, force_brightness = 0; display_backlight_get_default_brightness(&default_brightness); + display_backlight_get_force_brightness(&force_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -285,7 +275,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, diff --git a/plugins/tv/display/device-interface.c b/plugins/tv/display/device-interface.c index 2a672b6..d16433d 100644 --- a/plugins/tv/display/device-interface.c +++ b/plugins/tv/display/device-interface.c @@ -68,7 +68,6 @@ #define FREEZER_VITAL_WAKEUP_CGROUP "/sys/fs/cgroup/freezer/vital_wakeup/freezer.state" static struct _backlight_ops backlight_ops; -static int force_brightness; static bool display_dev_available = false; static const struct display_config *display_conf; @@ -162,22 +161,13 @@ static void change_brightness(int start, int end, int step) } } -static int set_force_brightness(int level) -{ - if (level < 0 || level > PM_MAX_BRIGHTNESS) - return -EINVAL; - - force_brightness = level; - - return 0; -} - static int set_brightness(int val) { int max, ret; - int default_brightness = 0; + int default_brightness = 0, force_brightness = 0; display_backlight_get_default_brightness(&default_brightness); + display_backlight_get_force_brightness(&force_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -286,7 +276,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, diff --git a/plugins/wearable/display/device-interface.c b/plugins/wearable/display/device-interface.c index 33af6f4..ca09f35 100644 --- a/plugins/wearable/display/device-interface.c +++ b/plugins/wearable/display/device-interface.c @@ -74,7 +74,6 @@ static struct _backlight_ops backlight_ops; static struct battery_plugin *battery_plgn; -static int force_brightness; static bool display_dev_available = false; static int aod_max_level = -1; static int aod_normal_level = -1; @@ -171,22 +170,13 @@ static void change_brightness(int start, int end, int step) } } -static int set_force_brightness(int level) -{ - if (level < 0 || level > PM_MAX_BRIGHTNESS) - return -EINVAL; - - force_brightness = level; - - return 0; -} - static int set_brightness(int val) { int max, ret; - int default_brightness = 0; + int default_brightness = 0, force_brightness = 0; display_backlight_get_default_brightness(&default_brightness); + display_backlight_get_force_brightness(&force_brightness); if (!display_dev_available) { _E("There is no display device."); @@ -349,7 +339,6 @@ static void restore_brightness_func(void) static struct _backlight_ops backlight_ops = { .get_lcd_power = dpms_get_cached_state, - .set_force_brightness = set_force_brightness, .set_brightness = set_brightness, .get_brightness = get_brightness, .restore_brightness_func = restore_brightness_func, diff --git a/plugins/wearable/display/powersaver.c b/plugins/wearable/display/powersaver.c index e859053..609a54f 100644 --- a/plugins/wearable/display/powersaver.c +++ b/plugins/wearable/display/powersaver.c @@ -45,7 +45,7 @@ static int set_powersaver_mode(int mode) _D("Powersaver mode %d pmqos %d.", mode, pmqos); device_notify(DEVICE_NOTIFIER_ULTRAPOWERSAVING, (void *)&pmqos); - backlight_ops->set_force_brightness(0); + display_backlight_set_force_brightness(0); set_force_lcdtimeout(0); FIND_DISPLAY(hbm_ops, "hbm"); diff --git a/src/display/device-interface.h b/src/display/device-interface.h index f75dd54..7de0e98 100644 --- a/src/display/device-interface.h +++ b/src/display/device-interface.h @@ -62,7 +62,6 @@ int display_service_free(void); struct _backlight_ops { int (*get_lcd_power)(void); - int (*set_force_brightness)(int level); int (*set_brightness)(int val); int (*get_brightness)(int *val); int (*get_brightness_raw)(int *val); diff --git a/src/display/display-backlight.c b/src/display/display-backlight.c index 9b226ec..a8215bc 100644 --- a/src/display/display-backlight.c +++ b/src/display/display-backlight.c @@ -33,6 +33,7 @@ static struct _backlight_ops *backlight_ops; static int default_brightness; static int custom_brightness; static bool g_custom_status; +static int force_brightness; static guint release_timer; /* FIXME: This function is for temporary use, should be fixed after plugin refactoring */ @@ -273,6 +274,23 @@ void display_backlight_unset_blink(void) release_timer = g_timeout_add(DUMP_MODE_WAITING_TIME, release_blink_cb, NULL); } +/* FIXME: This function is only used for wearable plugin */ +int display_backlight_set_force_brightness(int brightness) +{ + if (brightness < PM_DIM_BRIGHTNESS || brightness > PM_MAX_BRIGHTNESS) + return -EINVAL; + + force_brightness = brightness; + + return 0; +} + +/* FIXME: This function is only used for wearable plugin */ +void display_backlight_get_force_brightness(int *brightness) +{ + *brightness = force_brightness; +} + /* FIXME: This code structure should be changed to plugin api call, after plugin refactoting*/ static void __CONSTRUCTOR__ initialize(void) { diff --git a/src/display/display-backlight.h b/src/display/display-backlight.h index f624c27..54fc5d1 100644 --- a/src/display/display-backlight.h +++ b/src/display/display-backlight.h @@ -34,5 +34,7 @@ int display_backlight_get_brightness_by_light_sensor(float lmax, float lmin, float light, int *brightness); void display_backlight_set_blink(int timeout); void display_backlight_unset_blink(void); +int display_backlight_set_force_brightness(int brightness); +void display_backlight_get_force_brightness(int *brightness); #endif /* __DISPLAY_BACKLIGHT_H__ */ \ No newline at end of file -- 2.7.4