From 536c5a920d8836c408542b2b3d4be42011756d8f Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Mon, 22 Jun 2020 11:12:32 +0900 Subject: [PATCH] Fix how to determine HW/SW bezel HW/SW bezel cannot be distinguished each other by checking existance of get_state/get_sw_state function, as those are defined for all target. Fixed it to call the function and check the return value. Change-Id: I1a296c9682e5dcf3e0393f804f532283406a7007 Signed-off-by: Youngjae Cho (cherry picked from commit dedebfceef94e0cac2ffe9998c4744e78bde9176) --- plugins/wearable/display/bezel.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/wearable/display/bezel.c b/plugins/wearable/display/bezel.c index 9d9eb3c..768e1c6 100644 --- a/plugins/wearable/display/bezel.c +++ b/plugins/wearable/display/bezel.c @@ -140,14 +140,22 @@ static void bezel_init(void *data) { int ret; int bezel_rotary_event; + enum bezel_state init_bezel_state; if (!bezel_dev) return; - if (bezel_dev->get_state && bezel_dev->set_state) /* hard bezel */ + if (bezel_dev->get_state && bezel_dev->get_state(&init_bezel_state) == 0) { + CRITICAL_LOG("Init HW bezel, state: %d", init_bezel_state); bezel_type = BEZEL_HARD; - else if (bezel_dev->get_sw_state && bezel_dev->set_sw_state) /* soft bezel */ + } else if (bezel_dev->get_sw_state && bezel_dev->get_sw_state(&init_bezel_state) == 0) { + CRITICAL_LOG("Init SW bezel, state: %d", init_bezel_state); bezel_type = BEZEL_SOFT; + } else { + CRITICAL_LOG("Failed to init bezel."); + return; + } + if (bezel_type == BEZEL_HARD) { vconf_notify_key_changed(VCONFKEY_SETAPPL_WAKEUP_BY_BEZEL_ENABLE, bezel_changed_cb, NULL); -- 2.7.4