Re: [PATCH v2 1/2] Input: atkbd - map F21 key to support touchpad toggle keys

From: Werner Sembach
Date: Wed Mar 05 2025 - 07:19:43 EST


Hi Dmitry,

Am 05.03.25 um 07:54 schrieb Dmitry Torokhov:
Hi Werner,

On Mon, Mar 03, 2025 at 08:04:34PM +0100, Werner Sembach wrote:
In the default xkeyboard-config used by both X11 and wayland touchpad
toggle is assigned to F21.
We have dedicated KEY_TOUCHPAD_TOGGLE that is being used by several
platform drivers:

dtor@dtor-ws:~/kernel/work $ git grep -l KEY_TOUCHPAD_TOGGLE --
drivers/platform/x86/
drivers/platform/x86/acer-wmi.c
drivers/platform/x86/asus-laptop.c
drivers/platform/x86/asus-nb-wmi.c
drivers/platform/x86/eeepc-wmi.c
drivers/platform/x86/fujitsu-laptop.c
drivers/platform/x86/ideapad-laptop.c
drivers/platform/x86/msi-wmi.c
drivers/platform/x86/toshiba_acpi.c

Instead of piling on F21 hacks we should be using it.
Afaik KEY_TOUCHPAD_TOGGLE is not implemented in userspace, but a patch for xkeboard-configs could probably be enough to change that ... have to look into it.

This patch is in preparation for i8042 filter patches to be able to remap
bogus scancode(-combinations), produced by notebooks uppon pressing a
touchpad toggle key.
Since you already creating a vendor-specific platform driver I think it
would be better for it to register a separate input device and have it
emit KEY_TOUCHPAD_TOGGLE instead of involving atkbd.

Thought of that also, but since the scancode was unmapped and unused anyway I thought this could be a much simpler and therefore more elegant solution.

Learning question: What actually is the reason why F13-F24 are not fully mapped in the default config?

Best regards,

Werner


Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
---
drivers/input/keyboard/atkbd.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index adf0f311996c9..2ba3493de88cc 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -88,7 +88,7 @@ static const unsigned short atkbd_set2_keycode[ATKBD_KEYMAP_SIZE] = {
0, 56, 42, 93, 29, 16, 2, 0, 0, 0, 44, 31, 30, 17, 3, 0,
0, 46, 45, 32, 18, 5, 4, 95, 0, 57, 47, 33, 20, 19, 6,183,
0, 49, 48, 35, 34, 21, 7,184, 0, 0, 50, 36, 22, 8, 9,185,
- 0, 51, 37, 23, 24, 11, 10, 0, 0, 52, 53, 38, 39, 25, 12, 0,
+ 0, 51, 37, 23, 24, 11, 10, 0,191, 52, 53, 38, 39, 25, 12, 0,
0, 89, 40, 0, 26, 13, 0,193, 58, 54, 28, 27, 0, 43, 0, 85,
0, 86, 91, 90, 92, 0, 14, 94, 0, 79,124, 75, 71,121, 0, 0,
82, 83, 80, 76, 77, 72, 1, 69, 87, 78, 81, 74, 55, 73, 70, 99,
--
2.43.0

Thanks.