summaryrefslogtreecommitdiff
path: root/test/kb_8042.c
diff options
context:
space:
mode:
authorYH Lin <yueherngl@chromium.org>2022-12-03 00:19:30 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-12-05 17:43:05 +0000
commitc8af732351cc5c7167f27e8390e26f0556f53a5a (patch)
treebdff671e5ad3e71e30ab56f4f084f34a2fd72e28 /test/kb_8042.c
parentaf25602b15b22b9ef5821dcba9934311f2157c48 (diff)
downloadchrome-ec-c8af732351cc5c7167f27e8390e26f0556f53a5a.tar.gz
Revert "Merge remote-tracking branch cros/main into factory-brya-14517.B-main"factory-brya-14517.B-main
This reverts commit af25602b15b22b9ef5821dcba9934311f2157c48. Reason for revert: broken build due to ec-utils. Original change's description: > Merge remote-tracking branch cros/main into factory-brya-14517.B-main > > Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file > baseboard/brya/relevant-paths.txt factory-brya-14517.B-main > > Relevant changes: > > git log --oneline 54462f034b..aa40b859b3 -- baseboard/brya board/agah > board/anahera board/banshee board/brya board/crota board/felwinter > board/gimble board/kano board/mithrax board/osiris board/primus > board/redrix board/taeko board/taniks board/vell board/volmar > driver/bc12/pi3usb9201_public.* driver/charger/bq25710.* > driver/ppc/nx20p348x.* driver/ppc/syv682x_public.* > driver/retimer/bb_retimer_public.* driver/tcpm/nct38xx.* > driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.* include/power/alderlake* > include/intel_x86.h power/alderlake* power/intel_x86.c > util/getversion.sh > > e6da633c38 driver: Sort header files > 234a87ae2d tcpci: Add FRS enable to driver structure > a56be59ccd tcpm_header: add test for tcpm_dump_registers > 57b3256963 Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMIT > e420c8ff9a marasov: Modify TypeC and TypeA configuration. > 43b53e0045 Add default implementation of board_set_charge_limit > b75dc90677 Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT > f1b563c350 baseboard: Sort header files > 7d01b1e58d driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70 > ec31407993 Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT > 8f89f69a5b crota: disable lid angle sensor for clamshell > > BRANCH=None > BUG=b:259002141 b:255184961 b:247100970 b:259354679 b:260630630 > BUG=b:163093572 b:254328661 > TEST=`emerge-brya chromeos-ec` > > Force-Relevant-Builds: all > Change-Id: Ia85a701fbf6b8e67ec214b9e25e0e55e980a6f47 > Signed-off-by: YH Lin <yueherngl@google.com> Bug: b:259002141 b:255184961 b:247100970 b:259354679 b:260630630 Bug: b:163093572 b:254328661 Change-Id: I48d5aa4cc67a69ee1f6ac9255ac3087d34da4c72 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4077248 Tested-by: YH Lin <yueherngl@chromium.org> Commit-Queue: YH Lin <yueherngl@chromium.org> Reviewed-by: Boris Mittelberg <bmbm@google.com> Auto-Submit: YH Lin <yueherngl@chromium.org>
Diffstat (limited to 'test/kb_8042.c')
-rw-r--r--test/kb_8042.c104
1 files changed, 49 insertions, 55 deletions
diff --git a/test/kb_8042.c b/test/kb_8042.c
index 0065319576..e7d7690cff 100644
--- a/test/kb_8042.c
+++ b/test/kb_8042.c
@@ -5,6 +5,7 @@
* Tests for keyboard MKBP protocol
*/
+#include <stdbool.h>
#include "atkbd_protocol.h"
#include "common.h"
#include "console.h"
@@ -23,8 +24,6 @@
#include "timer.h"
#include "util.h"
-#include <stdbool.h>
-
static const char *action[2] = { "release", "press" };
/*
@@ -262,7 +261,6 @@ static int _read_cmd_byte(uint8_t *cmd)
void before_test(void)
{
/* Make sure all tests start with the controller in the same state */
- keyboard_clear_buffer();
_write_cmd_byte(I8042_XLATE | I8042_AUX_DIS | I8042_KBD_DIS);
}
@@ -276,7 +274,7 @@ void after_test(void)
}
}
-test_static int test_8042_aux_loopback(void)
+static int test_8042_aux_loopback(void)
{
/* Disable all IRQs */
WRITE_CMD_BYTE(0);
@@ -295,7 +293,7 @@ test_static int test_8042_aux_loopback(void)
return EC_SUCCESS;
}
-test_static int test_8042_aux_two_way_communication(void)
+static int test_8042_aux_two_way_communication(void)
{
/* Enable AUX IRQ */
WRITE_CMD_BYTE(I8042_ENIRQ12);
@@ -313,7 +311,7 @@ test_static int test_8042_aux_two_way_communication(void)
return EC_SUCCESS;
}
-test_static int test_8042_aux_inhibit(void)
+static int test_8042_aux_inhibit(void)
{
/* Enable AUX IRQ, but inhibit the AUX device from sending data. */
WRITE_CMD_BYTE(I8042_ENIRQ12 | I8042_AUX_DIS);
@@ -341,7 +339,7 @@ test_static int test_8042_aux_inhibit(void)
return EC_SUCCESS;
}
-test_static int test_8042_aux_controller_commands(void)
+static int test_8042_aux_controller_commands(void)
{
uint8_t ctrl;
@@ -361,7 +359,7 @@ test_static int test_8042_aux_controller_commands(void)
return EC_SUCCESS;
}
-test_static int test_8042_aux_test_command(void)
+static int test_8042_aux_test_command(void)
{
i8042_write_cmd(I8042_TEST_MOUSE);
@@ -370,7 +368,7 @@ test_static int test_8042_aux_test_command(void)
return EC_SUCCESS;
}
-test_static int test_8042_self_test(void)
+static int test_8042_self_test(void)
{
i8042_write_cmd(I8042_RESET_SELF_TEST);
VERIFY_LPC_CHAR("\x55");
@@ -378,7 +376,7 @@ test_static int test_8042_self_test(void)
return EC_SUCCESS;
}
-test_static int test_8042_keyboard_test_command(void)
+static int test_8042_keyboard_test_command(void)
{
i8042_write_cmd(I8042_TEST_KB_PORT);
VERIFY_LPC_CHAR("\x00"); /* Data and Clock are not stuck */
@@ -386,7 +384,7 @@ test_static int test_8042_keyboard_test_command(void)
return EC_SUCCESS;
}
-test_static int test_8042_keyboard_controller_commands(void)
+static int test_8042_keyboard_controller_commands(void)
{
uint8_t ctrl;
@@ -406,7 +404,7 @@ test_static int test_8042_keyboard_controller_commands(void)
return EC_SUCCESS;
}
-test_static int test_8042_keyboard_key_pressed_while_inhibited(void)
+static int test_8042_keyboard_key_pressed_while_inhibited(void)
{
ENABLE_KEYSTROKE(1);
@@ -442,8 +440,7 @@ test_static int test_8042_keyboard_key_pressed_while_inhibited(void)
return EC_SUCCESS;
}
-test_static int
-test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte(void)
+static int test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte(void)
{
ENABLE_KEYSTROKE(1);
/* Simulate a keypress on the keyboard */
@@ -475,7 +472,7 @@ test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte(void)
return EC_SUCCESS;
}
-test_static int
+static int
test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte_with_read(void)
{
uint8_t cmd;
@@ -527,7 +524,7 @@ test_8042_keyboard_key_pressed_before_inhibit_using_cmd_byte_with_read(void)
return EC_SUCCESS;
}
-test_static int test_8042_keyboard_key_pressed_before_inhibit_using_cmd(void)
+static int test_8042_keyboard_key_pressed_before_inhibit_using_cmd(void)
{
ENABLE_KEYSTROKE(1);
/* Simulate a keypress on the keyboard */
@@ -559,7 +556,7 @@ test_static int test_8042_keyboard_key_pressed_before_inhibit_using_cmd(void)
return EC_SUCCESS;
}
-test_static int test_single_key_press(void)
+static int test_single_key_press(void)
{
ENABLE_KEYSTROKE(1);
press_key(1, 1, 1);
@@ -575,7 +572,7 @@ test_static int test_single_key_press(void)
return EC_SUCCESS;
}
-test_static int test_disable_keystroke(void)
+static int test_disable_keystroke(void)
{
ENABLE_KEYSTROKE(0);
press_key(1, 1, 1);
@@ -586,7 +583,7 @@ test_static int test_disable_keystroke(void)
return EC_SUCCESS;
}
-test_static int test_typematic(void)
+static int test_typematic(void)
{
ENABLE_KEYSTROKE(1);
@@ -613,7 +610,7 @@ test_static int test_typematic(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_get_scancode(void)
+static int test_atkbd_get_scancode(void)
{
SET_SCANCODE(1);
@@ -638,7 +635,7 @@ test_static int test_atkbd_get_scancode(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_set_scancode_with_keystroke_disabled(void)
+static int test_atkbd_set_scancode_with_keystroke_disabled(void)
{
ENABLE_KEYSTROKE(0);
@@ -650,7 +647,7 @@ test_static int test_atkbd_set_scancode_with_keystroke_disabled(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_set_scancode_with_key_press_before_set(void)
+static int test_atkbd_set_scancode_with_key_press_before_set(void)
{
ENABLE_KEYSTROKE(0);
ENABLE_KEYSTROKE(1);
@@ -663,17 +660,26 @@ test_static int test_atkbd_set_scancode_with_key_press_before_set(void)
* ATKBD_CMD_SSCANSET should cause the keyboard to stop scanning, flush
* the keyboards output queue, and reset the typematic key.
*/
- i8042_write_data(ATKBD_CMD_SSCANSET);
- VERIFY_ATKBD_ACK();
+ keyboard_host_write(ATKBD_CMD_SSCANSET, 0);
+ /* Read out the scan code that got pushed into the output buffer before
+ * the command was sent.
+ */
+ VERIFY_LPC_CHAR("\x01");
/*
* FIXME: This is wrong. The keyboard's output queue should have been
* flushed when it received the `ATKBD_CMD_SSCANSET` command.
*/
- VERIFY_LPC_CHAR("\x01\x81");
+ VERIFY_LPC_CHAR("\x81");
+
+ /* This is the ACK for `ATKBD_CMD_SSCANSET`. */
+ VERIFY_ATKBD_ACK();
+
+ /* The keyboard has flushed the buffer so no more keys. */
+ VERIFY_NO_CHAR();
/* Finish setting scan code 1 */
- i8042_write_data(1);
+ keyboard_host_write(1, 0);
VERIFY_ATKBD_ACK();
/* Key scanning should be restored. */
@@ -684,7 +690,7 @@ test_static int test_atkbd_set_scancode_with_key_press_before_set(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_set_scancode_with_key_press_during_set(void)
+static int test_atkbd_set_scancode_with_key_press_during_set(void)
{
ENABLE_KEYSTROKE(1);
@@ -692,7 +698,7 @@ test_static int test_atkbd_set_scancode_with_key_press_during_set(void)
* ATKBD_CMD_SSCANSET should cause the keyboard to stop scanning, flush
* the keyboards output queue, and reset the typematic key.
*/
- i8042_write_data(ATKBD_CMD_SSCANSET);
+ keyboard_host_write(ATKBD_CMD_SSCANSET, 0);
VERIFY_ATKBD_ACK();
/* These keypresses should be dropped. */
@@ -705,7 +711,7 @@ test_static int test_atkbd_set_scancode_with_key_press_during_set(void)
VERIFY_LPC_CHAR("\x01\x81");
/* Finish setting scan code 1 */
- i8042_write_data(1);
+ keyboard_host_write(1, 0);
VERIFY_ATKBD_ACK();
/* Key scanning should be restored. */
@@ -716,7 +722,7 @@ test_static int test_atkbd_set_scancode_with_key_press_during_set(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_echo(void)
+static int test_atkbd_echo(void)
{
i8042_write_data(ATKBD_CMD_DIAG_ECHO);
VERIFY_ATKBD_ACK();
@@ -726,7 +732,7 @@ test_static int test_atkbd_echo(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_get_id(void)
+static int test_atkbd_get_id(void)
{
i8042_write_data(ATKBD_CMD_GETID);
VERIFY_ATKBD_ACK();
@@ -741,10 +747,8 @@ test_static int test_atkbd_get_id(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_set_leds_keypress_during(void)
+static int test_atkbd_set_leds_keypress_during(void)
{
- ENABLE_KEYSTROKE(1);
-
/* This should pause scanning. */
i8042_write_data(ATKBD_CMD_SETLEDS);
VERIFY_ATKBD_ACK();
@@ -752,20 +756,16 @@ test_static int test_atkbd_set_leds_keypress_during(void)
/* Simulate keypress while keyboard is waiting for option byte */
press_key(1, 1, 1);
press_key(1, 1, 0);
-
- /* Scancode is kept in queue during SETLEDS. */
- VERIFY_NO_CHAR();
+ /* FIXME: This is wrong, we shouldn't have any key strokes */
+ VERIFY_LPC_CHAR("\x01\x81");
i8042_write_data(0x01);
VERIFY_ATKBD_ACK();
- /* Scancode previously queued should be sent now. */
- VERIFY_LPC_CHAR("\x01\x81");
-
return EC_SUCCESS;
}
-test_static int test_atkbd_set_leds_abort_set(void)
+static int test_atkbd_set_leds_abort_set(void)
{
i8042_write_data(ATKBD_CMD_SETLEDS);
VERIFY_ATKBD_ACK();
@@ -785,7 +785,7 @@ test_static int test_atkbd_set_leds_abort_set(void)
return EC_SUCCESS;
}
-test_static int test_atkbd_set_ex_leds(void)
+static int test_atkbd_set_ex_leds(void)
{
i8042_write_data(ATKBD_CMD_EX_SETLEDS);
VERIFY_ATKBD_ACK();
@@ -801,10 +801,9 @@ test_static int test_atkbd_set_ex_leds(void)
return EC_SUCCESS;
}
-test_static int test_scancode_set2(void)
+static int test_scancode_set2(void)
{
SET_SCANCODE(2);
- ENABLE_KEYSTROKE(1);
WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
press_key(1, 1, 1);
@@ -821,7 +820,7 @@ test_static int test_scancode_set2(void)
return EC_SUCCESS;
}
-test_static int test_power_button(void)
+static int test_power_button(void)
{
ENABLE_KEYSTROKE(0);
@@ -858,7 +857,7 @@ test_static int test_power_button(void)
return EC_SUCCESS;
}
-test_static int test_sysjump(void)
+static int test_sysjump(void)
{
SET_SCANCODE(2);
ENABLE_KEYSTROKE(1);
@@ -869,17 +868,15 @@ test_static int test_sysjump(void)
return EC_ERROR_UNKNOWN;
}
-test_static int test_sysjump_cont(void)
+static int test_sysjump_cont(void)
{
WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
-
press_key(1, 1, 1);
VERIFY_LPC_CHAR("\x01");
press_key(1, 1, 0);
VERIFY_LPC_CHAR("\x81");
WRITE_CMD_BYTE(READ_CMD_BYTE() & ~I8042_XLATE);
-
press_key(1, 1, 1);
VERIFY_LPC_CHAR("\x76");
press_key(1, 1, 0);
@@ -888,7 +885,7 @@ test_static int test_sysjump_cont(void)
return EC_SUCCESS;
}
-test_static const struct ec_response_keybd_config keybd_config = {
+static const struct ec_response_keybd_config keybd_config = {
.num_top_row_keys = 13,
.action_keys = {
TK_BACK, /* T1 */
@@ -913,7 +910,7 @@ board_vivaldi_keybd_config(void)
return &keybd_config;
}
-test_static int test_ec_cmd_get_keybd_config(void)
+static int test_ec_cmd_get_keybd_config(void)
{
struct ec_response_keybd_config resp;
int rv;
@@ -934,25 +931,22 @@ test_static int test_ec_cmd_get_keybd_config(void)
return EC_SUCCESS;
}
-test_static int test_vivaldi_top_keys(void)
+static int test_vivaldi_top_keys(void)
{
SET_SCANCODE(2);
/* Test REFRESH key */
WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
-
press_key(2, 3, 1); /* Press T2 */
VERIFY_LPC_CHAR("\xe0\x67"); /* Check REFRESH scancode in set-1 */
/* Test SNAPSHOT key */
WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
-
press_key(4, 3, 1); /* Press T2 */
VERIFY_LPC_CHAR("\xe0\x13"); /* Check SNAPSHOT scancode in set-1 */
/* Test VOL_UP key */
WRITE_CMD_BYTE(READ_CMD_BYTE() | I8042_XLATE);
-
press_key(5, 3, 1); /* Press T2 */
VERIFY_LPC_CHAR("\xe0\x30"); /* Check VOL_UP scancode in set-1 */