From 8fee5ac1a3a841ae02ca92f32965bf0906341a57 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 22 Jan 2024 09:12:53 -0800 Subject: [PATCH] 6.7-stable patches added patches: input-atkbd-use-ab83-as-id-when-skipping-the-getid-command.patch --- ...s-id-when-skipping-the-getid-command.patch | 75 +++++++++++++++++++ queue-6.7/series | 1 + 2 files changed, 76 insertions(+) create mode 100644 queue-6.7/input-atkbd-use-ab83-as-id-when-skipping-the-getid-command.patch diff --git a/queue-6.7/input-atkbd-use-ab83-as-id-when-skipping-the-getid-command.patch b/queue-6.7/input-atkbd-use-ab83-as-id-when-skipping-the-getid-command.patch new file mode 100644 index 00000000000..4dd0abbb7d9 --- /dev/null +++ b/queue-6.7/input-atkbd-use-ab83-as-id-when-skipping-the-getid-command.patch @@ -0,0 +1,75 @@ +From 58f65f9db7e0de366a5a115c2e2c0703858bba69 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 16 Jan 2024 21:43:25 +0100 +Subject: Input: atkbd - use ab83 as id when skipping the getid command +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Hans de Goede + +commit 58f65f9db7e0de366a5a115c2e2c0703858bba69 upstream. + +Barnabás reported that the change to skip the getid command +when the controller is in translated mode on laptops caused +the Version field of his "AT Translated Set 2 keyboard" +input device to change from ab83 to abba, breaking a custom +hwdb entry for this keyboard. + +Use the standard ab83 id for keyboards when getid is skipped +(rather then that getid fails) to avoid reporting a different +Version to userspace then before skipping the getid. + +Fixes: 936e4d49ecbc ("Input: atkbd - skip ATKBD_CMD_GETID in translated mode") +Reported-by: Barnabás Pőcze +Closes: https://lore.kernel.org/linux-input/W1ydwoG2fYv85Z3C3yfDOJcVpilEvGge6UGa9kZh8zI2-qkHXp7WLnl2hSkFz63j-c7WupUWI5TLL6n7Lt8DjRuU-yJBwLYWrreb1hbnd6A=@protonmail.com/ +Signed-off-by: Hans de Goede +Link: https://lore.kernel.org/r/20240116204325.7719-1-hdegoede@redhat.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/keyboard/atkbd.c | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +--- a/drivers/input/keyboard/atkbd.c ++++ b/drivers/input/keyboard/atkbd.c +@@ -791,9 +791,9 @@ static bool atkbd_is_portable_device(voi + * not work. So in this case simply assume a keyboard is connected to avoid + * confusing some laptop keyboards. + * +- * Skipping ATKBD_CMD_GETID ends up using a fake keyboard id. Using a fake id is +- * ok in translated mode, only atkbd_select_set() checks atkbd->id and in +- * translated mode that is a no-op. ++ * Skipping ATKBD_CMD_GETID ends up using a fake keyboard id. Using the standard ++ * 0xab83 id is ok in translated mode, only atkbd_select_set() checks atkbd->id ++ * and in translated mode that is a no-op. + */ + static bool atkbd_skip_getid(struct atkbd *atkbd) + { +@@ -811,6 +811,7 @@ static int atkbd_probe(struct atkbd *atk + { + struct ps2dev *ps2dev = &atkbd->ps2dev; + unsigned char param[2]; ++ bool skip_getid; + + /* + * Some systems, where the bit-twiddling when testing the io-lines of the +@@ -832,7 +833,8 @@ static int atkbd_probe(struct atkbd *atk + */ + + param[0] = param[1] = 0xa5; /* initialize with invalid values */ +- if (atkbd_skip_getid(atkbd) || ps2_command(ps2dev, param, ATKBD_CMD_GETID)) { ++ skip_getid = atkbd_skip_getid(atkbd); ++ if (skip_getid || ps2_command(ps2dev, param, ATKBD_CMD_GETID)) { + + /* + * If the get ID command was skipped or failed, we check if we can at least set +@@ -842,7 +844,7 @@ static int atkbd_probe(struct atkbd *atk + param[0] = 0; + if (ps2_command(ps2dev, param, ATKBD_CMD_SETLEDS)) + return -1; +- atkbd->id = 0xabba; ++ atkbd->id = skip_getid ? 0xab83 : 0xabba; + return 0; + } + diff --git a/queue-6.7/series b/queue-6.7/series index 4d5e1d3f0df..9142e908043 100644 --- a/queue-6.7/series +++ b/queue-6.7/series @@ -380,3 +380,4 @@ revert-kernfs-convert-kernfs_idr_lock-to-an-irq-safe-raw-spinlock.patch selftests-bpf-add-assert-for-user-stacks-in-test_task_stack.patch binder-fix-async-space-check-for-0-sized-buffers.patch binder-fix-unused-alloc-free_async_space.patch +input-atkbd-use-ab83-as-id-when-skipping-the-getid-command.patch -- 2.47.3