Message ID | 20250303190442.551961-1-wse@tuxedocomputers.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] Input: atkbd - map F21 key to support touchpad toggle keys | expand |
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. > > 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. > > Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> > Cc: <stable@vger.kernel.org> > --- > 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.
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@tuxedocomputers.com> >> Cc: <stable@vger.kernel.org> >> --- >> 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. >
Hi, On 5-Mar-25 7:54 AM, Dmitry Torokhov wrote: > 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: Ah right that is a good point. Werner, we were using F21 in the past because we could not use evdev keycodes >= 248 (256 - 8 modifier keys) because of Xorg limitations. But recently the mapping of things like KEY_TOUCHPAD_TOGGLE / KEY_TOUCHPAD_ON / KEY_TOUCHPAD_OFF to F2x keys has been moved to xorg-x11-drv-libinput which gets the full range key-codes from libinput and can then do this mapping before passing the keys to the X-server. So it is no longer necessary to use KEY_F21 and even in the past we used to do the mapping in udev / hwdb rules not in the kernel in the kernel we've always (with a few exceptions which are my fault) used KEY_TOUCHPAD_TOGGLE as that is the correct keycode. Regards, Hans
Hi Werner, On 5-Mar-25 1:18 PM, Werner Sembach wrote: > 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. Quoting from the other reply in this thread I just send (our email crossed): Werner, we were using F21 in the past because we could not use evdev keycodes >= 248 (256 - 8 modifier keys) because of Xorg limitations. But recently the mapping of things like KEY_TOUCHPAD_TOGGLE / KEY_TOUCHPAD_ON / KEY_TOUCHPAD_OFF to F2x keys has been moved to xorg-x11-drv-libinput which gets the full range key-codes from libinput and can then do this mapping before passing the keys to the X-server. So it is no longer necessary to use KEY_F21 and even in the past we used to do the mapping in udev / hwdb rules not in the kernel in the kernel we've always (with a few exceptions which are my fault) used KEY_TOUCHPAD_TOGGLE as that is the correct keycode. Regards, Hans
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,
In the default xkeyboard-config used by both X11 and wayland touchpad toggle is assigned to F21. 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. Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> Cc: <stable@vger.kernel.org> --- drivers/input/keyboard/atkbd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)