diff options
author | Dino Li <dino.li@ite.com.tw> | 2015-08-04 16:59:56 +0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-08-04 22:27:01 +0000 |
commit | 9495f669d5db920a210e8610cc0f4254d7f78ce3 (patch) | |
tree | 5b3bc0bb71a24022cff39fc3e7f67b2fcfc6071c | |
parent | 6132b4fbc0590f8ea3f36649a77d36d28b92a95c (diff) | |
download | chrome-ec-9495f669d5db920a210e8610cc0f4254d7f78ce3.tar.gz |
it8380dev: fix keyboard no break code
Wake up task to send the remaining scan codes after OBE(host read data)
or IBF(host send command/data).
Signed-off-by: Dino Li <dino.li@ite.com.tw>
BRANCH=none
BUG=none
TEST=EC complete sending scan codes.
Change-Id: Ie71140bbdfe5fcaccd5d16fd35b426004c218ba8
Reviewed-on: https://chromium-review.googlesource.com/290088
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Dino Li <dino.li@ite.com.tw>
Tested-by: Dino Li <dino.li@ite.com.tw>
-rw-r--r-- | chip/it83xx/lpc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/chip/it83xx/lpc.c b/chip/it83xx/lpc.c index 95fcb23aee..c0aae46de0 100644 --- a/chip/it83xx/lpc.c +++ b/chip/it83xx/lpc.c @@ -280,8 +280,10 @@ void lpc_keyboard_put_char(uint8_t chr, int send_irq) udelay(16); + task_clear_pending_irq(IT83XX_IRQ_KBC_OUT); /* The data output to the KBC Data Output Register. */ IT83XX_KBC_KBHIKDOR = chr; + task_enable_irq(IT83XX_IRQ_KBC_OUT); } void lpc_keyboard_clear_buffer(void) @@ -379,6 +381,10 @@ void lpc_kbc_ibf_interrupt(void) } task_clear_pending_irq(IT83XX_IRQ_KBC_IN); + +#ifdef HAS_TASK_KEYPROTO + task_wake(TASK_ID_KEYPROTO); +#endif } void lpc_kbc_obe_interrupt(void) @@ -392,6 +398,10 @@ void lpc_kbc_obe_interrupt(void) IT83XX_KBC_KBHICR |= 0x01; } + +#ifdef HAS_TASK_KEYPROTO + task_wake(TASK_ID_KEYPROTO); +#endif } void pm1_ibf_interrupt(void) |