diff mbox series

Input: atkbd: Fix so copilot key generates F23 keycode

Message ID 20241219151910.14235-1-mpearson-lenovo@squebb.ca
State New
Headers show
Series Input: atkbd: Fix so copilot key generates F23 keycode | expand

Commit Message

Mark Pearson Dec. 19, 2024, 3:18 p.m. UTC
The copilot key on Lenovo laptops doesn't work as scancode 0x6e, which it
generates is not mapped.
This change lets scancode 0x6e generate keycode 193 (F23 key) which is
the expected value for copilot.

Tested on T14s G6 AMD.
I've had reports from other users that their ThinkBooks are using the same
scancode.

Signed-off-by: Mark Pearson <mpearson-lenovo@squebb.ca>
---
 drivers/input/keyboard/atkbd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mark Pearson Dec. 22, 2024, 8:16 p.m. UTC | #1
Hi Dmitry,

On Thu, Dec 19, 2024, at 2:17 PM, Dmitry Torokhov wrote:
> On Thu, Dec 19, 2024 at 01:40:24PM -0500, Mark Pearson wrote:
>> On Thu, Dec 19, 2024, at 1:31 PM, Dmitry Torokhov wrote:
>> > On Thu, Dec 19, 2024 at 07:26:19PM +0100, Hans de Goede wrote:
>> >> Hi,
>> >> 
>> >> On 19-Dec-24 7:15 PM, Dmitry Torokhov wrote:
>> > And mapping to F23 as I said should be done through udev. I doubt they
>> > will get all OEMs settle on the same scancode.
>> >
>> 
>> I'll see if we can find a way to check on other vendor platforms what scancode is used.
>> If it is a common scancode, across multiple vendors, would the patch be acceptable?
>
> It is currently unmapped by default, so maybe.
>
> FWIW:
>
> dtor@dtor-ws:~/kernel/work $ grep KEY_6e /lib/udev/hwdb.d/60-keyboard.hwdb
> KEYBOARD_KEY_6e=wlan
> KEYBOARD_KEY_6e=left                                   # left on d-pad
> KEYBOARD_KEY_6e=search
>
> That 2nd entry is actually from one of Thinkpad models ;)
>
I got confirmation from the keyboard team that 0x6e is the scancode from F23, and is common for all PC vendors for Windows.

They pointed me at this page as confirmation: https://learn.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input#scan-codes
(F23 is in the table of scan codes)

Does that make this patch valid again for consideration, in your opinion?

Thanks
Mark
Mark Pearson Dec. 23, 2024, 3:33 a.m. UTC | #2
On Sun, Dec 22, 2024, at 3:16 PM, Mark Pearson wrote:
> Hi Dmitry,
>
> On Thu, Dec 19, 2024, at 2:17 PM, Dmitry Torokhov wrote:
>> On Thu, Dec 19, 2024 at 01:40:24PM -0500, Mark Pearson wrote:
>>> On Thu, Dec 19, 2024, at 1:31 PM, Dmitry Torokhov wrote:
>>> > On Thu, Dec 19, 2024 at 07:26:19PM +0100, Hans de Goede wrote:
>>> >> Hi,
>>> >> 
>>> >> On 19-Dec-24 7:15 PM, Dmitry Torokhov wrote:
>>> > And mapping to F23 as I said should be done through udev. I doubt they
>>> > will get all OEMs settle on the same scancode.
>>> >
>>> 
>>> I'll see if we can find a way to check on other vendor platforms what scancode is used.
>>> If it is a common scancode, across multiple vendors, would the patch be acceptable?
>>
>> It is currently unmapped by default, so maybe.
>>
>> FWIW:
>>
>> dtor@dtor-ws:~/kernel/work $ grep KEY_6e /lib/udev/hwdb.d/60-keyboard.hwdb
>> KEYBOARD_KEY_6e=wlan
>> KEYBOARD_KEY_6e=left                                   # left on d-pad
>> KEYBOARD_KEY_6e=search
>>
>> That 2nd entry is actually from one of Thinkpad models ;)
>>
> I got confirmation from the keyboard team that 0x6e is the scancode 
> from F23, and is common for all PC vendors for Windows.
>
> They pointed me at this page as confirmation: 
> https://learn.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input#scan-codes
> (F23 is in the table of scan codes)
>
> Does that make this patch valid again for consideration, in your opinion?
>
Apologies for the multiple emails, but just wanted to add a note that Canonical kindly tested for me on a Dell and HP platform, and confirmed they are using the same scan code (as expected at this point). This change should benefit all vendors.

Thanks
Mark
diff mbox series

Patch

diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 5855d4fc6e6a..f7b08b359c9c 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -89,7 +89,7 @@  static const unsigned short atkbd_set2_keycode[ATKBD_KEYMAP_SIZE] = {
 	  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, 89, 40,  0, 26, 13,  0,  0, 58, 54, 28, 27,  0, 43,  0, 85,
+	  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,