* [PATCH 5.4/5.10/5.15/6.1/6.6] Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID
@ 2025-07-15 3:14 Wang Hai
2025-07-15 8:22 ` Hans de Goede
0 siblings, 1 reply; 2+ messages in thread
From: Wang Hai @ 2025-07-15 3:14 UTC (permalink / raw)
To: hdegoede, stable, sashal, gregkh
Cc: yesh25, mail, egori, anton, dmitry.torokhov, rrangel, linux-input,
wanghai38, zhangxiaoxu5
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>
---
drivers/input/keyboard/atkbd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index b3a856333d4e..de59fc1a24bc 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -805,11 +805,11 @@ static int atkbd_probe(struct atkbd *atkbd)
"keyboard reset failed on %s\n",
ps2dev->serio->phys);
if (atkbd_skip_getid(atkbd)) {
atkbd->id = 0xab83;
- return 0;
+ goto deactivate_kbd;
}
/*
* Then we check the keyboard ID. We should get 0xab83 under normal conditions.
* Some keyboards report different values, but the first byte is always 0xab or
@@ -842,10 +842,11 @@ static int atkbd_probe(struct atkbd *atkbd)
"NCD terminal keyboards are only supported on non-translating controllers. "
"Use i8042.direct=1 to disable translation.\n");
return -1;
}
+deactivate_kbd:
/*
* Make sure nothing is coming from the keyboard and disturbs our
* internal state.
*/
if (!atkbd_skip_deactivate)
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 5.4/5.10/5.15/6.1/6.6] Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID
2025-07-15 3:14 [PATCH 5.4/5.10/5.15/6.1/6.6] Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID Wang Hai
@ 2025-07-15 8:22 ` Hans de Goede
0 siblings, 0 replies; 2+ messages in thread
From: Hans de Goede @ 2025-07-15 8:22 UTC (permalink / raw)
To: Wang Hai, stable, sashal, gregkh
Cc: yesh25, mail, egori, anton, dmitry.torokhov, rrangel, linux-input,
zhangxiaoxu5
Hi,
On 15-Jul-25 5:14 AM, Wang Hai wrote:
> 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>
Thank you for backporting this.
The backport looks good to me:
Acked-by: Hans de Goede <hansg@kernel.org>
Regards,
Hans
> ---
> drivers/input/keyboard/atkbd.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
> index b3a856333d4e..de59fc1a24bc 100644
> --- a/drivers/input/keyboard/atkbd.c
> +++ b/drivers/input/keyboard/atkbd.c
> @@ -805,11 +805,11 @@ static int atkbd_probe(struct atkbd *atkbd)
> "keyboard reset failed on %s\n",
> ps2dev->serio->phys);
>
> if (atkbd_skip_getid(atkbd)) {
> atkbd->id = 0xab83;
> - return 0;
> + goto deactivate_kbd;
> }
>
> /*
> * Then we check the keyboard ID. We should get 0xab83 under normal conditions.
> * Some keyboards report different values, but the first byte is always 0xab or
> @@ -842,10 +842,11 @@ static int atkbd_probe(struct atkbd *atkbd)
> "NCD terminal keyboards are only supported on non-translating controllers. "
> "Use i8042.direct=1 to disable translation.\n");
> return -1;
> }
>
> +deactivate_kbd:
> /*
> * Make sure nothing is coming from the keyboard and disturbs our
> * internal state.
> */
> if (!atkbd_skip_deactivate)
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-07-15 8:22 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-15 3:14 [PATCH 5.4/5.10/5.15/6.1/6.6] Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID Wang Hai
2025-07-15 8:22 ` Hans de Goede
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).