Add display HAL for image effect
authorlokilee73 <changjoo.lee@samsung.com>
Fri, 5 Apr 2019 07:24:59 +0000 (16:24 +0900)
committerlokilee73 <changjoo.lee@samsung.com>
Tue, 9 Apr 2019 05:16:52 +0000 (14:16 +0900)
Change-Id: I79f9d661a031614e4f3f81a7034991f37513b442
Signed-off-by: lokilee73 <changjoo.lee@samsung.com>
hw/display/display.c

index 0125bb3..2992a0b 100644 (file)
@@ -36,6 +36,8 @@
 #define TW3_LCD_PATH  "/sys/class/lcd/s6e36w3x01"
 #endif
 
+#define IMAGE_EFFECT_PATH      "/sys/class/extension/mdnie/scenario"
+
 static int display_get_max_brightness(int *val)
 {
        static int max = -1;
@@ -139,6 +141,52 @@ out:
        return 0;
 }
 
+static int display_get_image_effect(enum display_image_effect *effect)
+{
+       int r, v;
+
+       if (!effect) {
+               _E("Wrong parameter");
+               return -EINVAL;
+       }
+
+       r = sys_get_int(IMAGE_EFFECT_PATH, &v);
+       if (r < 0) {
+               _E("Failed to get  image_effect (errno:%d)", r);
+               return r;
+       }
+
+       *effect = v;
+       return 0;
+}
+
+static int display_set_image_effect(enum display_image_effect effect)
+{
+       int r, value;
+
+       if (effect >= DISPLAY_IMAGE_EFFECT_MAX) {
+               _E("Wrong parameter");
+               return -EINVAL;
+       }
+
+       if (effect == DISPLAY_IMAGE_EFFECT_NEGATIVE)
+               value = 6;
+       else if (effect == DISPLAY_IMAGE_EFFECT_GREY)
+               value = 9;
+       else if (effect == DISPLAY_IMAGE_EFFECT_GREY_NEGATIVE)
+               value = 11;
+       else
+               value = 0;
+
+       r = sys_set_int(IMAGE_EFFECT_PATH, value);
+       if (r < 0) {
+               _E("Failed to get  image_effect (errno:%d)", r);
+               return r;
+       }
+
+       return 0;
+}
+
 static int display_open(struct hw_info *info,
                const char *id, struct hw_common **common)
 {
@@ -156,6 +204,8 @@ static int display_open(struct hw_info *info,
        display_dev->get_brightness = display_get_brightness;
        display_dev->set_brightness = display_set_brightness;
        display_dev->get_state = display_get_state;
+       display_dev->get_image_effect = display_get_image_effect;
+       display_dev->set_image_effect = display_set_image_effect;
 
        *common = (struct hw_common *)display_dev;
        return 0;