diff options
author | Alec Berg <alecaberg@chromium.org> | 2014-04-10 12:32:05 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-04-11 20:02:30 +0000 |
commit | 3344c8e2e64fd4985f6fbb55810452f195b7b7eb (patch) | |
tree | 648fae08de74b86d43a8430b523ec52ac701ab5c /common/power_button.c | |
parent | 2dc7016541daf1bf7e9e96131eced09fe6a94776 (diff) | |
download | chrome-ec-3344c8e2e64fd4985f6fbb55810452f195b7b7eb.tar.gz |
Refactored keyboard scan enable flag to allow for multiple disable reasons
Refactored keyboard scan enable/disable flag such that it is a mask of
potential disable sources. When all disable sources are off, scanning is
enabled, otherwise scanning is disabled. This fixes a recently introduced
bug in which enabling/disabling keyboard scanning due to lid angle in S3
was interfering with enabling/disabling keyboard scanning due to power
button. This also allows for easy expansion for future causes for disabling
keyboard scanning.
BUG=chrome-os-partner:27851
BRANCH=rambi
TEST=Manual tests with a glimmer. Used the ksstate console command to
check state of keyboard scanning under all permutations of power button
pressed/unpressed, lid switch open/closed, and lid angle in tablet position
vs. laptop positon.
Change-Id: Ied4c5ebb94510b1078cd81d71373c0f1bd0d6678
Signed-off-by: Alec Berg <alecaberg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/194287
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/power_button.c')
-rw-r--r-- | common/power_button.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/common/power_button.c b/common/power_button.c index ae20083c52..f4b2af41b1 100644 --- a/common/power_button.c +++ b/common/power_button.c @@ -75,7 +75,7 @@ static void power_button_change_deferred(void) /* Re-enable keyboard scanning if power button is no longer pressed */ if (!new_pressed) - keyboard_scan_enable(1); + keyboard_scan_enable(1, KB_SCAN_DISABLE_POWER_BUTTON); /* If power button hasn't changed state, nothing to do */ if (new_pressed == debounced_power_pressed) @@ -102,7 +102,7 @@ void power_button_interrupt(enum gpio_signal signal) * on the same column with refresh key. */ if (raw_power_button_pressed()) - keyboard_scan_enable(0); + keyboard_scan_enable(0, KB_SCAN_DISABLE_POWER_BUTTON); /* Reset power button debounce time */ hook_call_deferred(power_button_change_deferred, PWRBTN_DEBOUNCE_US); |