aboutsummaryrefslogtreecommitdiff
path: root/liblight
diff options
context:
space:
mode:
authorLuK1337 <priv.luk@gmail.com>2016-03-16 13:25:46 +0100
committerLuK1337 <priv.luk@gmail.com>2016-03-16 15:53:43 +0100
commitdb662fadb9f07bd74067a0403f3e30aeb1dc75e5 (patch)
tree4548d11ed45b377e315d58a4411cf4674a1745c1 /liblight
parent33307a3f54e87d184657adf59573fa5a0daaa24d (diff)
msm8916-common: liblight: Fix up state detection
* Fixes up 'always on' for notification and blinking for battery. Change-Id: I977952f5b3085069bf2d87d713270038361f6ada
Diffstat (limited to 'liblight')
-rw-r--r--liblight/lights.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/liblight/lights.c b/liblight/lights.c
index 2400f26..19f42b7 100644
--- a/liblight/lights.c
+++ b/liblight/lights.c
@@ -53,6 +53,8 @@ char const*const RED_LED_FILE
char const*const GREEN_PWM_FILE
= "/sys/class/leds/green/pwm_us";
+char const*const RED_PWM_FILE
+ = "/sys/class/leds/red/pwm_us";
/**
* device methods
*/
@@ -139,6 +141,7 @@ set_light_locked(struct light_state_t const* state)
int onMS, offMS;
int blink, fake_pwm, pwm;
int brightness_level;
+ int is_battery = 0;
switch (state->flashMode) {
case LIGHT_FLASH_TIMED:
@@ -178,16 +181,21 @@ set_light_locked(struct light_state_t const* state)
else
brightness_level = LED_LIGHT_OFF;
+ if (state == &g_lights[BATTERY])
+ is_battery = 1;
+
+ // turn led off
+ write_int(GREEN_LED_FILE, LED_LIGHT_OFF);
+ write_int(RED_LED_FILE, LED_LIGHT_OFF);
+
if (blink) {
- write_int(RED_LED_FILE, LED_LIGHT_OFF);
// brightness equals to led on in ms
- write_int(GREEN_LED_FILE, fake_pwm);
+ write_int(is_battery == 0 ? GREEN_LED_FILE : RED_LED_FILE, fake_pwm);
// pwn uquals to led off in us
- write_int(GREEN_PWM_FILE, pwm);
+ write_int(is_battery == 0 ? GREEN_PWM_FILE : RED_PWM_FILE, pwm);
} else {
- write_int(GREEN_LED_FILE, LED_LIGHT_OFF);
- write_int(GREEN_PWM_FILE, 100);
- write_int(RED_LED_FILE, brightness_level);
+ write_int(is_battery == 0 ? GREEN_LED_FILE : RED_LED_FILE, brightness_level);
+ write_int(is_battery == 0 ? GREEN_PWM_FILE : RED_PWM_FILE, 100);
}
return 0;