summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/keyboard_backlight.c8
-rw-r--r--common/pwm_kblight.c2
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;
}