diff options
author | Randall Spangler <rspangler@chromium.org> | 2013-09-27 16:29:10 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2013-10-03 01:04:17 +0000 |
commit | e8cf2a67090d18cdcdb578c03bdf105a74d28a74 (patch) | |
tree | 4cac2ca2bcded2255217bdf0cb0494017a631b25 | |
parent | 61822f327e1245698fd6207ca3c644fe5b1aa631 (diff) | |
download | chrome-ec-e8cf2a67090d18cdcdb578c03bdf105a74d28a74.tar.gz |
Wake keyboard task when lid opens
If keyboard scanning is active when the lid closes, it will disable
scanning put the scan task to sleep. We need a corresponding task
wake when the lid opens, or scanning will be stuck off (until
something else happens, like poking the power button).
BUG=chrome-os-partner:23032
BRANCH=wolf
TEST=Hold down a key. Use a magnet to trigger the lid switch. Scanning
should stop while the lid is "closed", and restart when the magnet is
moved to "open" the lid again.
Change-Id: Ib60c593fcebaaff5c38899b9e13013fe0421a28b
Original-Change-Id: I0a900f17f65b75cbdb45950cea7f50190d2bf9b1
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/170993
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/171541
Reviewed-by: Dave Parker <dparker@chromium.org>
Commit-Queue: Hsu Henry <Henry.Hsu@quantatw.com>
Tested-by: Hsu Henry <Henry.Hsu@quantatw.com>
-rw-r--r-- | common/keyboard_scan.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/common/keyboard_scan.c b/common/keyboard_scan.c index 76db0b58f9..7685293a47 100644 --- a/common/keyboard_scan.c +++ b/common/keyboard_scan.c @@ -8,6 +8,7 @@ #include "chipset.h" #include "common.h" #include "console.h" +#include "hooks.h" #include "host_command.h" #include "keyboard_config.h" #include "keyboard_protocol.h" @@ -555,6 +556,18 @@ void keyboard_scan_enable(int enable) } } +#ifdef CONFIG_LID_SWITCH + +static void keyboard_lid_change(void) +{ + /* If lid is open, wake the keyboard task */ + if (lid_is_open()) + task_wake(TASK_ID_KEYSCAN); +} +DECLARE_HOOK(HOOK_LID_CHANGE, keyboard_lid_change, HOOK_PRIO_DEFAULT); + +#endif + /*****************************************************************************/ /* Host commands */ |