From 73a833334eb1c5cb91a2e983ded21bb6ae2eddb9 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Wed, 19 Feb 2020 17:23:02 +0900 Subject: [PATCH 01/16] Fix dbus method: change_usb_client_mode() Change-Id: I285ecde35f611642bbec068ddade0482107603a5 Signed-off-by: Youngjae Cho --- src/usb/usb-dbus.c | 55 +++++++++++++++-------------------------------------- src/usb/usb-state.c | 2 +- src/usb/usb.h | 1 + 3 files changed, 17 insertions(+), 41 deletions(-) diff --git a/src/usb/usb-dbus.c b/src/usb/usb-dbus.c index 3b1c6b1..69b118a 100644 --- a/src/usb/usb-dbus.c +++ b/src/usb/usb-dbus.c @@ -27,6 +27,7 @@ #include "core/common.h" #include "core/devices.h" #include "usb.h" +#include "usb-debug.h" /* Legacy signals */ #define SIGNAL_STATE_CHANGED "StateChanged" @@ -125,56 +126,30 @@ static void change_usb_client_mode(GDBusConnection *conn, gpointer data) { - int req, debug; + int req_vconf = -1; int ret; unsigned mode; - g_variant_get(param, "(i)", &req); - - debug = 0; - switch (req) { - case SET_USB_DEFAULT: - case SET_USB_SDB: - case SET_USB_SDB_DIAG: - mode = USB_FUNCTION_MTP | USB_FUNCTION_ACM | USB_FUNCTION_SDB; - debug = 1; - break; - case SET_USB_RNDIS: - case SET_USB_RNDIS_DIAG: - mode = USB_FUNCTION_RNDIS | USB_FUNCTION_SDB; - debug = 1; - break; - case SET_USB_RNDIS_SDB: - mode = USB_FUNCTION_RNDIS | USB_FUNCTION_SDB | USB_FUNCTION_ACM; - debug = 1; - break; - case 11: /* SET_USB_DIAG_RMNET */ - mode = USB_FUNCTION_DIAG | USB_FUNCTION_ACM | USB_FUNCTION_RMNET; - debug = 1; - break; - case 12: /* SET_USB_ACM_SDB_DM */ - mode = USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_DM; - debug = 1; - break; - case 13: /* SET_USB_RNDIS_SDB_ACM */ - mode = USB_FUNCTION_RNDIS | USB_FUNCTION_SDB | USB_FUNCTION_ACM; - debug = 1; - break; - default: - _E("(%d) is unknown usb mode.", req); - goto out; + g_variant_get(param, "(i)", &req_vconf); + if (req_vconf < 0) { + _E("Failed to get req_vconf."); + return; } - ret = vconf_set_bool(VCONFKEY_SETAPPL_USB_DEBUG_MODE_BOOL, debug); - if (ret < 0) - _E("Failed to set usb debug mode: %d", vconf_get_ext_errno()); + mode = get_mode_bitmap_from_vconf(req_vconf); + + if (mode == USB_FUNCTION_INVALID) { + _E("Failed to convert vconf to mode. There is no mode matches up with vconf %d.", req_vconf); + return; + } ret = usb_change_mode(mode); if (ret < 0) _E("Failed to change usb mode: %d", ret); -out: - return ; + /* Get selected_mode once more, just in case usb_change_mode() fails */ + mode = usb_state_get_selected_mode(); + set_usb_debug_state((bool)(mode & USB_FUNCTION_SDB)); } /* dbus methods */ diff --git a/src/usb/usb-state.c b/src/usb/usb-state.c index 8d1e1e6..6470f41 100644 --- a/src/usb/usb-state.c +++ b/src/usb/usb-state.c @@ -73,7 +73,7 @@ static const struct _usb_mode_mapping_table { {13, USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_RNDIS}, /* SET_USB_RNDIS_SDB_ACM */ }; -static unsigned int get_mode_bitmap_from_vconf(int mode_v) +unsigned int get_mode_bitmap_from_vconf(int mode_v) { int i; int array_len = sizeof(usb_mode_mapping_table)/sizeof(usb_mode_mapping_table[0]); diff --git a/src/usb/usb.h b/src/usb/usb.h index ff968ea..1b620be 100644 --- a/src/usb/usb.h +++ b/src/usb/usb.h @@ -55,6 +55,7 @@ struct usb_config_plugin_ops { void add_usb_config(const struct usb_config_ops *ops); void remove_usb_config(const struct usb_config_ops *ops); +unsigned int get_mode_bitmap_from_vconf(int mode_v); int usb_change_mode(unsigned int mode); void usb_state_update_state(extcon_usb_state_e state, unsigned int mode); -- 2.7.4 From 613ecd25da136c6cf210e00a15a21783f7ecdf5b Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Thu, 20 Feb 2020 13:17:39 +0900 Subject: [PATCH 02/16] Update pm_cur_state correctly in lcd_on_direct() Change-Id: Ic72bbd46a90a597e814de87b45f9c2962d3d7e0d Signed-off-by: Youngjae Cho --- plugins/iot/display/core.c | 3 ++- plugins/mobile/display/core.c | 3 ++- plugins/tv/display/core.c | 3 ++- plugins/wearable/display/core.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/iot/display/core.c b/plugins/iot/display/core.c index c75b0d5..7f1ed5c 100644 --- a/plugins/iot/display/core.c +++ b/plugins/iot/display/core.c @@ -1123,9 +1123,10 @@ void lcd_on_direct(enum device_flags flags) && pm_cur_state == S_SLEEP) { broadcast_pm_wakeup(); power_ops.power_lock(); - pm_cur_state = S_NORMAL; } + pm_cur_state = S_NORMAL; + _D("lcd is on directly"); gettimeofday(&lcdon_tv, NULL); lcd_on_procedure(LCD_NORMAL, flags); diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 224c0b9..1dee4df 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -1129,9 +1129,10 @@ void lcd_on_direct(enum device_flags flags) && pm_cur_state == S_SLEEP) { broadcast_pm_wakeup(); power_ops.power_lock(); - pm_cur_state = S_NORMAL; } + pm_cur_state = S_NORMAL; + _D("lcd is on directly"); gettimeofday(&lcdon_tv, NULL); lcd_on_procedure(LCD_NORMAL, flags); diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index ecb23ab..3d2ca7d 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -1120,9 +1120,10 @@ void lcd_on_direct(enum device_flags flags) && pm_cur_state == S_SLEEP) { broadcast_pm_wakeup(); power_ops.power_lock(); - pm_cur_state = S_NORMAL; } + pm_cur_state = S_NORMAL; + _D("lcd is on directly"); gettimeofday(&lcdon_tv, NULL); lcd_on_procedure(LCD_NORMAL, flags); diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index b5bcc18..7a04a38 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -1128,9 +1128,10 @@ void lcd_on_direct(enum device_flags flags) && pm_cur_state == S_SLEEP) { broadcast_pm_wakeup(); power_ops.power_lock(); - pm_cur_state = S_NORMAL; } + pm_cur_state = S_NORMAL; + _D("lcd is on directly"); gettimeofday(&lcdon_tv, NULL); lcd_on_procedure(LCD_NORMAL, flags); -- 2.7.4 From dd2ae938a210f552220d4ec42c3f4bde87f8b90c Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Thu, 20 Feb 2020 14:54:28 +0900 Subject: [PATCH 03/16] Add FreqStrength to locate optimal position for D2D charging For D2D charge, user doesn't know the optimal location for charging. To improve this, support information about frequency strength to user so that they can adjust device charging position. Change-Id: Id002cc62b1aaf37d31328fcc47e0ef3368a0a20f Signed-off-by: Youngjae Cho --- src/auto-test/battery.c | 123 ++++++++++++++++++++++++--------------------- src/battery/power-supply.c | 51 ++++++++++++++++--- src/battery/power-supply.h | 3 ++ 3 files changed, 114 insertions(+), 63 deletions(-) diff --git a/src/auto-test/battery.c b/src/auto-test/battery.c index 4ef6fe8..7bd4597 100644 --- a/src/auto-test/battery.c +++ b/src/auto-test/battery.c @@ -48,6 +48,10 @@ #define PRESENT_ABNORMAL "0" #define PRESENT_NORMAL "1" +#define FREQ_STRENGTH_LEVEL_0 "0" +#define FREQ_STRENGTH_LEVEL_1 "50" +#define FREQ_STRENGTH_LEVEL_2 "100" + #define DEFAULT_LOWBATLEVEL 15 #define S_ENTER 1 @@ -61,62 +65,68 @@ static struct power_supply_type { char *health; char *online; char *present; + char *freq_strength; char *name; } power_supply_types[] = { - {"norm", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "CHARGE"}, - {"norm", S_ENTER, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "DISCHARGE"}, - {"norm", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"heat1", S_ENTER, "100", DISCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, - {"heat1", S_ENTER, "100", NOTCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "HEALTH(H) BEFORE CHARGE"}, - {"heat1", S_LEAVE, "100", DISCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "DISCHARGE"}, - {"heat1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"heat2", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, NULL}, - {"heat2", S_ENTER, "100", NOTCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "HEALTH(H) AFTER CHARGE"}, - {"heat2", S_LEAVE, "100", DISCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "DISCHARGE"}, - {"heat2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"cold1", S_ENTER, "100", DISCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, - {"cold1", S_ENTER, "100", NOTCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "HEALTH(L) BEFORE CHARGE"}, - {"cold1", S_LEAVE, "100", DISCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "DISCHARGE"}, - {"cold1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"cold2", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, NULL}, - {"cold2", S_ENTER, "100", NOTCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "HEALTH(L) AFTER CHARGE"}, - {"cold2", S_LEAVE, "100", DISCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "DISCHARGE"}, - {"cold2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"ovp", S_ENTER, "100", DISCHARGE_NAME, OVERVOLT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "OVP"}, - {"ovp", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"pres1", S_ENTER, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_ABNORMAL, NULL}, - {"pres1", S_ENTER, "100", NOTCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_ABNORMAL, "PRESENT BEFORE CHARGE"}, - {"pres1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_ABNORMAL, "DISCHARGE"}, - {"pres1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"pres2", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, NULL}, - {"pres2", S_ENTER, "100", NOTCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_ABNORMAL, "PRESENT AFTER CHARGE"}, - {"pres2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_ABNORMAL, "DISCHARGE"}, - {"pres2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, NULL}, /* init */ - - {"bat15", S_ENTER, "15", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "LOWBAT 15%"}, /* lowbat 15% */ - {"bat15", S_LEAVE, "15", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "LOWBAT 15%"}, - {"bat5", S_ENTER, "5", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "LOWBAT 5%"}, /* lowbat 5% */ - {"bat5", S_LEAVE, "5", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "LOWBAT 5%"}, - {"bat3", S_ENTER, "3", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "LOWBAT 3%"}, /* lowbat 3% */ - {"bat3", S_LEAVE, "3", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "LOWBAT 3%"}, - {"bat1", S_ENTER, "1", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "LOWBAT 1%"}, /* lowbat 1% */ - {"bat1", S_LEAVE, "1", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "LOWBAT 1%"}, - - {"ta", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "CHARGE"}, /* charging */ - {"ta", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "DISCHARGE"},/* discharging */ - - {"full", S_ENTER, "100", CHARGEFULL_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "CHARGE"}, /* full */ - {"full", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "DISCHARGE"},/* discharging */ - - {"capa", S_ENTER, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, "CAPACITY"},/* discharging */ - {"capa", S_LEAVE, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, "CAPACITY"},/* charging */ + {"norm", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "CHARGE"}, + {"norm", S_ENTER, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, + {"norm", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"heat1", S_ENTER, "100", DISCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, + {"heat1", S_ENTER, "100", NOTCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "HEALTH(H) BEFORE CHARGE"}, + {"heat1", S_LEAVE, "100", DISCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, + {"heat1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"heat2", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, + {"heat2", S_ENTER, "100", NOTCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "HEALTH(H) AFTER CHARGE"}, + {"heat2", S_LEAVE, "100", DISCHARGE_NAME, OVERHEAT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, + {"heat2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"cold1", S_ENTER, "100", DISCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, + {"cold1", S_ENTER, "100", NOTCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "HEALTH(L) BEFORE CHARGE"}, + {"cold1", S_LEAVE, "100", DISCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, + {"cold1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"cold2", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, + {"cold2", S_ENTER, "100", NOTCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "HEALTH(L) AFTER CHARGE"}, + {"cold2", S_LEAVE, "100", DISCHARGE_NAME, TEMPCOLD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, + {"cold2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"ovp", S_ENTER, "100", DISCHARGE_NAME, OVERVOLT_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "OVP"}, + {"ovp", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"pres1", S_ENTER, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_ABNORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, + {"pres1", S_ENTER, "100", NOTCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_ABNORMAL, FREQ_STRENGTH_LEVEL_0, "PRESENT BEFORE CHARGE"}, + {"pres1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_ABNORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, + {"pres1", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"pres2", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, + {"pres2", S_ENTER, "100", NOTCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_ABNORMAL, FREQ_STRENGTH_LEVEL_0, "PRESENT AFTER CHARGE"}, + {"pres2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_ABNORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, + {"pres2", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, NULL}, /* init */ + + {"bat15", S_ENTER, "15", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 15%"}, /* lowbat 15% */ + {"bat15", S_LEAVE, "15", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 15%"}, + {"bat5", S_ENTER, "5", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 5%"}, /* lowbat 5% */ + {"bat5", S_LEAVE, "5", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 5%"}, + {"bat3", S_ENTER, "3", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 3%"}, /* lowbat 3% */ + {"bat3", S_LEAVE, "3", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 3%"}, + {"bat1", S_ENTER, "1", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 1%"}, /* lowbat 1% */ + {"bat1", S_LEAVE, "1", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "LOWBAT 1%"}, + + {"ta", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "CHARGE"}, /* charging */ + {"ta", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"},/* discharging */ + + {"full", S_ENTER, "100", CHARGEFULL_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "CHARGE"}, /* full */ + {"full", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"},/* discharging */ + + {"capa", S_ENTER, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "CAPACITY"},/* discharging */ + {"capa", S_LEAVE, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "CAPACITY"},/* charging */ + + {"freq", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "CHARGE"}, + {"freq", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_1, "FREQ LEVEL 1 AFTER CHARGE"}, + {"freq", S_ENTER, "100", CHARGENOW_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_UPS, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_2, "FREQ LEVEL 2 AFTER CHARGE"}, + {"freq", S_LEAVE, "100", DISCHARGE_NAME, GOOD_NAME, POWER_SUPPLY_TYPE_BATTERY, PRESENT_NORMAL, FREQ_STRENGTH_LEVEL_0, "DISCHARGE"}, /* init */ }; @@ -336,13 +346,14 @@ static bool set_battery_power_supply(int index) bool ret = FALSE; GVariant *var; - var = g_variant_new("(sisssss)", POWER_SUBSYSTEM, + var = g_variant_new("(sissssss)", POWER_SUBSYSTEM, 5, power_supply_types[index].capacity, power_supply_types[index].charge_status, power_supply_types[index].health, power_supply_types[index].online, - power_supply_types[index].present); + power_supply_types[index].present, + power_supply_types[index].freq_strength); _I("C(%s , %s) P(%s) STATUS(%s) HEALTH(%s)", power_supply_types[index].capacity, power_supply_types[index].online, diff --git a/src/battery/power-supply.c b/src/battery/power-supply.c index 4e8bbcf..1b60cf2 100644 --- a/src/battery/power-supply.c +++ b/src/battery/power-supply.c @@ -69,6 +69,7 @@ #define CHARGER_WIRELESS_TYPE_BT 10 #define CHARGER_WIRELESS_TYPE_3G 22 #define CHARGER_INCOMPATIBLE_TYPE 11 +#define CHARGER_D2D_TYPE 110 #define WIRELESS_CHARGER_CONNECTED 2 #define SIGNAL_CHARGEERR_RESPONSE "ChargeErrResponse" @@ -660,6 +661,8 @@ static bool update_online(void) battery.online_type = CHARGER_TYPE_WIRELESS; else if (battery.online == CHARGER_INCOMPATIBLE_TYPE) battery.online_type = CHARGER_TYPE_INCOMPATIBLE; + else if (battery.online == CHARGER_D2D_TYPE) + battery.online_type = CHARGER_TYPE_D2D; else battery.online_type = CHARGER_TYPE_WIRE; @@ -736,6 +739,15 @@ static void check_misc_status(const char *env_value) battery.misc = atoi(env_value); } +static void check_freq_strength_status(const char *env_value) +{ + if (env_value == NULL) { + battery.freq_strength = 0; + return; + } + battery.freq_strength = atoi(env_value); +} + static void check_online_status(const char *env_value) { if (env_value == NULL) @@ -861,6 +873,10 @@ static void process_power_supply(void *data) if (power_supply_broadcast(CHARGE_MISC_EVENT_SIGNAL, battery.misc) < 0) broadcasted = false; + if (old_battery.freq_strength != battery.freq_strength) + if (power_supply_broadcast(CHARGE_FREQ_STRENGTH_SIGNAL, battery.freq_strength) < 0) + broadcasted = false; + if (old_battery.charge_full != battery.charge_full) noti_batt_full(); @@ -869,8 +885,9 @@ static void process_power_supply(void *data) old_battery.capacity != battery.capacity || old_battery.health != battery.health || old_battery.misc != battery.misc || + old_battery.freq_strength != battery.freq_strength || old_battery.online_type != battery.online_type) - _I("Signal(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d : %s)", + _I("Signal(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d : %s) %s(%d)", broadcasted, CHARGER_STATUS_SIGNAL, online_status, CHARGER_TYPE_SIGNAL, battery.online_type, @@ -879,7 +896,8 @@ static void process_power_supply(void *data) CHARGE_CAPACITY_SIGNAL, battery.capacity, CHARGE_LEVEL_SIGNAL, battery.charging_level, CHARGE_MISC_EVENT_SIGNAL, battery.misc, - CHARGE_HEALTH_SIGNAL, battery.health, battery.health_s); + CHARGE_HEALTH_SIGNAL, battery.health, battery.health_s, + CHARGE_FREQ_STRENGTH_SIGNAL, battery.freq_strength); old_battery.capacity = battery.capacity; old_battery.charging_level = battery.charging_level; @@ -892,6 +910,7 @@ static void process_power_supply(void *data) old_battery.health = battery.health; old_battery.misc = battery.misc; + old_battery.freq_strength = battery.freq_strength; old_battery.present = battery.present; snprintf(old_battery.health_s, sizeof(old_battery.health_s), "%s", battery.health_s); @@ -976,7 +995,8 @@ static int battery_state(struct battery_info *info) prev_status.charge_now == battery.charge_now && prev_status.health == battery.health && prev_status.present == battery.present && - prev_status.online == battery.online) + prev_status.online == battery.online && + prev_status.freq_strength == battery.freq_strength) return 0; prev_status.capacity = battery.capacity; @@ -986,6 +1006,7 @@ static int battery_state(struct battery_info *info) prev_status.health = battery.health; prev_status.present = battery.present; prev_status.online = battery.online; + prev_status.freq_strength = battery.freq_strength; _I("%s(%s) %s(%d) Capa(%d) Hth(%s,%d) Pres(%d) Curr(%d,%d)", info->status, @@ -1037,6 +1058,7 @@ static void battery_changed(struct battery_info *info, void *data) battery.current_now = info->current_now; battery.current_average = info->current_average; battery.temperature = info->temperature; + battery.freq_strength = info->freq_strength; ret = battery_state(info); if (ret != 1) @@ -1244,6 +1266,14 @@ static GVariant *dbus_get_misc(GDBusConnection *conn, return g_variant_new("(i)", ret); } + +static GVariant *dbus_get_freq_strength(GDBusConnection *conn, + const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, + GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) +{ + return g_variant_new("(i)", battery.freq_strength); +} + static GVariant *dbus_power_supply_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) @@ -1252,7 +1282,7 @@ static GVariant *dbus_power_supply_handler(GDBusConnection *conn, int ret = 0; int argc = 0; char *type_str; - char *argv[6]; + char *argv[7]; g_variant_get(param, "(sissssss)", &type_str, &argc, @@ -1261,7 +1291,8 @@ static GVariant *dbus_power_supply_handler(GDBusConnection *conn, &argv[2], &argv[3], &argv[4], - &argv[5]); + &argv[5], + &argv[6]); if (argc < 0) { _E("Message is invalid."); @@ -1281,6 +1312,7 @@ static GVariant *dbus_power_supply_handler(GDBusConnection *conn, check_online_status(argv[3]); check_present_status(argv[4]); check_misc_status(argv[5]); + check_freq_strength_status(argv[6]); if (battery_dev) battery_changed(NULL, NULL); snprintf(battery.status_s, sizeof(battery.status_s), "%s", @@ -1288,7 +1320,7 @@ static GVariant *dbus_power_supply_handler(GDBusConnection *conn, (battery.charge_now == CHARGER_ABNORMAL) ? "Not Charging" : (battery.charge_full == CHARGING_FULL) ? "Full" : "Discharging"); - _I("%s(%d) %s(f:%d n:%d) %s(%d) %s(%d) %s(%d) %s(%d)", + _I("%s(%d) %s(f:%d n:%d) %s(%d) %s(%d) %s(%d) %s(%d) %s(%d)", argv[0], battery.capacity, argv[1], @@ -1301,7 +1333,9 @@ static GVariant *dbus_power_supply_handler(GDBusConnection *conn, argv[4], battery.present, argv[5], - battery.misc); + battery.misc, + argv[6], + battery.freq_strength); if (battery.online > POWER_SUPPLY_TYPE_BATTERY) power_supply_noti(DEVICE_NOTI_BATT_CHARGE, DEVICE_NOTI_ON); @@ -1317,6 +1351,7 @@ out: g_free(argv[3]); g_free(argv[4]); g_free(argv[5]); + g_free(argv[6]); return g_variant_new("(i)", ret); } @@ -1420,6 +1455,7 @@ static const dbus_method_s dbus_methods[] = { { "ChargerCharging", "i", "i", dbus_charger_charging }, { CHARGE_BATTERY_PROPERTIES, NULL, "iiiiii", dbus_get_battery_props }, { CHARGE_MISC_EVENT_SIGNAL, NULL, "i", dbus_get_misc }, + { CHARGE_FREQ_STRENGTH_SIGNAL, NULL, "i", dbus_get_freq_strength} }; static const dbus_interface_u dbus_interface = { @@ -1740,6 +1776,7 @@ static void power_supply_init(void *data) battery.capacity = -1; battery.charger_charging = CHARGER_ENABLED; battery.misc = MISC_NONE; + battery.freq_strength = 0; /* process check battery timer until booting done */ power_supply_timer_start(); diff --git a/src/battery/power-supply.h b/src/battery/power-supply.h index 567ed07..34bb993 100644 --- a/src/battery/power-supply.h +++ b/src/battery/power-supply.h @@ -89,6 +89,7 @@ enum charger_type { CHARGER_TYPE_WIRE, CHARGER_TYPE_WIRELESS, CHARGER_TYPE_INCOMPATIBLE, + CHARGER_TYPE_D2D, }; struct battery_status { @@ -108,6 +109,7 @@ struct battery_status { int charging_level; int charger_charging; int misc; + int freq_strength; char status_s[32]; char health_s[32]; char power_source_s[32]; @@ -127,5 +129,6 @@ int power_supply_broadcast(char *sig, int status); #define CHARGE_FULL_SIGNAL "IsFull" #define CHARGE_BATTERY_PROPERTIES "BatteryProperties" #define CHARGE_MISC_EVENT_SIGNAL "MiscEvent" +#define CHARGE_FREQ_STRENGTH_SIGNAL "FreqStrength" #endif /* __POWER_SUPPLY_H__ */ -- 2.7.4 From f09ab346ee1fa15bb05ba7687e44bc0270393882 Mon Sep 17 00:00:00 2001 From: INSUN PYO Date: Fri, 21 Feb 2020 12:47:17 +0900 Subject: [PATCH 04/16] sync usb mode index with vconf Change-Id: Ifa79010dd982e48df995a02a6c6dc519c0e40733 --- src/usb/usb-state.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/usb/usb-state.c b/src/usb/usb-state.c index 6470f41..02d20fa 100644 --- a/src/usb/usb-state.c +++ b/src/usb/usb-state.c @@ -62,15 +62,15 @@ static const struct _usb_mode_mapping_table { {SET_USB_NONE, USB_FUNCTION_NONE}, {SET_USB_RNDIS, USB_FUNCTION_RNDIS}, {SET_USB_RNDIS_DIAG, USB_FUNCTION_RNDIS | USB_FUNCTION_DIAG}, - {11, USB_FUNCTION_DIAG | USB_FUNCTION_RMNET}, /* SET_USB_DIAG_RMNET */ - {12, USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_DM}, /* SET_USB_ACM_SDB_DM */ + {SET_USB_DIAG_RMNET, USB_FUNCTION_DIAG | USB_FUNCTION_RMNET}, + {SET_USB_ACM_SDB_DM, USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_DM}, {SET_USB_SDB_DIAG, USB_FUNCTION_MTP | USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_DIAG}, {SET_USB_DIAG_SDB, USB_FUNCTION_MTP | USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_DIAG}, {SET_USB_RNDIS_SDB, USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_RNDIS}, {SET_USB_RNDIS_TETHERING, USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_RNDIS}, - {13, USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_RNDIS}, /* SET_USB_RNDIS_SDB_ACM */ + {SET_USB_RNDIS_SDB_ACM, USB_FUNCTION_ACM | USB_FUNCTION_SDB | USB_FUNCTION_RNDIS}, }; unsigned int get_mode_bitmap_from_vconf(int mode_v) -- 2.7.4 From ea0ac6abce073b155741c6e2c1388d4270896167 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Thu, 20 Feb 2020 17:40:45 +0900 Subject: [PATCH 05/16] Add strings for LCDON triggered from bezel/backkey Change-Id: I2dc3a91991ee318b5419822f8f161d648820715d Signed-off-by: Youngjae Cho --- plugins/iot/display/key-filter.c | 2 +- plugins/mobile/display/key-filter.c | 2 +- plugins/tv/display/key-filter.c | 2 +- plugins/wearable/display/core.c | 6 ++++++ plugins/wearable/display/key-filter.c | 2 +- src/core/devices.h | 19 ++++++++++--------- 6 files changed, 20 insertions(+), 13 deletions(-) diff --git a/plugins/iot/display/key-filter.c b/plugins/iot/display/key-filter.c index a046080..71ee649 100644 --- a/plugins/iot/display/key-filter.c +++ b/plugins/iot/display/key-filter.c @@ -445,7 +445,7 @@ static int process_back_key(struct input_event *pinput) int ignore = true; if (pinput->value == KEY_PRESSED) { - switch_on_lcd(LCD_ON_BY_POWER_KEY); + switch_on_lcd(LCD_ON_BY_BACK_KEY); _I("back key pressed"); ignore = false; } diff --git a/plugins/mobile/display/key-filter.c b/plugins/mobile/display/key-filter.c index 7af0516..0da1315 100644 --- a/plugins/mobile/display/key-filter.c +++ b/plugins/mobile/display/key-filter.c @@ -434,7 +434,7 @@ static int process_back_key(struct input_event *pinput) int ignore = true; if (pinput->value == KEY_PRESSED) { - switch_on_lcd(LCD_ON_BY_POWER_KEY); + switch_on_lcd(LCD_ON_BY_BACK_KEY); _I("back key pressed"); ignore = false; } diff --git a/plugins/tv/display/key-filter.c b/plugins/tv/display/key-filter.c index c631ae8..d67d3a6 100644 --- a/plugins/tv/display/key-filter.c +++ b/plugins/tv/display/key-filter.c @@ -445,7 +445,7 @@ static int process_back_key(struct input_event *pinput) int ignore = true; if (pinput->value == KEY_PRESSED) { - switch_on_lcd(LCD_ON_BY_POWER_KEY); + switch_on_lcd(LCD_ON_BY_BACK_KEY); _I("back key pressed"); ignore = false; } diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index 7a04a38..2e67c3d 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -77,8 +77,10 @@ #define GESTURE_STR "gesture" #define POWER_KEY_STR "powerkey" +#define BACK_KEY_STR "backkey" #define TOUCH_STR "touch" #define EVENT_STR "event" +#define BEZEL_STR "bezel" #define TIMEOUT_STR "timeout" #define PROXI_STR "proximity" #define PALM_STR "palm" @@ -379,10 +381,14 @@ static void broadcast_lcd_on(enum signal_type type, enum device_flags flags) str = GESTURE_STR; else if (flags & LCD_ON_BY_POWER_KEY) str = POWER_KEY_STR; + else if (flags & LCD_ON_BY_BACK_KEY) + str = BACK_KEY_STR; else if (flags & LCD_ON_BY_EVENT) str = EVENT_STR; else if (flags & LCD_ON_BY_TOUCH) str = TOUCH_STR; + else if (flags & LCD_ON_BY_BEZEL) + str = BEZEL_STR; else str = UNKNOWN_STR; diff --git a/plugins/wearable/display/key-filter.c b/plugins/wearable/display/key-filter.c index 1f4734c..920674d 100644 --- a/plugins/wearable/display/key-filter.c +++ b/plugins/wearable/display/key-filter.c @@ -434,7 +434,7 @@ static int process_back_key(struct input_event *pinput) int ignore = true; if (pinput->value == KEY_PRESSED) { - switch_on_lcd(LCD_ON_BY_POWER_KEY); + switch_on_lcd(LCD_ON_BY_BACK_KEY); _I("back key pressed"); ignore = false; } diff --git a/src/core/devices.h b/src/core/devices.h index 8a8f4cd..8e79009 100644 --- a/src/core/devices.h +++ b/src/core/devices.h @@ -33,15 +33,16 @@ enum device_flags { NORMAL_MODE = 0x00000001, AMBIENT_MODE = 0x00000002, FORCE_OFF_MODE = 0x00000004, - CORE_LOGIC_MODE = 0x00010000, - TOUCH_SCREEN_OFF_MODE = 0x00020000, - LCD_PANEL_OFF_MODE = 0x00040000, - LCD_PHASED_TRANSIT_MODE = 0x00080000, - LCD_ON_BY_GESTURE = 0x00100000, - LCD_ON_BY_POWER_KEY = 0x00200000, - LCD_ON_BY_EVENT = 0x00400000, - LCD_ON_BY_TOUCH = 0x00800000, - LCD_ON_BY_BEZEL = 0x01000000, + CORE_LOGIC_MODE = 0x00001000, + TOUCH_SCREEN_OFF_MODE = 0x00002000, + LCD_PANEL_OFF_MODE = 0x00004000, + LCD_PHASED_TRANSIT_MODE = 0x00008000, + LCD_ON_BY_GESTURE = 0x00010000, + LCD_ON_BY_POWER_KEY = 0x00020000, + LCD_ON_BY_BACK_KEY = 0x00040000, + LCD_ON_BY_EVENT = 0x00080000, + LCD_ON_BY_TOUCH = 0x00100000, + LCD_ON_BY_BEZEL = 0x00200000, LCD_OFF_BY_POWER_KEY = 0x02000000, LCD_OFF_BY_TIMEOUT = 0x04000000, LCD_OFF_BY_EVENT = 0x08000000, -- 2.7.4 From 0d2d371c811f14e28f09b0bdb8b295f93f0d8461 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Fri, 21 Feb 2020 14:49:59 +0900 Subject: [PATCH 06/16] Add LCD_OFF_COMPLETE notifier DEVICE_NOTIFIER_LCD_OFF_COMPLETE is used for disabling lbm on LCDOFF. Change-Id: I88064ef316dd69623be197e5824c168c0069bf74 Signed-off-by: Youngjae Cho --- plugins/iot/display/core.c | 2 ++ plugins/mobile/display/core.c | 2 ++ plugins/tv/display/core.c | 2 ++ plugins/wearable/display/core.c | 2 ++ 4 files changed, 8 insertions(+) diff --git a/plugins/iot/display/core.c b/plugins/iot/display/core.c index 7f1ed5c..33265e1 100644 --- a/plugins/iot/display/core.c +++ b/plugins/iot/display/core.c @@ -600,6 +600,8 @@ inline void lcd_off_procedure(enum device_flags flag) broadcast_lcd_off_late(flags); else broadcast_lcd_off(SIGNAL_POST, flags); + + device_notify(DEVICE_NOTIFIER_LCD_OFF_COMPLETE, NULL); } void set_stay_touchscreen_off(int val) diff --git a/plugins/mobile/display/core.c b/plugins/mobile/display/core.c index 1dee4df..163a1f0 100644 --- a/plugins/mobile/display/core.c +++ b/plugins/mobile/display/core.c @@ -608,6 +608,8 @@ inline void lcd_off_procedure(enum device_flags flag) broadcast_lcd_off_late(flags); else broadcast_lcd_off(SIGNAL_POST, flags); + + device_notify(DEVICE_NOTIFIER_LCD_OFF_COMPLETE, NULL); } void set_stay_touchscreen_off(int val) diff --git a/plugins/tv/display/core.c b/plugins/tv/display/core.c index 3d2ca7d..facb73f 100644 --- a/plugins/tv/display/core.c +++ b/plugins/tv/display/core.c @@ -600,6 +600,8 @@ inline void lcd_off_procedure(enum device_flags flag) broadcast_lcd_off_late(flags); else broadcast_lcd_off(SIGNAL_POST, flags); + + device_notify(DEVICE_NOTIFIER_LCD_OFF_COMPLETE, NULL); } void set_stay_touchscreen_off(int val) diff --git a/plugins/wearable/display/core.c b/plugins/wearable/display/core.c index 2e67c3d..0e62786 100644 --- a/plugins/wearable/display/core.c +++ b/plugins/wearable/display/core.c @@ -614,6 +614,8 @@ inline void lcd_off_procedure(enum device_flags flag) broadcast_lcd_off_late(flags); else broadcast_lcd_off(SIGNAL_POST, flags); + + device_notify(DEVICE_NOTIFIER_LCD_OFF_COMPLETE, NULL); } void set_stay_touchscreen_off(int val) -- 2.7.4 From 0235fd379f29a3eeb491561d31a9f29b63e5fc67 Mon Sep 17 00:00:00 2001 From: "sanghyeok.oh" Date: Tue, 11 Feb 2020 21:10:34 +0900 Subject: [PATCH 07/16] add static keyword to locally used functions Change-Id: Ia9869628db2e6fe89f3a95d89894f4c31eeb9592 Signed-off-by: sanghyeok.oh --- plugins/wearable/display/hbm.c | 2 +- src/battery/battery-time.c | 2 +- src/control/control.c | 5 ++-- src/core/devices.c | 2 +- src/core/event-handler.c | 6 ++--- src/display/display-dbus.c | 58 +++++++++++++++++++++--------------------- src/extcon/cradle.c | 2 +- src/extcon/hdmi.c | 2 +- src/power/low-power.c | 6 ++--- src/proc/cpu-info.c | 2 +- src/time/time-handler.c | 2 +- src/touchscreen/touchscreen.c | 4 +-- src/usb/usb-dbus.c | 4 +-- 13 files changed, 48 insertions(+), 49 deletions(-) diff --git a/plugins/wearable/display/hbm.c b/plugins/wearable/display/hbm.c index 8ff1f4e..37b02e4 100644 --- a/plugins/wearable/display/hbm.c +++ b/plugins/wearable/display/hbm.c @@ -193,7 +193,7 @@ static int hbm_set_state_with_timeout(int hbm, int timeout) return 0; } -void hbm_check_timeout(void) +static void hbm_check_timeout(void) { struct timespec now; int ret; diff --git a/src/battery/battery-time.c b/src/battery/battery-time.c index 7966247..4a74bef 100644 --- a/src/battery/battery-time.c +++ b/src/battery/battery-time.c @@ -352,7 +352,7 @@ static void end_battinfo_gathering(void) del_all_batt_node(B_CHARGING); } -GVariant * dbus_get_timetofull(GDBusConnection *conn, +static GVariant * dbus_get_timetofull(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/control/control.c b/src/control/control.c index 6aa82cd..7a1bd3e 100644 --- a/src/control/control.c +++ b/src/control/control.c @@ -114,7 +114,7 @@ static int get_control_handler(int argc, char **argv) return extcon_get_status(devices[i].name); } -GVariant *dbus_control_handler(GDBusConnection *conn, +static GVariant *dbus_control_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -145,8 +145,7 @@ out: return g_variant_new("(i)", ret); } - -GVariant *dbus_get_control_handler(GDBusConnection *conn, +static GVariant *dbus_get_control_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/core/devices.c b/src/core/devices.c index 69e0106..393e9da 100644 --- a/src/core/devices.c +++ b/src/core/devices.c @@ -80,7 +80,7 @@ int check_default(const struct device_ops *dev) return (dev == &default_ops); } -GVariant *dbus_device_list(GDBusConnection *conn, +static GVariant *dbus_device_list(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/core/event-handler.c b/src/core/event-handler.c index a4871b7..e5ecec4 100644 --- a/src/core/event-handler.c +++ b/src/core/event-handler.c @@ -28,7 +28,7 @@ static device_notifier_state_e state = DEVICE_NOTIFIER_STATE_STOP; -GVariant *dbus_start_event_handler(GDBusConnection *conn, +static GVariant *dbus_start_event_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -40,7 +40,7 @@ GVariant *dbus_start_event_handler(GDBusConnection *conn, return g_variant_new("(i)", 0); } -GVariant *dbus_stop_event_handler(GDBusConnection *conn, +static GVariant *dbus_stop_event_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -52,7 +52,7 @@ GVariant *dbus_stop_event_handler(GDBusConnection *conn, return g_variant_new("(i)", 0); } -GVariant *dbus_udev_event_handler(GDBusConnection *conn, +static GVariant *dbus_udev_event_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/display/display-dbus.c b/src/display/display-dbus.c index c402aa1..bc1baac 100644 --- a/src/display/display-dbus.c +++ b/src/display/display-dbus.c @@ -69,7 +69,7 @@ #define EXPIRED_POPUP_COMM "_APP_COMM_" #define EXPIRED_POPUP_ID "_REQUEST_ID_" -GVariant *dbus_start(GDBusConnection *conn, +static GVariant *dbus_start(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -85,7 +85,7 @@ out: return dbus_handle_new_g_variant_tuple(); } -GVariant *dbus_stop(GDBusConnection *conn, +static GVariant *dbus_stop(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -101,7 +101,7 @@ out: return dbus_handle_new_g_variant_tuple(); } -GVariant *dbus_lockstate(GDBusConnection *conn, +static GVariant *dbus_lockstate(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -189,7 +189,7 @@ out: return g_variant_new("(i)", ret); } -GVariant *dbus_unlockstate(GDBusConnection *conn, +static GVariant *dbus_unlockstate(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -247,7 +247,7 @@ out: return g_variant_new("(i)", ret); } -GVariant *dbus_changestate(GDBusConnection *conn, +static GVariant *dbus_changestate(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -328,7 +328,7 @@ out: return g_variant_new("(i)", ret); } -GVariant *dbus_getdisplaycount(GDBusConnection *conn, +static GVariant *dbus_getdisplaycount(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -339,7 +339,7 @@ GVariant *dbus_getdisplaycount(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_getmaxbrightness(GDBusConnection *conn, +static GVariant *dbus_getmaxbrightness(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -356,7 +356,7 @@ GVariant *dbus_getmaxbrightness(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_setmaxbrightness(GDBusConnection *conn, +static GVariant *dbus_setmaxbrightness(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -367,7 +367,7 @@ GVariant *dbus_setmaxbrightness(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_getbrightness(GDBusConnection *conn, +static GVariant *dbus_getbrightness(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -394,7 +394,7 @@ GVariant *dbus_getbrightness(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_setbrightness(GDBusConnection *conn, +static GVariant *dbus_setbrightness(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -459,7 +459,7 @@ error: return g_variant_new("(i)", ret); } -GVariant *dbus_holdbrightness(GDBusConnection *conn, +static GVariant *dbus_holdbrightness(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -508,7 +508,7 @@ error: return g_variant_new("(i)", ret); } -GVariant *dbus_releasebrightness(GDBusConnection *conn, +static GVariant *dbus_releasebrightness(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -580,7 +580,7 @@ error: return g_variant_new("(i)", ret); } -GVariant *dbus_setrefreshrate(GDBusConnection *conn, +static GVariant *dbus_setrefreshrate(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -616,7 +616,7 @@ error: return g_variant_new("(i)", ret); } -GVariant *dbus_setautobrightnessmin(GDBusConnection *conn, +static GVariant *dbus_setautobrightnessmin(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -648,7 +648,7 @@ error: return g_variant_new("(i)", ret); } -GVariant *dbus_setlcdtimeout(GDBusConnection *conn, +static GVariant *dbus_setlcdtimeout(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -675,7 +675,7 @@ GVariant *dbus_setlcdtimeout(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_lockscreenbgon(GDBusConnection *conn, +static GVariant *dbus_lockscreenbgon(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -697,7 +697,7 @@ GVariant *dbus_lockscreenbgon(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_dumpmode(GDBusConnection *conn, +static GVariant *dbus_dumpmode(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -726,7 +726,7 @@ GVariant *dbus_dumpmode(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_savelog(GDBusConnection *conn, +static GVariant *dbus_savelog(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -734,7 +734,7 @@ GVariant *dbus_savelog(GDBusConnection *conn, return dbus_handle_new_g_variant_tuple(); } -GVariant *dbus_powerkeyignore(GDBusConnection *conn, +static GVariant *dbus_powerkeyignore(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -749,7 +749,7 @@ GVariant *dbus_powerkeyignore(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_powerkeylcdoff(GDBusConnection *conn, +static GVariant *dbus_powerkeylcdoff(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -763,7 +763,7 @@ GVariant *dbus_powerkeylcdoff(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_customlcdon(GDBusConnection *conn, +static GVariant *dbus_customlcdon(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -777,7 +777,7 @@ GVariant *dbus_customlcdon(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_customlcdoff(GDBusConnection *conn, +static GVariant *dbus_customlcdoff(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -805,7 +805,7 @@ out: return g_variant_new("(i)", ret); } -GVariant *dbus_changestatebyreason(GDBusConnection *conn, +static GVariant *dbus_changestatebyreason(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -826,7 +826,7 @@ GVariant *dbus_changestatebyreason(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_staytouchscreenoff(GDBusConnection *conn, +static GVariant *dbus_staytouchscreenoff(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -840,7 +840,7 @@ GVariant *dbus_staytouchscreenoff(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_lcdpaneloffmode(GDBusConnection *conn, +static GVariant *dbus_lcdpaneloffmode(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -854,7 +854,7 @@ GVariant *dbus_lcdpaneloffmode(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_actorcontrol(GDBusConnection *conn, +static GVariant *dbus_actorcontrol(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -874,7 +874,7 @@ GVariant *dbus_actorcontrol(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_getcustombrightness(GDBusConnection *conn, +static GVariant *dbus_getcustombrightness(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -929,7 +929,7 @@ static int get_command(pid_t pid, char *comm, size_t len) return 0; } -GVariant *dbus_locktimeout_expired(GDBusConnection *conn, +static GVariant *dbus_locktimeout_expired(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -1056,7 +1056,7 @@ out: free(item); } -GVariant *dbus_locktimeout_input(GDBusConnection *conn, +static GVariant *dbus_locktimeout_input(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/extcon/cradle.c b/src/extcon/cradle.c index 2f37d04..06c9152 100644 --- a/src/extcon/cradle.c +++ b/src/extcon/cradle.c @@ -100,7 +100,7 @@ static int display_changed(void *data) return 0; } -GVariant *dbus_cradle_handler(GDBusConnection *conn, +static GVariant *dbus_cradle_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/extcon/hdmi.c b/src/extcon/hdmi.c index 1a3b2f6..08c89e9 100644 --- a/src/extcon/hdmi.c +++ b/src/extcon/hdmi.c @@ -95,7 +95,7 @@ static int display_changed(void *data) return 0; } -GVariant *dbus_hdmi_handler(GDBusConnection *conn, +static GVariant *dbus_hdmi_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/power/low-power.c b/src/power/low-power.c index f71315a..0061bec 100644 --- a/src/power/low-power.c +++ b/src/power/low-power.c @@ -101,7 +101,7 @@ out: return done; } -GVariant *dbus_low_power_start(GDBusConnection *conn, +static GVariant *dbus_low_power_start(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -124,7 +124,7 @@ GVariant *dbus_low_power_start(GDBusConnection *conn, out: return g_variant_new("(i)", ret); } -GVariant *dbus_low_power_stop(GDBusConnection *conn, +static GVariant *dbus_low_power_stop(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -148,7 +148,7 @@ out: return g_variant_new("(i)", ret); } -GVariant *dbus_low_power_get_state(GDBusConnection *conn, +static GVariant *dbus_low_power_get_state(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/proc/cpu-info.c b/src/proc/cpu-info.c index 79f437f..cbf3db2 100644 --- a/src/proc/cpu-info.c +++ b/src/proc/cpu-info.c @@ -112,7 +112,7 @@ static int get_revision(char *rev, int len) return 0; } -GVariant *dbus_revision_handler(GDBusConnection *conn, +static GVariant *dbus_revision_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/time/time-handler.c b/src/time/time-handler.c index 6ffebd1..964783b 100644 --- a/src/time/time-handler.c +++ b/src/time/time-handler.c @@ -301,7 +301,7 @@ out: return G_SOURCE_CONTINUE; } -GVariant *dbus_time_handler(GDBusConnection *conn, +static GVariant *dbus_time_handler(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/touchscreen/touchscreen.c b/src/touchscreen/touchscreen.c index 23b4090..a452ec7 100644 --- a/src/touchscreen/touchscreen.c +++ b/src/touchscreen/touchscreen.c @@ -255,7 +255,7 @@ static int touchscreen_dump(FILE *fp, int mode, void *dump_data) return 0; } -GVariant *dbus_touchscreen_enable(GDBusConnection *conn, +static GVariant *dbus_touchscreen_enable(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -265,7 +265,7 @@ GVariant *dbus_touchscreen_enable(GDBusConnection *conn, return g_variant_new("(i)", ret); } -GVariant *dbus_touchscreen_disable(GDBusConnection *conn, +static GVariant *dbus_touchscreen_disable(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { diff --git a/src/usb/usb-dbus.c b/src/usb/usb-dbus.c index 69b118a..35b2c2f 100644 --- a/src/usb/usb-dbus.c +++ b/src/usb/usb-dbus.c @@ -153,7 +153,7 @@ static void change_usb_client_mode(GDBusConnection *conn, } /* dbus methods */ -GVariant *get_usb_client_state(GDBusConnection *conn, +static GVariant *get_usb_client_state(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { @@ -164,7 +164,7 @@ GVariant *get_usb_client_state(GDBusConnection *conn, return g_variant_new("(u)", state); } -GVariant *get_usb_client_mode(GDBusConnection *conn, +static GVariant *get_usb_client_mode(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) { -- 2.7.4 From 5e0411aa7b79261fc314a53dc03fa6a4a297c7ab Mon Sep 17 00:00:00 2001 From: INSUN PYO Date: Mon, 24 Feb 2020 14:06:30 +0900 Subject: [PATCH 08/16] Removed "route add" in rndis usb mode Ifconfig command will also automatically add route information to the routing table in the kernel. So if you run "route add" additionally, you have duplicate routing table entries. sh-3.2# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0 cns1.sec.samsun 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0 cns2.sec.samsun 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0 192.168.0.0 * 255.255.255.0 U 0 0 0 wlan0 192.168.0.1 * 255.255.255.255 UH 0 0 0 wlan0 192.168.129.0 * 255.255.255.0 U 0 0 0 usb0 <== here 192.168.129.0 * 255.255.255.0 U 0 0 0 usb0 <== here Change-Id: I96c290ce5de1da81ff7b9f99cfaefc8a64b618ac --- scripts/rndis.sh | 9 --------- 1 file changed, 9 deletions(-) diff --git a/scripts/rndis.sh b/scripts/rndis.sh index eb38cdb..66f8294 100755 --- a/scripts/rndis.sh +++ b/scripts/rndis.sh @@ -24,21 +24,12 @@ else fi ######################################################################################### -IP1=`echo $IP_ADDR | cut -d"." -f1` -IP2=`echo $IP_ADDR | cut -d"." -f2` -IP3=`echo $IP_ADDR | cut -d"." -f3` -NETWORK=$IP1"."$IP2"."$IP3"."0 - -######################################################################################### echo "rndis network inteface =" $IFNAME echo "rndis ip address =" $IP_ADDR -echo "rndis network =" $NETWORK if [ x$1 == "xstart" ] then /sbin/ifconfig $IFNAME $IP_ADDR up - /sbin/route add -net $NETWORK netmask 255.255.255.0 dev $IFNAME else - /sbin/route del -net $NETWORK netmask 255.255.255.0 dev $IFNAME /sbin/ifconfig $IFNAME down fi -- 2.7.4 From 76c19d917472254e019945d2d036dd371143b766 Mon Sep 17 00:00:00 2001 From: INSUN PYO Date: Mon, 24 Feb 2020 15:09:30 +0900 Subject: [PATCH 09/16] Removed the usb_state_changed() function that was called by usb_init() without meaning. The following call stack ensures that usb_state_changed() is called after usb_init. /////////////////////////////////////////////////////////////////////////////////////////////////////////// extcon_init() --> usb_init() --> event_handler_state_changed (DEVICE_NOTIFIER_STATE_START) --> add_extcon_event_handler() --> get_extcon_init_state() -> config_parse() -> extcon_load_uevent() -> extcon_update() -> usb_state_changed() /////////////////////////////////////////////////////////////////////////////////////////////////////////// Also, when usb_state_changed() is called from usb_init, the extcon value is always -1 because the extcon initial value has not yet been retrieved. The initial state of usb_state_changed() is -1, and usb_state_changed(-1) does nothing. Change-Id: I77d774c9a396b3773203a69db83aa408e315205a --- src/usb/usb.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/usb/usb.c b/src/usb/usb.c index f94ca80..2d52bf2 100644 --- a/src/usb/usb.c +++ b/src/usb/usb.c @@ -375,6 +375,7 @@ static int usb_state_changed(int status) static int old = -1; /* to update at the first time */ int ret; + /* For debugging. Do not move the location. */ _I("USB state is changed from (%d) to (%d).", old, status); if (old == status) @@ -456,10 +457,6 @@ static void usb_init(void *data) add_usb_tethering_handler(); add_usb_debug_handler(); - - ret = usb_state_changed(extcon_usb_ops.status); - if (ret < 0) - _E("Failed to update usb status: %d", ret); } static void usb_exit(void *data) -- 2.7.4 From caacd8080b59e7c8f0ed48da7e9e43d1e73edba8 Mon Sep 17 00:00:00 2001 From: INSUN PYO Date: Mon, 24 Feb 2020 12:10:01 +0900 Subject: [PATCH 10/16] Remove is_emulator() on usb Deviced only uses three functions in usb_client hal: disable, enable and reconfigure_gadget. If emulator's usb_client hal provides these three functions as dummy, deviced can be used on both the emulator and target as a single code. Change-Id: Ie2f32403e9767f65d4166ab8be6c83b68891b452 --- src/usb/usb.c | 60 +++++++++++++++++++++++++---------------------------------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/src/usb/usb.c b/src/usb/usb.c index 2d52bf2..b551378 100644 --- a/src/usb/usb.c +++ b/src/usb/usb.c @@ -274,12 +274,10 @@ static int usb_enable(unsigned int mode) if (usb_state_get_current_mode() != USB_FUNCTION_NONE) usb_state_update_state(USB_CONNECTED, USB_FUNCTION_NONE); - if (!is_emulator()) { - ret = usb_config_enable(); - if (ret < 0) { - _E("Failed to enable usb config: %d", ret); - return ret; - } + ret = usb_config_enable(); + if (ret < 0) { + _E("Failed to enable usb config: %d", ret); + return ret; } usb_state_update_state(USB_CONNECTED, mode); @@ -301,11 +299,9 @@ static int usb_disable(void) usb_state_update_state(USB_DISCONNECTED, USB_FUNCTION_NONE); } - if (!is_emulator()) { - ret = usb_config_disable(); - if (ret != 0) - _E("Failed to disable usb config: %d", ret); - } + ret = usb_config_disable(); + if (ret != 0) + _E("Failed to disable usb config: %d", ret); if (disp_plgn.pm_unlock_internal) disp_plgn.pm_unlock_internal(INTERNAL_LOCK_USB, LCD_OFF, STAY_CUR_STATE); @@ -326,12 +322,10 @@ int usb_change_mode(unsigned mode) } } - if (!is_emulator()) { - ret = usb_change_gadget(mode); - if (ret < 0) { - _E("Failed to change gadget: %d", ret); - mode = usb_state_get_selected_mode(); - } + ret = usb_change_gadget(mode); + if (ret < 0) { + _E("Failed to change gadget: %d", ret); + mode = usb_state_get_selected_mode(); } (void)usb_state_set_selected_mode(mode); @@ -435,21 +429,19 @@ static void usb_init(void *data) usb_state_retrieve_selected_mode(); - if (!is_emulator()) { - ret = usb_probe(); - if (ret < 0) { - _E("USB client cannot be used: %d", ret); - return; - } + ret = usb_probe(); + if (ret < 0) { + _E("USB client cannot be used: %d", ret); + return; + } - ret = usb_config_init(); - if (ret < 0) - _E("Failed to initialize usb configuation."); + ret = usb_config_init(); + if (ret < 0) + _E("Failed to initialize usb configuation."); - ret = register_udev_uevent_control(&uh); - if (ret < 0) - _E("Failed to register udev event(%d)", ret); - } + ret = register_udev_uevent_control(&uh); + if (ret < 0) + _E("Failed to register udev event(%d)", ret); ret = usb_dbus_init(); if (ret < 0) @@ -465,11 +457,9 @@ static void usb_exit(void *data) remove_usb_tethering_handler(); usb_state_update_state(USB_DISCONNECTED, USB_FUNCTION_NONE); - if (!is_emulator()) { - unregister_udev_uevent_control(&uh); - usb_config_deinit(); - usb_release(); - } + unregister_udev_uevent_control(&uh); + usb_config_deinit(); + usb_release(); } struct extcon_ops extcon_usb_ops = { -- 2.7.4 From afc07029ac20298d000ece024c10fbe791f0d00b Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Mon, 24 Feb 2020 12:06:33 +0900 Subject: [PATCH 11/16] Add software bezel control Change-Id: I1c1625892c7d04531d88079fdb70ab404a9c6065 Signed-off-by: Youngjae Cho --- plugins/wearable/display/bezel.c | 118 ++++++++++++++++++++++++++++++--------- 1 file changed, 91 insertions(+), 27 deletions(-) diff --git a/plugins/wearable/display/bezel.c b/plugins/wearable/display/bezel.c index 8723f2d..537fe3f 100644 --- a/plugins/wearable/display/bezel.c +++ b/plugins/wearable/display/bezel.c @@ -30,8 +30,15 @@ #define VCONFKEY_SETAPPL_WAKEUP_BY_BEZEL_ENABLE "db/setting/wakeup_by_bezel_enable" #endif +enum bezel_type { + BEZEL_NOTSUP = 0, + BEZEL_HARD, + BEZEL_SOFT, +}; + static struct bezel_device *bezel_dev; -static int bezel_wakeup = -1; +static int bezel_wakeup = 0; +static enum bezel_type bezel_type = BEZEL_NOTSUP; static void bezel_changed_cb(keynode_t *key_nodes, void *data) { @@ -39,48 +46,96 @@ static void bezel_changed_cb(keynode_t *key_nodes, void *data) bezel_wakeup = vconf_keynode_get_bool(key_nodes); - _I("bezel wakeup condition is %d", bezel_wakeup); + _I("Bezel wakeup condition: %d", bezel_wakeup); if (disp_plgn.pm_change_internal) disp_plgn.pm_change_internal(INTERNAL_LOCK_PM, LCD_NORMAL); device_notify(DEVICE_NOTIFIER_BEZEL_WAKEUP, (void *)((intptr_t)bezel_wakeup)); } -static void bezel_init(void *data) +static void bezel_rotary_event_cb(keynode_t *key_nodes, void *data) +{ + enum bezel_state bezel_state; + int ret; + + assert(key_nodes); + + bezel_state = (enum bezel_state) vconf_keynode_get_bool(key_nodes); + + ret = bezel_dev->set_sw_state(bezel_state); + + if (ret == 0) { + _I("Bezel rotary event condition is %d", bezel_state); + if (disp_plgn.pm_change_internal) + disp_plgn.pm_change_internal(INTERNAL_LOCK_PM, LCD_NORMAL); + } else { + _E("Failed to set bezel rotary event condition."); + } +} + +static int bezel_probe(void *data) { struct hw_info *info; - int r; + int ret; if (bezel_dev) - return; + return 0; - r = hw_get_info(BEZEL_HARDWARE_DEVICE_ID, (const struct hw_info **)&info); - if (r < 0) { - _I("bezel shared library is not supported: %d", r); - return; + ret = hw_get_info(BEZEL_HARDWARE_DEVICE_ID, (const struct hw_info **)&info); + if (ret < 0) { + _I("bezel shared library is not supported: %d", ret); + return -ENOTSUP; } if (!info->open) { _E("Fail to open bezel device : open(NULL)"); - return; + return -ENODEV; } - r = info->open(info, NULL, (struct hw_common **)&bezel_dev); - if (r < 0) { - _E("Fail to get bezel device structure: %d", r); - return; + ret = info->open(info, NULL, (struct hw_common **)&bezel_dev); + if (ret < 0) { + _E("Fail to get bezel device structure: %d", ret); + return ret; } - vconf_notify_key_changed(VCONFKEY_SETAPPL_WAKEUP_BY_BEZEL_ENABLE, - bezel_changed_cb, NULL); + return 0; +} - r = vconf_get_bool(VCONFKEY_SETAPPL_WAKEUP_BY_BEZEL_ENABLE, &bezel_wakeup); - if (r < 0) { - _E("Failed to get vconf value for wakeup by bezel enable: %d", vconf_get_ext_errno()); - bezel_wakeup = 1; +static void bezel_init(void *data) +{ + int ret; + int bezel_rotary_event; + + if (bezel_dev->get_state && bezel_dev->set_state) /* hard bezel */ + bezel_type = BEZEL_HARD; + else if (bezel_dev->get_sw_state && bezel_dev->set_sw_state) /* soft bezel */ + bezel_type = BEZEL_SOFT; + else + bezel_type == BEZEL_NOTSUP; + + if (bezel_type == BEZEL_HARD) { + vconf_notify_key_changed(VCONFKEY_SETAPPL_WAKEUP_BY_BEZEL_ENABLE, bezel_changed_cb, NULL); + + ret = vconf_get_bool(VCONFKEY_SETAPPL_WAKEUP_BY_BEZEL_ENABLE, &bezel_wakeup); + if (ret == 0) + _I("Bezel wakeup condition: %d.", bezel_wakeup); + else + _E("Failed to get vconf value for wakeup by bezel enable: %d.", vconf_get_ext_errno()); + + } else if (bezel_type == BEZEL_SOFT) { + vconf_notify_key_changed(VCONFKEY_SETAPPL_ROTARY_EVENT_ENABLED_BOOL, bezel_rotary_event_cb, NULL); + + ret = vconf_get_bool(VCONFKEY_SETAPPL_ROTARY_EVENT_ENABLED_BOOL, &bezel_rotary_event); + if (ret == 0) { + ret = bezel_dev->set_sw_state(bezel_rotary_event); + if (ret == 0) + _I("Bezel rotary event conditoin: %d.", bezel_rotary_event); + else + _E("Failed to set sw bezel state, %d.", ret); + } else { + _E("Failed to get vconf value for rotary event by bezen enabled: %d.", vconf_get_ext_errno()); + } } - - _I("bezel wakeup condition is %d", bezel_wakeup); } static void bezel_exit(void *data) @@ -102,7 +157,12 @@ static int bezel_start(enum device_flags flags) if (!bezel_dev) return 0; - return bezel_dev->set_state(BEZEL_TURNON); + if (bezel_type == BEZEL_HARD) + return bezel_dev->set_state(BEZEL_TURNON); + else if (bezel_type == BEZEL_SOFT) + return bezel_dev->set_sw_state(BEZEL_TURNON); + else + return -ENOTSUP; } static int bezel_stop(enum device_flags flags) @@ -112,10 +172,13 @@ static int bezel_stop(enum device_flags flags) if (!bezel_dev) return 0; - state = (bezel_wakeup ? BEZEL_TURNON : BEZEL_TURNOFF); - _I("set bezel state: %d", state); - - return bezel_dev->set_state(state); + if (bezel_type == BEZEL_HARD) { + state = (bezel_wakeup ? BEZEL_TURNON : BEZEL_TURNOFF); + return bezel_dev->set_state(state); + } else if (bezel_type == BEZEL_SOFT) + return bezel_dev->set_sw_state(BEZEL_TURNOFF); + else + return -ENOTSUP; } /* @@ -124,6 +187,7 @@ static int bezel_stop(enum device_flags flags) static const struct device_ops bezel_device_ops = { .priority = DEVICE_PRIORITY_HIGH, DECLARE_NAME_LEN("bezel"), + .probe = bezel_probe, .init = bezel_init, .exit = bezel_exit, .start = bezel_start, -- 2.7.4 From 86772c9739424e61ea0fde91d57f7fec58ae9055 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Tue, 25 Feb 2020 14:56:34 +0900 Subject: [PATCH 12/16] Fix build warning Change-Id: Ie04008f348ccb3c2b23fffcaeab0ec53651e7045 Signed-off-by: Youngjae Cho --- plugins/wearable/display/bezel.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/wearable/display/bezel.c b/plugins/wearable/display/bezel.c index 537fe3f..34df68b 100644 --- a/plugins/wearable/display/bezel.c +++ b/plugins/wearable/display/bezel.c @@ -110,8 +110,6 @@ static void bezel_init(void *data) bezel_type = BEZEL_HARD; else if (bezel_dev->get_sw_state && bezel_dev->set_sw_state) /* soft bezel */ bezel_type = BEZEL_SOFT; - else - bezel_type == BEZEL_NOTSUP; if (bezel_type == BEZEL_HARD) { vconf_notify_key_changed(VCONFKEY_SETAPPL_WAKEUP_BY_BEZEL_ENABLE, bezel_changed_cb, NULL); -- 2.7.4 From 61627054c53301aeb09553b878e6414d0f265fa0 Mon Sep 17 00:00:00 2001 From: INSUN PYO Date: Wed, 26 Feb 2020 12:30:53 +0900 Subject: [PATCH 13/16] Fixed to use default usb sel mode(MTP + ACM) for invalid vocnf value Deviced must never run in USB_FUNCTION_NONE mode. So if vconf value is invalid, deviced uses the default usb mode internally. Keep the problematic vconf values in order to define the problem correctly. Change-Id: Iaeda7d02accbdc3576acb173f4c60cbe38f33519 --- src/usb/usb-dbus.c | 10 ++++++++-- src/usb/usb-state.c | 31 +++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/usb/usb-dbus.c b/src/usb/usb-dbus.c index 35b2c2f..b697932 100644 --- a/src/usb/usb-dbus.c +++ b/src/usb/usb-dbus.c @@ -126,9 +126,9 @@ static void change_usb_client_mode(GDBusConnection *conn, gpointer data) { - int req_vconf = -1; int ret; - unsigned mode; + unsigned int mode; + int req_vconf = -1; g_variant_get(param, "(i)", &req_vconf); if (req_vconf < 0) { @@ -143,6 +143,12 @@ static void change_usb_client_mode(GDBusConnection *conn, return; } + /* Deviced must never run in USB_FUNCTION_NONE mode. */ + if (mode == USB_FUNCTION_NONE) { + _E("Ignore this request. There is USB_FUNCTION_NONE mode matches up with vconf %d.", req_vconf); + return; + } + ret = usb_change_mode(mode); if (ret < 0) _E("Failed to change usb mode: %d", ret); diff --git a/src/usb/usb-state.c b/src/usb/usb-state.c index 02d20fa..848b14d 100644 --- a/src/usb/usb-state.c +++ b/src/usb/usb-state.c @@ -142,6 +142,7 @@ void usb_state_retrieve_selected_mode(void) int ret; int mode_v; unsigned int mode; + const unsigned int default_mode = USB_FUNCTION_MTP | USB_FUNCTION_ACM; ret = vconf_get_int(VCONFKEY_USB_SEL_MODE, &mode_v); if (ret < 0) { @@ -151,13 +152,35 @@ void usb_state_retrieve_selected_mode(void) mode = get_mode_bitmap_from_vconf(mode_v); - if (mode != USB_FUNCTION_INVALID) { + /* + * Deviced must never run in USB_FUNCTION_NONE mode. + * So if vconf value is invalid, deviced uses the default usb mode internally. + * Keep the problematic vconf values in order to define the problem correctly. + */ + switch (mode) { + case USB_FUNCTION_INVALID: /* Invalid vconf */ + usb_selected_mode = default_mode; + _E("Failed to convert vconf to mode. There is no mode matches up with vconf %d. Use default mode=0x%x.", mode_v, default_mode); + break; + + case USB_FUNCTION_NONE: /* Invalid vconf */ + usb_selected_mode = default_mode; + _E("There is USB_FUNCTION_NONE mode matches up with vconf %d. Use default mode=0x%x.", mode_v, default_mode); + break; + + default: /* Success */ usb_selected_mode = mode; - _I("Succeeded to convert vconf to mode. vconf=%d, mode=0x%x.", mode_v, usb_selected_mode); - } else { - _E("Failed to convert vconf to mode. There is no mode matches up with vconf %d.", mode_v); + _I("Succeeded to convert vconf to mode. vconf=%d, mode=0x%x.", mode_v, mode); + break; } + /* + * Tizen has no way of having different vconf value in engineer mode and user mode. + * So, alternatively, always enable SDB in engineer mode. + * + * Expected default sel_mode value in vconf in engineer mode: 1 (MTP + ACM) + * Expected default sel_mode value in vconf in user mode: 2 (MTP + ACM + SDB) + */ #ifdef ENGINEER_MODE _I("Engineer mode. usb selected mode 0x%x, debug state %d", usb_selected_mode, get_usb_debug_state()); -- 2.7.4 From 00403690fb86873632064e731262137df2b8653a Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Tue, 25 Feb 2020 14:38:22 +0900 Subject: [PATCH 14/16] Add delay to set_brightness_level() when AOD is on When display state changes from AOD to LCDON, brightness change effect seems sluggish because of heavy load of jobs for turning on display. So delay this brightness change a bit to avoid this heavy loaded time and therefore make it change smoothly. Change-Id: Ie59e572becbb4bfc204634d5720818531d43121e Signed-off-by: Youngjae Cho --- plugins/wearable/display/display-handler.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/plugins/wearable/display/display-handler.c b/plugins/wearable/display/display-handler.c index 11226c6..354a460 100644 --- a/plugins/wearable/display/display-handler.c +++ b/plugins/wearable/display/display-handler.c @@ -40,6 +40,19 @@ enum charging_lcd_state { CHARGING_LCD_ON = 1, }; +static guint autobrt_timer; + +static gboolean display_autobrt_changed(gpointer data) +{ + + int level = (int) data; + + autobrt_timer = 0; + display_info.set_brightness_level(level); + + return G_SOURCE_REMOVE; +} + static GVariant *dbus_autobrightnesschanged(GDBusConnection *conn, const gchar *sender, const gchar *path, const gchar *iface, const gchar *name, GVariant *param, GDBusMethodInvocation *invocation, gpointer user_data) @@ -49,10 +62,18 @@ static GVariant *dbus_autobrightnesschanged(GDBusConnection *conn, g_variant_get(param, "(i)", &level); - if (display_info.set_brightness_level) - display_info.set_brightness_level(level); - else + if (display_info.set_brightness_level) { + if (autobrt_timer) + g_source_remove(autobrt_timer); + + /* When display state changes from AOD to LCDON, brightness change + * effect seems sluggish because of heavy load of jobs for turning on + * display. So delay this brightness change a bit to avoid this + * heavy loaded time and therefore make it change smoothly. */ + autobrt_timer = g_timeout_add(200, display_autobrt_changed, (gpointer)level); + } else { ret = -ENOTSUP; + } return g_variant_new("(i)", ret); } -- 2.7.4 From 42089f72286a54fd77619914a7cd8973845f9d05 Mon Sep 17 00:00:00 2001 From: INSUN PYO Date: Wed, 26 Feb 2020 14:38:25 +0900 Subject: [PATCH 15/16] Refactoring usb_state_update_state Since these four functions are handled in one function, they must be separated. 1. add and remove usb state notification handler 2. change usb connection state 3. send usb state changed event: event, vconf, dbus signal 4. change usb current mode Change-Id: I202a069f36b7feb5a7c0db38e2d2e15f805802aa --- src/usb/usb-state.c | 110 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 67 insertions(+), 43 deletions(-) diff --git a/src/usb/usb-state.c b/src/usb/usb-state.c index 848b14d..21b6ba3 100644 --- a/src/usb/usb-state.c +++ b/src/usb/usb-state.c @@ -127,16 +127,6 @@ static void usb_state_send_system_event(int status) bundle_free(b); } -static void usb_state_set_connection(extcon_usb_state_e conn) -{ - usb_connection = conn; -} - -extcon_usb_state_e usb_state_get_connection(void) -{ - return usb_connection; -} - void usb_state_retrieve_selected_mode(void) { int ret; @@ -198,6 +188,7 @@ unsigned int usb_state_get_selected_mode(void) return usb_selected_mode; } +/* Since it is changed externally by dbus and vconf, it should be processed even if it has the same value as before. */ int usb_state_set_selected_mode(unsigned int mode) { int ret; @@ -224,6 +215,7 @@ unsigned int usb_state_get_current_mode(void) return usb_current_mode; } +/* Because it is only changed by deviced, it is only processed when the vconf actually changes. */ int usb_state_set_current_mode(unsigned int mode) { int ret = 0; @@ -248,6 +240,17 @@ int usb_state_set_current_mode(unsigned int mode) return ret; } +extcon_usb_state_e usb_state_get_connection(void) +{ + return usb_connection; +} + +static void usb_state_set_connection(extcon_usb_state_e conn) +{ + usb_connection = conn; +} + + #if 0 char *usb_state_get_mode_str(unsigned int mode, char *str, size_t len) { @@ -301,33 +304,44 @@ out: g_variant_unref(var); } -void usb_state_update_state(extcon_usb_state_e state, unsigned int mode) +static void add_notification_handler(void) { int ret; - int status; - static int old_mode = -1; - static int old_status = -1; /* VCONFKEY_SYSMAN_USB_STATUS */ - if (state == USB_DISCONNECTED && mode != USB_FUNCTION_NONE) - mode = USB_FUNCTION_NONE; + if (noti_id < 0) { + ret = add_async_notification("MediaDeviceNotiOn", media_noti_cb, NULL, NULL); + if (ret < 0) + _E("Failed to show notification for usb connection."); + } +} - if (mode == USB_FUNCTION_NONE) { - if (noti_id >= 0) { - int ret = remove_notification("MediaDeviceNotiOff", noti_id); - if (ret < 0) - _E("Failed to remove event_noti: %d", ret); - else - noti_id = -1; - } - } else if (mode & USB_FUNCTION_MTP) { - if (noti_id < 0) { - ret = add_async_notification("MediaDeviceNotiOn", media_noti_cb, NULL, NULL); - if (ret < 0) - _E("Failed to show notification for usb connection."); - } +static void remove_notification_handler(void) +{ + int ret; + + if (noti_id >= 0) { + ret = remove_notification("MediaDeviceNotiOff", noti_id); + if (ret < 0) + _E("Failed to remove event_noti: %d", ret); + else + noti_id = -1; } +} + +static void change_usb_state_notification_handler(unsigned int mode) +{ + if (mode & USB_FUNCTION_MTP) + add_notification_handler(); + else if (mode == USB_FUNCTION_NONE) + remove_notification_handler(); +} + +static void send_usb_state_changed_event(extcon_usb_state_e state, unsigned int mode) +{ + int ret; + int status; + static int old_status = -1; - usb_state_set_connection(state); if (state == USB_CONNECTED) { if (mode == USB_FUNCTION_NONE) status = VCONFKEY_SYSMAN_USB_CONNECTED; @@ -336,17 +350,27 @@ void usb_state_update_state(extcon_usb_state_e state, unsigned int mode) } else status = VCONFKEY_SYSMAN_USB_DISCONNECTED; - if (old_status != status) { - usb_state_send_system_event(status); - ret = vconf_set_int(VCONFKEY_SYSMAN_USB_STATUS, status); - if (ret < 0) - _E("Failed to set vconf value for usb status: %d", vconf_get_ext_errno()); - broadcast_usb_state_changed(); - old_status = status; - } + if (old_status == status) + return; - if (old_mode != mode) { - (void)usb_state_set_current_mode(mode); - old_mode = mode; - } + old_status = status; + + usb_state_send_system_event(status); + + ret = vconf_set_int(VCONFKEY_SYSMAN_USB_STATUS, status); + if (ret < 0) + _E("Failed to set vconf value for usb status: %d", vconf_get_ext_errno()); + + broadcast_usb_state_changed(); +} + +void usb_state_update_state(extcon_usb_state_e state, unsigned int mode) +{ + change_usb_state_notification_handler(mode); + + usb_state_set_connection(state); + + send_usb_state_changed_event(state, mode); + + (void)usb_state_set_current_mode(mode); } -- 2.7.4 From 8d24bc37a4e485e72493b54c0c562f1cf5b60ee0 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Wed, 26 Feb 2020 13:45:44 +0900 Subject: [PATCH 16/16] Fix wearable_mode() related code according to profile Leave one of 'if' or 'else' statement related to wearable_mode() according to profile. Change-Id: I378ce12d334444dcfc4643dafb256eca4abc16cb Signed-off-by: Youngjae Cho --- plugins/iot/display/key-filter.c | 52 +------------------------- plugins/mobile/display/key-filter.c | 32 +++++++--------- plugins/tv/display/key-filter.c | 52 +------------------------- plugins/wearable/display/key-filter.c | 69 +---------------------------------- src/shared/common.h | 6 --- 5 files changed, 16 insertions(+), 195 deletions(-) diff --git a/plugins/iot/display/key-filter.c b/plugins/iot/display/key-filter.c index 71ee649..5e77658 100644 --- a/plugins/iot/display/key-filter.c +++ b/plugins/iot/display/key-filter.c @@ -409,37 +409,6 @@ static int lcdoff_powerkey(void) return ignore; } -static bool key_check_display_on(void) -{ - if (current_state_in_on()) - return false; - - if (backlight_ops.get_lcd_power() == DPMS_ON) { - _W("display power was on"); - return false; - } - - return true; -} - -static gboolean display_on_cb(void *data) -{ - if (displayon_by_powerkey_timeout_id == 0) - return G_SOURCE_REMOVE; - - displayon_by_powerkey_timeout_id = 0; - if (backlight_ops.get_lcd_power() != DPMS_ON || - current_state_in_on() == false) { - broadcast_lcdon_by_powerkey(); - lcd_on_direct(LCD_ON_BY_POWER_KEY); - - if (pm_callback) - (*pm_callback) (INPUT_POLL_EVENT, NULL); - } - - return G_SOURCE_REMOVE; -} - static int process_back_key(struct input_event *pinput) { int ignore = true; @@ -489,24 +458,7 @@ static int process_power_key(struct input_event *pinput) break; case KEY_PRESSED: if (display_has_caps(caps, DISPLAY_CAPA_LCDON)) { - if (wearable_mode()) - skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY); - else { - /* - * LCD does not turn on immediately at mobile. - * It will be turned on after 0.1 second because of torch concept. - */ - skip_lcd_off = key_check_display_on(); - ignore = true; - - if (!displayon_by_powerkey_timeout_id && - backlight_ops.get_lcd_power() != DPMS_ON && - key_combination != COMBINATION_TORCH) { - displayon_by_powerkey_timeout_id = g_timeout_add( - 100, - display_on_cb, NULL); - } - } + skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY); } else { _D("No lcdon capability!"); skip_lcd_off = false; @@ -581,12 +533,10 @@ static void process_hardkey_backlight(struct input_event *pinput) _E("pinput->value : %d", pinput->value); if (pinput->value == KEY_PRESSED) { - if (!wearable_mode()) { /* Sound & Vibrate only in unlock state */ if (__get_lock_screen_state() == VCONFKEY_IDLE_UNLOCK || get_lock_screen_bg_state()) sound_vibrate_hardkey(); - } if (touchled && touchled->execute) { opt = TOUCHLED_PRESS; diff --git a/plugins/mobile/display/key-filter.c b/plugins/mobile/display/key-filter.c index 0da1315..ca7930f 100644 --- a/plugins/mobile/display/key-filter.c +++ b/plugins/mobile/display/key-filter.c @@ -478,23 +478,19 @@ static int process_power_key(struct input_event *pinput) break; case KEY_PRESSED: if (display_has_caps(caps, DISPLAY_CAPA_LCDON)) { - if (wearable_mode()) - skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY); - else { - /* - * LCD does not turn on immediately at mobile. - * It will be turned on after 0.1 second because of torch concept. - */ - skip_lcd_off = key_check_display_on(); - ignore = true; - - if (!displayon_by_powerkey_timeout_id && - backlight_ops.get_lcd_power() != DPMS_ON && - key_combination != COMBINATION_TORCH) { - displayon_by_powerkey_timeout_id = g_timeout_add( - 100, - display_on_cb, NULL); - } + /* + * LCD does not turn on immediately at mobile. + * It will be turned on after 0.1 second because of torch concept. + */ + skip_lcd_off = key_check_display_on(); + ignore = true; + + if (!displayon_by_powerkey_timeout_id && + backlight_ops.get_lcd_power() != DPMS_ON && + key_combination != COMBINATION_TORCH) { + displayon_by_powerkey_timeout_id = g_timeout_add( + 100, + display_on_cb, NULL); } } else { _D("No lcdon capability!"); @@ -570,12 +566,10 @@ static void process_hardkey_backlight(struct input_event *pinput) _E("pinput->value : %d", pinput->value); if (pinput->value == KEY_PRESSED) { - if (!wearable_mode()) { /* Sound & Vibrate only in unlock state */ if (__get_lock_screen_state() == VCONFKEY_IDLE_UNLOCK || get_lock_screen_bg_state()) sound_vibrate_hardkey(); - } if (touchled && touchled->execute) { opt = TOUCHLED_PRESS; diff --git a/plugins/tv/display/key-filter.c b/plugins/tv/display/key-filter.c index d67d3a6..90c0f05 100644 --- a/plugins/tv/display/key-filter.c +++ b/plugins/tv/display/key-filter.c @@ -409,37 +409,6 @@ static int lcdoff_powerkey(void) return ignore; } -static bool key_check_display_on(void) -{ - if (current_state_in_on()) - return false; - - if (backlight_ops.get_lcd_power() == DPMS_ON) { - _W("display power was on"); - return false; - } - - return true; -} - -static gboolean display_on_cb(void *data) -{ - if (displayon_by_powerkey_timeout_id == 0) - return G_SOURCE_REMOVE; - - displayon_by_powerkey_timeout_id = 0; - if (backlight_ops.get_lcd_power() != DPMS_ON || - current_state_in_on() == false) { - broadcast_lcdon_by_powerkey(); - lcd_on_direct(LCD_ON_BY_POWER_KEY); - - if (pm_callback) - (*pm_callback) (INPUT_POLL_EVENT, NULL); - } - - return G_SOURCE_REMOVE; -} - static int process_back_key(struct input_event *pinput) { int ignore = true; @@ -489,24 +458,7 @@ static int process_power_key(struct input_event *pinput) break; case KEY_PRESSED: if (display_has_caps(caps, DISPLAY_CAPA_LCDON)) { - if (wearable_mode()) - skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY); - else { - /* - * LCD does not turn on immediately at mobile. - * It will be turned on after 0.1 second because of torch concept. - */ - skip_lcd_off = key_check_display_on(); - ignore = true; - - if (!displayon_by_powerkey_timeout_id && - backlight_ops.get_lcd_power() != DPMS_ON && - key_combination != COMBINATION_TORCH) { - displayon_by_powerkey_timeout_id = g_timeout_add( - 100, - display_on_cb, NULL); - } - } + skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY); } else { _D("No lcdon capability!"); skip_lcd_off = false; @@ -581,12 +533,10 @@ static void process_hardkey_backlight(struct input_event *pinput) _E("pinput->value : %d", pinput->value); if (pinput->value == KEY_PRESSED) { - if (!wearable_mode()) { /* Sound & Vibrate only in unlock state */ if (__get_lock_screen_state() == VCONFKEY_IDLE_UNLOCK || get_lock_screen_bg_state()) sound_vibrate_hardkey(); - } if (touchled && touchled->execute) { opt = TOUCHLED_PRESS; diff --git a/plugins/wearable/display/key-filter.c b/plugins/wearable/display/key-filter.c index 920674d..891dadb 100644 --- a/plugins/wearable/display/key-filter.c +++ b/plugins/wearable/display/key-filter.c @@ -398,37 +398,6 @@ static int lcdoff_powerkey(void) return ignore; } -static bool key_check_display_on(void) -{ - if (current_state_in_on()) - return false; - - if (backlight_ops.get_lcd_power() == DPMS_ON) { - _W("display power was on"); - return false; - } - - return true; -} - -static gboolean display_on_cb(void *data) -{ - if (displayon_by_powerkey_timeout_id == 0) - return G_SOURCE_REMOVE; - - displayon_by_powerkey_timeout_id = 0; - if (backlight_ops.get_lcd_power() != DPMS_ON || - current_state_in_on() == false) { - broadcast_lcdon_by_powerkey(); - lcd_on_direct(LCD_ON_BY_POWER_KEY); - - if (pm_callback) - (*pm_callback) (INPUT_POLL_EVENT, NULL); - } - - return G_SOURCE_REMOVE; -} - static int process_back_key(struct input_event *pinput) { int ignore = true; @@ -478,24 +447,7 @@ static int process_power_key(struct input_event *pinput) break; case KEY_PRESSED: if (display_has_caps(caps, DISPLAY_CAPA_LCDON)) { - if (wearable_mode()) - skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY); - else { - /* - * LCD does not turn on immediately at mobile. - * It will be turned on after 0.1 second because of torch concept. - */ - skip_lcd_off = key_check_display_on(); - ignore = true; - - if (!displayon_by_powerkey_timeout_id && - backlight_ops.get_lcd_power() != DPMS_ON && - key_combination != COMBINATION_TORCH) { - displayon_by_powerkey_timeout_id = g_timeout_add( - 100, - display_on_cb, NULL); - } - } + skip_lcd_off = switch_on_lcd(LCD_ON_BY_POWER_KEY); } else { _D("No lcdon capability!"); skip_lcd_off = false; @@ -552,31 +504,12 @@ static int process_screenlock_key(struct input_event *pinput) return true; } -static void sound_vibrate_hardkey(void) -{ - /* device notify(vibrator) */ - /* sound(dbus) */ - /* Need to notify to deviced-vibrator. deviced-vibrator receives ChangedHardKey signal */ - dbus_handle_emit_dbus_signal(NULL, - DEVICED_PATH_KEY, - DEVICED_INTERFACE_KEY, - SIGNAL_CHANGE_HARDKEY, - NULL); -} - static void process_hardkey_backlight(struct input_event *pinput) { int opt; _E("pinput->value : %d", pinput->value); if (pinput->value == KEY_PRESSED) { - if (!wearable_mode()) { - /* Sound & Vibrate only in unlock state */ - if (__get_lock_screen_state() == VCONFKEY_IDLE_UNLOCK - || get_lock_screen_bg_state()) - sound_vibrate_hardkey(); - } - if (touchled && touchled->execute) { opt = TOUCHLED_PRESS; touchled->execute(&opt); diff --git a/src/shared/common.h b/src/shared/common.h index f505204..5a3ef23 100644 --- a/src/shared/common.h +++ b/src/shared/common.h @@ -26,12 +26,6 @@ extern "C" { #endif -#ifdef MICRO_DD -#define wearable_mode() 1 -#else -#define wearable_mode() 0 -#endif - #ifndef API #define API __attribute__ ((visibility("default"))) #endif -- 2.7.4