From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Mon, 9 Nov 2020 20:34:25 +0000 (+0100)
Subject: cros_ec: Handling EC_CMD_GET_NEXT_EVENT
X-Git-Tag: v2025.01-rc5-pxa1908~2127^2
X-Git-Url: http://git.dujemihanovic.xyz/%7B%7B%20.Permalink%20%7D%7D?a=commitdiff_plain;h=a3e458524c15710e4ac9ce1556a5f0898084d09a;p=u-boot.git

cros_ec: Handling EC_CMD_GET_NEXT_EVENT

With commit 690079767803 ("cros_ec: Support keyboard scanning with
EC_CMD_GET_NEXT_EVENT") check_for_keys() tries to read keyboard
strokes using EC_CMD_GET_NEXT_EVENT. But the sandbox driver does
not understand this command. We need to reply with
-EC_RES_INVALID_COMMAND to force check_for_keys() to fall back to
use EC_CMD_MKBP_STATE. Currently the driver prints

    ** Unknown EC command 0x67

in this case. With the patch the message is suppressed.

In a future patch we should upgrade the sandbox driver to provide
EC_CMD_GET_NEXT_EVENT support.

Fixes: 690079767803 ("cros_ec: Support keyboard scanning with EC_CMD_GET_NEXT_EVENT")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---

diff --git a/drivers/misc/cros_ec_sandbox.c b/drivers/misc/cros_ec_sandbox.c
index a191f061b8..ff7f782742 100644
--- a/drivers/misc/cros_ec_sandbox.c
+++ b/drivers/misc/cros_ec_sandbox.c
@@ -460,6 +460,16 @@ static int process_cmd(struct ec_state *ec,
 	case EC_CMD_ENTERING_MODE:
 		len = 0;
 		break;
+	case EC_CMD_GET_NEXT_EVENT:
+		/*
+		 * TODO:
+		 * This driver emulates an old keyboard device supporting
+		 * EC_CMD_MKBP_STATE. Current Chrome OS keyboards use
+		 * EC_CMD_GET_NEXT_EVENT. Cf.
+		 * "mkbp: Add support for buttons and switches"
+		 * https://chromium.googlesource.com/chromiumos/platform/ec/+/87a071941b89e3f7fd3eb329b682e60b3fbd6c73
+		 */
+		return -EC_RES_INVALID_COMMAND;
 	default:
 		printf("   ** Unknown EC command %#02x\n", req_hdr->command);
 		return -1;