]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID
authorHans de Goede <hdegoede@redhat.com>
Fri, 26 Jan 2024 16:07:24 +0000 (17:07 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jul 2025 16:30:55 +0000 (18:30 +0200)
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

index e8e9947e2f5cc3bdb5ea4bf1fe28dc45b1cc46a5..1c033020efc47985e8c37f1a55483e7b8b2c2a40 100644 (file)
@@ -817,7 +817,7 @@ static int atkbd_probe(struct atkbd *atkbd)
 
        if (atkbd_skip_getid(atkbd)) {
                atkbd->id = 0xab83;
-               return 0;
+               goto deactivate_kbd;
        }
 
 /*
@@ -854,6 +854,7 @@ static int atkbd_probe(struct atkbd *atkbd)
                return -1;
        }
 
+deactivate_kbd:
 /*
  * Make sure nothing is coming from the keyboard and disturbs our
  * internal state.