power: Get panel backlight brightness from lights helper
authorChristopher N. Hesse <raymanfx@gmail.com>
Wed, 7 Dec 2016 11:18:20 +0000 (12:18 +0100)
committerChristopher N. Hesse <raymanfx@gmail.com>
Mon, 30 Jan 2017 22:04:20 +0000 (22:04 +0000)
Change-Id: I3f28fc4abac947cc4a30d95ba74f45bf24c12c20

power/Android.mk
power/power.c

index 92ffe61607d6af4785c28fdd69c72ab252485c6a..53f60b4ef9b2411fb265bcb9cd7a1c92aad0c270 100644 (file)
@@ -23,6 +23,7 @@ LOCAL_SRC_FILES := power.c
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 
 LOCAL_SHARED_LIBRARIES := liblog libcutils
+LOCAL_STATIC_LIBRARIES := liblights_helper
 
 LOCAL_MODULE := power.$(TARGET_BOOTLOADER_BOARD_NAME)
 LOCAL_MODULE_RELATIVE_PATH := hw
index beb27dac2dd57c9933e4ccfc7dd366f0f02535b0..6a24a8eb6648761faa5002eaa24a4e9c1e4d6122 100644 (file)
 
 #include <hardware/hardware.h>
 #include <hardware/power.h>
+#include <liblights/samsung_lights_helper.h>
 
 #include "samsung_power.h"
 
-#define PANEL_BRIGHTNESS "/sys/class/backlight/panel/brightness"
-
 struct samsung_power_module {
     struct power_module base;
     pthread_mutex_t lock;
@@ -118,27 +117,6 @@ static void sysfs_write(const char *path, char *s)
     close(fd);
 }
 
-static int read_panel_brightness() {
-    int ret = 0;
-    int read_status;
-    // brightness can range from 0 to 255, so max. 3 chars + '\0'
-    char panel_brightness[4];
-    // for strtol
-    char *dummy;
-    const int base = 10;
-
-    read_status = sysfs_read(PANEL_BRIGHTNESS, panel_brightness, sizeof(PANEL_BRIGHTNESS));
-    if (read_status < 0) {
-        ALOGE("%s: Failed to read panel brightness from %s!\n", __func__, PANEL_BRIGHTNESS);
-        return -1;
-    }
-
-    ret = strtol(panel_brightness, &dummy, base);
-    ALOGV("%s: Panel brightness is: %d", __func__, ret);
-
-    return ret;
-}
-
 /**********************************************************
  *** POWER FUNCTIONS
  **********************************************************/
@@ -360,9 +338,10 @@ static void samsung_power_set_interactive(struct power_module *module, int on)
 
     ALOGV("power_set_interactive: %d\n", on);
 
+    // Get panel backlight brightness from lights HAL
     // Do not disable any input devices if the screen is on but we are in a non-interactive state
     if (!on) {
-        if (read_panel_brightness() > 0) {
+        if (get_cur_panel_brightness() > 0) {
             ALOGV("%s: Moving to non-interactive state, but screen is still on,"
                   " not disabling input devices\n", __func__);
             goto out;