summaryrefslogtreecommitdiff
path: root/common/keyboard_8042.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2013-03-29 12:40:07 -0700
committerChromeBot <chrome-bot@google.com>2013-03-29 15:39:34 -0700
commit97bf36c9d3ad3d96ad6dea7cd6e6f3e164297c43 (patch)
tree5d4ba65334beb071e4cc09d8a404e859bca398ac /common/keyboard_8042.c
parentc317992194ea089a97c4d54ef77ff4b1e283c248 (diff)
downloadchrome-ec-97bf36c9d3ad3d96ad6dea7cd6e6f3e164297c43.tar.gz
Add parse_bool() to centralize parsing boolean options
This way debug commands which previously took only yes/no or on/off or enable/disable can take any of those options. BUG=chrome-os-partner:18467 BRANCH=none TEST=Try "on", "off", "yes", "no", "true", "false", "ena", "disable", for each of the following commands: - ilim (spring) - pll (link) - power (spring/snow) - hcdebug (all) - kblog (link) - ksscan (all) - lp5562 (spring) Change-Id: Ie8e0fae3775b1da711864bcba6682ba5e68a06f1 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/46900 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'common/keyboard_8042.c')
-rw-r--r--common/keyboard_8042.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/common/keyboard_8042.c b/common/keyboard_8042.c
index 248a51e2b8..4a058a4f58 100644
--- a/common/keyboard_8042.c
+++ b/common/keyboard_8042.c
@@ -992,6 +992,7 @@ static int command_keyboard_log(int argc, char **argv)
{
int i;
+ /* If no args, print log */
if (argc == 1) {
ccprintf("KBC log (len=%d):\n", kblog_len);
for (i = 0; kblog_buf && i < kblog_len; ++i) {
@@ -1003,7 +1004,14 @@ static int command_keyboard_log(int argc, char **argv)
}
}
ccputs("\n");
- } else if (argc == 2 && !strcasecmp("on", argv[1])) {
+ return EC_SUCCESS;
+ }
+
+ /* Otherwise, enable/disable */
+ if (!parse_bool(argv[1], &i))
+ return EC_ERROR_PARAM1;
+
+ if (i) {
if (!kblog_buf) {
int rv = shared_mem_acquire(
sizeof(*kblog_buf) * MAX_KBLOG,
@@ -1013,13 +1021,11 @@ static int command_keyboard_log(int argc, char **argv)
kblog_len = 0;
return rv;
}
- } else if (argc == 2 && !strcasecmp("off", argv[1])) {
+ } else {
kblog_len = 0;
if (kblog_buf)
shared_mem_release(kblog_buf);
kblog_buf = NULL;
- } else {
- return EC_ERROR_PARAM1;
}
return EC_SUCCESS;
@@ -1032,20 +1038,20 @@ DECLARE_CONSOLE_COMMAND(kblog, command_keyboard_log,
static int command_keyboard(int argc, char **argv)
{
+ int ena;
+
if (argc > 1) {
- if (!strcasecmp(argv[1], "enable"))
- keyboard_enable(1);
- else if (!strcasecmp(argv[1], "disable"))
- keyboard_enable(0);
- else
+ if (!parse_bool(argv[1], &ena))
return EC_ERROR_PARAM1;
+
+ keyboard_enable(ena);
}
ccprintf("Enabled: %d\n", keyboard_enabled);
return EC_SUCCESS;
}
DECLARE_CONSOLE_COMMAND(kbd, command_keyboard,
- "[enable | disable]",
+ "[0 | 1]",
"Print or toggle keyboard info",
NULL);