Add display_get_state to get lcd state 54/210054/1 accepted/tizen/unified/20190716.111215 submit/tizen/20190716.052128
authorlokilee73 <changjoo.lee@samsung.com>
Mon, 15 Jul 2019 08:55:17 +0000 (17:55 +0900)
committerlokilee73 <changjoo.lee@samsung.com>
Mon, 15 Jul 2019 08:55:32 +0000 (17:55 +0900)
Change-Id: I105931b402d864fff36050640a20fa86076591ab
Signed-off-by: lokilee73 <changjoo.lee@samsung.com>
hw/display/display.c

index 71e7260837bd26bf71ef5c850ff6b43b5255ca69..2398fffa356f434018a69b0cd4e4aee4a2acc083 100644 (file)
 #define BACKLIGHT_PATH  "/sys/class/backlight/emulator"
 #endif
 
+#ifndef LCD_PATH
+#define LCD_PATH  "/sys/class/lcd/emulator"
+#endif
+
 static int display_get_max_brightness(int *val)
 {
        static int max = -1;
@@ -91,6 +95,32 @@ static int display_set_brightness(int brightness)
        return 0;
 }
 
+static int display_get_state(enum display_state *state)
+{
+       int r, v;
+
+       r = sys_get_int(LCD_PATH"/lcd_power", &v);
+       if (r < 0) {
+               _E("fail to get state (errno:%d)", r);
+               return r;
+       }
+
+       //remap LCD state
+       switch (v) {
+       case 0:
+               *state = DISPLAY_ON;
+               break;
+       case 4:
+               *state = DISPLAY_OFF;
+               break;
+       default:
+               *state = -EINVAL;
+               break;
+       }
+
+       return 0;
+}
+
 static int display_open(struct hw_info *info,
                const char *id, struct hw_common **common)
 {
@@ -107,6 +137,7 @@ static int display_open(struct hw_info *info,
        display_dev->get_max_brightness = display_get_max_brightness;
        display_dev->get_brightness = display_get_brightness;
        display_dev->set_brightness = display_set_brightness;
+       display_dev->get_state = display_get_state;
 
        *common = (struct hw_common *)display_dev;
        return 0;