summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominggoes Isakh <drjisakh@gmail.com>2017-05-26 23:43:49 +0200
committerDominggoes Isakh <drjisakh@gmail.com>2017-06-15 22:17:47 +0200
commitdf15802d15796cd3439af80b010cfab60a66d1b5 (patch)
tree885b2123f5c8b1fac0454654a2dfbdc4329ed7d7
parentab9abf68b71b62d930170f229455ce9cb9a9151b (diff)
downloadandroid_hardware_samsung-df15802d15796cd3439af80b010cfab60a66d1b5.tar.gz
android_hardware_samsung-df15802d15796cd3439af80b010cfab60a66d1b5.tar.bz2
android_hardware_samsung-df15802d15796cd3439af80b010cfab60a66d1b5.zip
liblights: Add BLN support
Change-Id: I3745b7c4ca7adadd62e116c71cd7357a4e8ed015
-rw-r--r--liblights/include/samsung_lights.h1
-rw-r--r--liblights/lights.c24
2 files changed, 25 insertions, 0 deletions
diff --git a/liblights/include/samsung_lights.h b/liblights/include/samsung_lights.h
index fce1308..b866a4e 100644
--- a/liblights/include/samsung_lights.h
+++ b/liblights/include/samsung_lights.h
@@ -29,6 +29,7 @@
#define PANEL_MAX_BRIGHTNESS_NODE "/sys/class/backlight/panel/max_brightness"
#define BUTTON_BRIGHTNESS_NODE "/sys/class/sec/sec_touchkey/brightness"
#define LED_BLINK_NODE "/sys/class/sec/led/led_blink"
+#define LED_BLN_NODE "/sys/class/misc/backlightnotification/notification_led"
// Uncomment to enable variable button brightness
//#define VAR_BUTTON_BRIGHTNESS 1
diff --git a/liblights/lights.c b/liblights/lights.c
index ad6edc6..27be248 100644
--- a/liblights/lights.c
+++ b/liblights/lights.c
@@ -43,6 +43,7 @@ enum component_mask_t {
COMPONENT_BACKLIGHT = 0x1,
COMPONENT_BUTTON_LIGHT = 0x2,
COMPONENT_LED = 0x4,
+ COMPONENT_BLN = 0x8,
};
enum light_t {
@@ -76,6 +77,10 @@ void check_component_support()
hw_components |= COMPONENT_BUTTON_LIGHT;
if (access(LED_BLINK_NODE, W_OK) == 0)
hw_components |= COMPONENT_LED;
+#ifdef LED_BLN_NODE
+ if (access(LED_BLN_NODE, W_OK) == 0)
+ hw_components |= COMPONENT_BLN;
+#endif
}
void init_g_lock(void)
@@ -293,6 +298,19 @@ switched:
return err;
}
+#ifdef LED_BLN_NODE
+static int set_light_bln_notifications(struct light_device_t *dev __unused,
+ struct light_state_t const *state)
+{
+ int err = 0;
+
+ pthread_mutex_lock(&g_lock);
+ err = write_str(LED_BLN_NODE, state->color & COLOR_MASK ? "1" : "0");
+ pthread_mutex_unlock(&g_lock);
+
+ return err;
+}
+#endif
static int set_light_leds_battery(struct light_device_t *dev __unused,
struct light_state_t const *state)
{
@@ -352,6 +370,12 @@ static int open_lights(const struct hw_module_t *module, char const *name,
} else if (0 == strcmp(LIGHT_ID_NOTIFICATIONS, name)) {
requested_component = COMPONENT_LED;
set_light = set_light_leds_notifications;
+#ifdef LED_BLN_NODE
+ if (hw_components & COMPONENT_BLN) {
+ requested_component = COMPONENT_BLN;
+ set_light = set_light_bln_notifications;
+ }
+#endif
} else if (0 == strcmp(LIGHT_ID_ATTENTION, name)) {
requested_component = COMPONENT_LED;
set_light = set_light_leds_attention;