diff options
-rw-r--r-- | common/keyboard_backlight.c | 8 | ||||
-rw-r--r-- | common/pwm_kblight.c | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/common/keyboard_backlight.c b/common/keyboard_backlight.c index c0c46e5299..694ac77446 100644 --- a/common/keyboard_backlight.c +++ b/common/keyboard_backlight.c @@ -91,7 +91,7 @@ DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, kblight_suspend, HOOK_PRIO_DEFAULT); static void kblight_resume(void) { - if (lid_is_open()) { + if (lid_is_open() && current_percent) { kblight_enable(1); kblight_set(current_percent); } @@ -100,7 +100,7 @@ DECLARE_HOOK(HOOK_CHIPSET_RESUME, kblight_resume, HOOK_PRIO_DEFAULT); static void kblight_lid_change(void) { - kblight_enable(lid_is_open()); + kblight_enable(lid_is_open() && current_percent); } DECLARE_HOOK(HOOK_LID_CHANGE, kblight_lid_change, HOOK_PRIO_DEFAULT); @@ -116,6 +116,8 @@ static int cc_kblight(int argc, char **argv) return EC_ERROR_PARAM1; if (kblight_set(i)) return EC_ERROR_PARAM1; + if (kblight_enable(i > 0)) + return EC_ERROR_PARAM1; } ccprintf("Keyboard backlight: %d%%\n", kblight_get()); return EC_SUCCESS; @@ -144,6 +146,8 @@ enum ec_status hc_set_keyboard_backlight(struct host_cmd_handler_args *args) if (kblight_set(p->percent)) return EC_RES_ERROR; + if (kblight_enable(p->percent > 0)) + return EC_RES_ERROR; return EC_RES_SUCCESS; } DECLARE_HOST_COMMAND(EC_CMD_PWM_SET_KEYBOARD_BACKLIGHT, diff --git a/common/pwm_kblight.c b/common/pwm_kblight.c index c6464b7011..4967d36df5 100644 --- a/common/pwm_kblight.c +++ b/common/pwm_kblight.c @@ -28,7 +28,7 @@ static int kblight_pwm_init(void) { /* dnojiri: Why do we need save/restore setting over sysjump? */ kblight_pwm_set(0); - pwm_enable(kblight_pwm_ch, 1); + pwm_enable(kblight_pwm_ch, 0); return EC_SUCCESS; } |