--- /dev/null
+From 9cf6e24c9fbf17e52de9fff07f12be7565ea6d61 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 26 Jan 2024 17:07:24 +0100
+Subject: Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 9cf6e24c9fbf17e52de9fff07f12be7565ea6d61 upstream.
+
+After commit 936e4d49ecbc ("Input: atkbd - skip ATKBD_CMD_GETID in
+translated mode") not only the getid command is skipped, but also
+the de-activating of the keyboard at the end of atkbd_probe(), potentially
+re-introducing the problem fixed by commit be2d7e4233a4 ("Input: atkbd -
+fix multi-byte scancode handling on reconnect").
+
+Make sure multi-byte scancode handling on reconnect is still handled
+correctly by not skipping the atkbd_deactivate() call.
+
+Fixes: 936e4d49ecbc ("Input: atkbd - skip ATKBD_CMD_GETID in translated mode")
+Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://lore.kernel.org/r/20240126160724.13278-3-hdegoede@redhat.com
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Wang Hai <wanghai38@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/input/keyboard/atkbd.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/input/keyboard/atkbd.c
++++ b/drivers/input/keyboard/atkbd.c
+@@ -817,7 +817,7 @@ static int atkbd_probe(struct atkbd *atk
+
+ if (atkbd_skip_getid(atkbd)) {
+ atkbd->id = 0xab83;
+- return 0;
++ goto deactivate_kbd;
+ }
+
+ /*
+@@ -854,6 +854,7 @@ static int atkbd_probe(struct atkbd *atk
+ return -1;
+ }
+
++deactivate_kbd:
+ /*
+ * Make sure nothing is coming from the keyboard and disturbs our
+ * internal state.