summaryrefslogtreecommitdiff
path: root/common/keyboard_backlight.c
diff options
context:
space:
mode:
authorJeremy Bettis <jbettis@google.com>2021-10-27 13:23:00 -0600
committerCommit Bot <commit-bot@chromium.org>2021-11-03 20:08:20 +0000
commit0b202341702f75303238b8972f4c5decc0ae30e4 (patch)
treeccd0c5b1076863b01eb60c9ee66f2e03812cfa59 /common/keyboard_backlight.c
parentfd1ac67b8cbaf12b245c4eb0e9544705cb5d3a65 (diff)
downloadchrome-ec-0b202341702f75303238b8972f4c5decc0ae30e4.tar.gz
ec: Implement keyboard backlight get enabled
Prior to crrev/c/1051027, the EC_CMD_PWM_GET_KEYBOARD_BACKLIGHT host cmd returned an enabled flag, which the FAFT test firmware_ECLidSwitch depends on. That test, however, was broken, and wasn't actually running the kb backlight portion of the test on any models, so no one ever noticed that the HC and the kblight ec console commands don't return the enabled status. Add a get_enabled function to the kblight driver struct, and add an implementation for each existing driver. BRANCH=None BUG=b:194908032 TEST=CP'd to leona branch, build EC, flash board kblight 100 ; lidclose ; kblight ; lidopen ; kblight Verified the cmd returned enabled: 1 when lights were on Change-Id: Ia6ab025901869933cf70bb49f3bf2def2987b7b3 Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3248888 Tested-by: Jeremy Bettis <jbettis@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'common/keyboard_backlight.c')
-rw-r--r--common/keyboard_backlight.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/common/keyboard_backlight.c b/common/keyboard_backlight.c
index d3d9fbe6d3..3c90b96cc5 100644
--- a/common/keyboard_backlight.c
+++ b/common/keyboard_backlight.c
@@ -65,6 +65,18 @@ int kblight_enable(int enable)
return kblight.drv->enable(enable);
}
+int kblight_get_enabled(void)
+{
+#ifdef GPIO_EN_KEYBOARD_BACKLIGHT
+ if (!gpio_get_level(GPIO_EN_KEYBOARD_BACKLIGHT))
+ return 0;
+#endif
+ if (kblight.drv && kblight.drv->get_enabled)
+ return kblight.drv->get_enabled();
+ return -1;
+}
+
+
int kblight_register(const struct kblight_drv *drv)
{
kblight.drv = drv;
@@ -125,7 +137,8 @@ static int cc_kblight(int argc, char **argv)
if (kblight_enable(i > 0))
return EC_ERROR_PARAM1;
}
- ccprintf("Keyboard backlight: %d%%\n", kblight_get());
+ ccprintf("Keyboard backlight: %d%% enabled: %d\n",
+ kblight_get(), kblight_get_enabled());
return EC_SUCCESS;
}
DECLARE_CONSOLE_COMMAND(kblight, cc_kblight,
@@ -138,7 +151,7 @@ hc_get_keyboard_backlight(struct host_cmd_handler_args *args)
struct ec_response_pwm_get_keyboard_backlight *r = args->response;
r->percent = kblight_get();
- r->enabled = 1; /* Deprecated */
+ r->enabled = kblight_get_enabled();
args->response_size = sizeof(*r);
return EC_RES_SUCCESS;