From 4c88bee69d0ccca502c6de8c0c536fa096e597c0 Mon Sep 17 00:00:00 2001 From: Sam Mortimer Date: Sun, 1 Jul 2012 22:46:59 -0700 Subject: [PATCH] exynos4212 liblights: fix keypad lighting up when screen backlight auto-adjusts clone of http://review.cyanogenmod.com/#/c/18372/ becomes relevant when these are applied: smdk4210 kernel: cypress touchkey led_timeout functionality (1/2) http://review.cyanogenmod.com/#/c/18357/ galaxys2/i777: configurable touchkey backlight timeout (2/2) http://review.cyanogenmod.com/#/c/18431/ Change-Id: I3d4df6574cdd3c6317199a884ef7ac72cb4c71a3 --- exynos4/exynos4210/liblights/lights.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/exynos4/exynos4210/liblights/lights.c b/exynos4/exynos4210/liblights/lights.c index c328f8bb..6498edaf 100644 --- a/exynos4/exynos4210/liblights/lights.c +++ b/exynos4/exynos4210/liblights/lights.c @@ -231,17 +231,18 @@ static int set_light_backlight(struct light_device_t* dev, struct light_state_t const* state) { - load_settings(); - int err = 0; + static int s_previous_brightness = -1; int brightness = rgb_to_brightness(state); pthread_mutex_lock(&g_lock); err = write_int(PANEL_FILE, brightness); #ifndef EXYNOS4210_TABLET - if (g_enable_touchlight == -1 || g_enable_touchlight > 0) - err = write_int(BUTTON_FILE, brightness > 0 ? 1 : 0); + if (!s_previous_brightness && (brightness > 0)) { + err = write_int(BUTTON_FILE, brightness > 0 ? 1 : 2); + s_previous_brightness = brightness; + } #endif pthread_mutex_unlock(&g_lock);