Fix how to determine HW/SW bezel 77/236777/1
authorYoungjae Cho <y0.cho@samsung.com>
Mon, 22 Jun 2020 02:12:32 +0000 (11:12 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Mon, 22 Jun 2020 05:20:33 +0000 (05:20 +0000)
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 <y0.cho@samsung.com>
(cherry picked from commit dedebfceef94e0cac2ffe9998c4744e78bde9176)

plugins/wearable/display/bezel.c

index 9d9eb3c..768e1c6 100644 (file)
@@ -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);