diff options
| author | LuK1337 <priv.luk@gmail.com> | 2016-03-16 13:25:46 +0100 |
|---|---|---|
| committer | LuK1337 <priv.luk@gmail.com> | 2016-03-16 15:53:43 +0100 |
| commit | db662fadb9f07bd74067a0403f3e30aeb1dc75e5 (patch) | |
| tree | 4548d11ed45b377e315d58a4411cf4674a1745c1 /liblight | |
| parent | 33307a3f54e87d184657adf59573fa5a0daaa24d (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.c | 20 |
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; |
