X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Finput%2Fi8042.c;h=5678f8e3cfb1b98e41e881b81692d33a6bc7d50e;hb=914bb7ea2f9373fa59285ff77a95df73848c8f66;hp=661d7fd86c44a90f95ee9aba7cd0295852fb2a0e;hpb=011d89d6066592a67253df81905ace358968dacc;p=u-boot diff --git a/drivers/input/i8042.c b/drivers/input/i8042.c index 661d7fd86c..5678f8e3cf 100644 --- a/drivers/input/i8042.c +++ b/drivers/input/i8042.c @@ -1,8 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2002 ELTEC Elektronik AG * Frank Gottschling - * - * SPDX-License-Identifier: GPL-2.0+ */ /* i8042.c - Intel 8042 keyboard driver routines */ @@ -134,6 +133,10 @@ static int kbd_reset(int quirk) kbd_read(I8042_DATA_REG) != KBD_POR) goto err; + if (kbd_write(I8042_DATA_REG, CMD_DRAIN_OUTPUT) || + kbd_read(I8042_DATA_REG) != KBD_ACK) + goto err; + /* set AT translation and disable irq */ config = kbd_cmd_read(CMD_RD_CONFIG); if (config == -1) @@ -270,7 +273,7 @@ static int i8042_start(struct udevice *dev) /* Init keyboard device (default US layout) */ keymap = KBD_US; - penv = getenv("keymap"); + penv = env_get("keymap"); if (penv != NULL) { if (strncmp(penv, "de", 3) == 0) keymap = KBD_GER; @@ -311,7 +314,7 @@ static int i8042_kbd_probe(struct udevice *dev) struct input_config *input = &uc_priv->input; int ret; - if (fdtdec_get_bool(gd->fdt_blob, dev->of_offset, + if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev), "intel,duplicate-por")) priv->quirks |= QUIRK_DUP_POR;