Skip to contentSkip to conversation

New: platform/x86: lg-laptop: Double input of super key

Bug 222161 [email protected] 1 participant 20 messages Oct 20 – Nov 10 x86 platform drivers

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=222161

            Bug ID: 222161
           Summary: platform/x86: lg-laptop: Double input of super key
           Product: Drivers
           Version: 2.5
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Platform_x86
          Assignee: [email protected]
          Reporter: [email protected]
        Regression: No

Created attachment 311202
--> https://bugzilla.kernel.org/attachment.cgi?id=311202&action=edit
the fix i applied

It seems that catching native ACPI events cause the super key events to be handled 2 times:

- by the lg-laptop module
- by the keyboard driver

It result in having the input sended 2 times
when pressing super key.

I don't know the input system to tell if its this...

I have wrote/applied the following patch on my system (attached). I don't know if this is good enough or the correct patch to do.

In advance, sorry for if my english is not fully understandable, this is not my mother language.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#1 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

https://bugzilla.kernel.org/show_bug.cgi?id=222161

Armin Wolf ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #1 from Armin Wolf ([email protected]) ---
Do you receive KEY_LEFTMETA two times or do you receive another keycode?

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#2 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #2 from [email protected] --- Yes,

before patching, i had key combinations with KEY_LEFTMETA sent to the system two times.
For example, i had two terminal open instead of one opening normaly using KEY_LEFTMETA+KEY_ENTER in sway.
Same for all other key strokes.
I confirmed this by adding lg_laptop to /sys/kernel/debug/dynamic_debug/control.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#3 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #3 from Armin Wolf ([email protected]) ---
Can you use "evtest" to check if both KEY_LEFTMETA come from your keyboard or if they indeed come from lg-laptop? AFAIK lg-laptop should never send KEY_LEFTMETA.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#4 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #4 from [email protected] ---

Of course,

I reverted my patch and run "evtest" on the two event source at the same time, only pressing KEY_LEFTMETA+KEY_ENTER. I indeed see some keypress on the LG WMI hotkeys side:

/dev/input/event5: LG WMI hotkeys
/dev/input/event6: AT Translated Set 2 keyboard

dmesg:

[  710.072542] LG Gram Laptop Support LGEX0820:00: Received event 130
(805437440)
[  710.348094] LG Gram Laptop Support LGEX0820:00: Received event 130
(805437441)
[  710.584279] LG Gram Laptop Support LGEX0820:00: Received event 130

(805437441)

/dev/input/event5:
./evtest /dev/input/event5
ut/event5
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0
Input device name: "LG WMI hotkeys"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 171 (KEY_CONFIG)
Event code 184 (KEY_F14)
Event code 185 (KEY_F15)
Event code 186 (KEY_F16)
Event code 191 (KEY_F21)
Event code 240 (KEY_UNKNOWN)
Event code 248 (KEY_MICMUTE)
Event code 465 (KEY_FN_ESC)
Event code 589 (KEY_CAMERA_ACCESS_TOGGLE)
Event code 701 (KEY_PERFORMANCE)
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
Event: time 1792534713.188538, type 4 (EV_MSC), code 4 (MSC_SCAN), value 30020000
Event: time 1792534713.188538, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 1
Event: time 1792534713.188538, -------------- SYN_REPORT ------------
Event: time 1792534713.188569, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 0
Event: time 1792534713.188569, -------------- SYN_REPORT ------------
Event: time 1792534713.464086, type 4 (EV_MSC), code 4 (MSC_SCAN), value 30020001
Event: time 1792534713.464086, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 1
Event: time 1792534713.464086, -------------- SYN_REPORT ------------
Event: time 1792534713.464104, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 0
Event: time 1792534713.464104, -------------- SYN_REPORT ------------
Event: time 1792534713.700293, type 4 (EV_MSC), code 4 (MSC_SCAN), value 30020001
Event: time 1792534713.700293, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 1
Event: time 1792534713.700293, -------------- SYN_REPORT ------------
Event: time 1792534713.700322, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 0
Event: time 1792534713.700322, -------------- SYN_REPORT ------------

/dev/input/event6:
./evtest /dev/input/event6
Input driver version is 1.0.1
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab83 Input device name: "AT Translated Set 2 keyboard"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 1 (KEY_ESC)
Event code 2 (KEY_1)
Event code 3 (KEY_2)
Event code 4 (KEY_3)
Event code 5 (KEY_4)
Event code 6 (KEY_5)
Event code 7 (KEY_6)
Event code 8 (KEY_7)
Event code 9 (KEY_8)
Event code 10 (KEY_9)
Event code 11 (KEY_0)
Event code 12 (KEY_MINUS)
Event code 13 (KEY_EQUAL)
Event code 14 (KEY_BACKSPACE)
Event code 15 (KEY_TAB)
Event code 16 (KEY_Q)
Event code 17 (KEY_W)
Event code 18 (KEY_E)
Event code 19 (KEY_R)
Event code 20 (KEY_T)
Event code 21 (KEY_Y)
Event code 22 (KEY_U)
Event code 23 (KEY_I)
Event code 24 (KEY_O)
Event code 25 (KEY_P)
Event code 26 (KEY_LEFTBRACE)
Event code 27 (KEY_RIGHTBRACE)
Event code 28 (KEY_ENTER)
Event code 29 (KEY_LEFTCTRL)
Event code 30 (KEY_A)
Event code 31 (KEY_S)
Event code 32 (KEY_D)
Event code 33 (KEY_F)
Event code 34 (KEY_G)
Event code 35 (KEY_H)
Event code 36 (KEY_J)
Event code 37 (KEY_K)
Event code 38 (KEY_L)
Event code 39 (KEY_SEMICOLON)
Event code 40 (KEY_APOSTROPHE)
Event code 41 (KEY_GRAVE)
Event code 42 (KEY_LEFTSHIFT)
Event code 43 (KEY_BACKSLASH)
Event code 44 (KEY_Z)
Event code 45 (KEY_X)
Event code 46 (KEY_C)
Event code 47 (KEY_V)
Event code 48 (KEY_B)
Event code 49 (KEY_N)
Event code 50 (KEY_M)
Event code 51 (KEY_COMMA)
Event code 52 (KEY_DOT)
Event code 53 (KEY_SLASH)
Event code 54 (KEY_RIGHTSHIFT)
Event code 55 (KEY_KPASTERISK)
Event code 56 (KEY_LEFTALT)
Event code 57 (KEY_SPACE)
Event code 58 (KEY_CAPSLOCK)
Event code 59 (KEY_F1)
Event code 60 (KEY_F2)
Event code 61 (KEY_F3)
Event code 62 (KEY_F4)
Event code 63 (KEY_F5)
Event code 64 (KEY_F6)
Event code 65 (KEY_F7)
Event code 66 (KEY_F8)
Event code 67 (KEY_F9)
Event code 68 (KEY_F10)
Event code 69 (KEY_NUMLOCK)
Event code 70 (KEY_SCROLLLOCK)
Event code 71 (KEY_KP7)
Event code 72 (KEY_KP8)
Event code 73 (KEY_KP9)
Event code 74 (KEY_KPMINUS)
Event code 75 (KEY_KP4)
Event code 76 (KEY_KP5)
Event code 77 (KEY_KP6)
Event code 78 (KEY_KPPLUS)
Event code 79 (KEY_KP1)
Event code 80 (KEY_KP2)
Event code 81 (KEY_KP3)
Event code 82 (KEY_KP0)
Event code 83 (KEY_KPDOT)
Event code 86 (KEY_102ND)
Event code 87 (KEY_F11)
Event code 88 (KEY_F12)
Event code 89 (KEY_RO)
Event code 90 (KEY_KATAKANA)
Event code 91 (KEY_HIRAGANA)
Event code 92 (KEY_HENKAN)
Event code 93 (KEY_KATAKANAHIRAGANA)
Event code 94 (KEY_MUHENKAN)
Event code 95 (KEY_KPJPCOMMA)
Event code 96 (KEY_KPENTER)
Event code 97 (KEY_RIGHTCTRL)
Event code 98 (KEY_KPSLASH)
Event code 99 (KEY_SYSRQ)
Event code 100 (KEY_RIGHTALT)
Event code 102 (KEY_HOME)
Event code 103 (KEY_UP)
Event code 104 (KEY_PAGEUP)
Event code 105 (KEY_LEFT)
Event code 106 (KEY_RIGHT)
Event code 107 (KEY_END)
Event code 108 (KEY_DOWN)
Event code 109 (KEY_PAGEDOWN)
Event code 110 (KEY_INSERT)
Event code 111 (KEY_DELETE)
Event code 112 (KEY_MACRO)
Event code 113 (KEY_MUTE)
Event code 114 (KEY_VOLUMEDOWN)
Event code 115 (KEY_VOLUMEUP)
Event code 116 (KEY_POWER)
Event code 117 (KEY_KPEQUAL)
Event code 118 (KEY_KPPLUSMINUS)
Event code 119 (KEY_PAUSE)
Event code 121 (KEY_KPCOMMA)
Event code 122 (KEY_HANGEUL)
Event code 123 (KEY_HANJA)
Event code 124 (KEY_YEN)
Event code 125 (KEY_LEFTMETA)
Event code 126 (KEY_RIGHTMETA)
Event code 127 (KEY_COMPOSE)
Event code 128 (KEY_STOP)
Event code 140 (KEY_CALC)
Event code 142 (KEY_SLEEP)
Event code 143 (KEY_WAKEUP)
Event code 155 (KEY_MAIL)
Event code 156 (KEY_BOOKMARKS)
Event code 157 (KEY_COMPUTER)
Event code 158 (KEY_BACK)
Event code 159 (KEY_FORWARD)
Event code 163 (KEY_NEXTSONG)
Event code 164 (KEY_PLAYPAUSE)
Event code 165 (KEY_PREVIOUSSONG)
Event code 166 (KEY_STOPCD)
Event code 172 (KEY_HOMEPAGE)
Event code 173 (KEY_REFRESH)
Event code 183 (KEY_F13)
Event code 184 (KEY_F14)
Event code 185 (KEY_F15)
Event code 186 (KEY_F16)
Event code 187 (KEY_F17)
Event code 188 (KEY_F18)
Event code 189 (KEY_F19)
Event code 190 (KEY_F20)
Event code 191 (KEY_F21)
Event code 192 (KEY_F22)
Event code 193 (KEY_F23)
Event code 194 (KEY_F24)
Event code 217 (KEY_SEARCH)
Event code 226 (KEY_MEDIA)
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Event type 17 (EV_LED)
Event code 0 (LED_NUML) state 1
Event code 1 (LED_CAPSL) state 0
Event code 2 (LED_SCROLLL) state 0
Key repeat handling:
Repeat type 20 (EV_REP)
Repeat code 0 (REP_DELAY)
Value 250
Repeat code 1 (REP_PERIOD)
Value 33
Properties:
Testing ... (interrupt to exit)
Event: time 1792534713.189414, type 4 (EV_MSC), code 4 (MSC_SCAN), value db
Event: time 1792534713.189414, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 1
Event: time 1792534713.189414, -------------- SYN_REPORT ------------
Event: time 1792534713.442128, type 4 (EV_MSC), code 4 (MSC_SCAN), value db
Event: time 1792534713.442128, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 2
Event: time 1792534713.442128, -------------- SYN_REPORT ------------
Event: time 1792534713.458047, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c
Event: time 1792534713.458047, type 1 (EV_KEY), code 28 (KEY_ENTER), value 1
Event: time 1792534713.458047, -------------- SYN_REPORT ------------
Event: time 1792534713.541971, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c
Event: time 1792534713.541971, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1792534713.541971, -------------- SYN_REPORT ------------
Event: time 1792534713.699964, type 4 (EV_MSC), code 4 (MSC_SCAN), value db
Event: time 1792534713.699964, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 0

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#5 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #5 from Armin Wolf ([email protected]) ---
I think the second report of KEY_LEFTMETA with the value 2 is the root cause for your issues. I am quite sure that the keyboard controller should not send such a key event

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#6 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #6 from Armin Wolf ([email protected]) --- Alright, i said something false. The docs state:

"Some hardware send events when a key is repeated. These events have a value of 2."

So for some reason your keyboard auto-repeats the super key.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#8 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #8 from [email protected] ---

Quoted 1 line

Maybe you can zry to disable the auto repeat feature of the keyboard?

I don't know such feature.
I should i have precised that the bug appear in 7.3. I don't see any change that could have trigger this bug on my keyboard driver.

No problem in 7.2.11 neither all minor (i apply every release). I verified on 7.2.11 and 7.1.2 to be sure (with "evtest"), events with a value of 2 where present.
For me, those event are totaly normal.

What is not normal is having keypress on the LG WMI hotkeys part, which i did not see on the 7.1.2 and 7.2.11.

Quoted 1 line

So for some reason your keyboard auto-repeats the super key.

Following what i said before, this does not explain why my fix make my keyboard act normaly again.

Tell me if i am wrong, but i don't think my keyboard "auto-repeats", it just tell that the key is still pressed.
The test i ran are just confirming me what i think in the first place..

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#10 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

The Linux kernel's regression tracker (Thorsten Leemhuis) ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #9 from The Linux kernel's regression tracker (Thorsten Leemhuis) ([email protected]) ---

Quoted 1 line

I should i have precised that the bug appear in 7.3.

Just for the record: if Armin can't figure out what's causing this by looking at the code or the behaviour, please perform a git bisection
(https://docs.kernel.org/admin-guide/verify-bugs-and-bisect-regressions.html )

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#11 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #10 from Armin Wolf ([email protected]) ---
If the patch somehow fixes the problem, then personally i would apply it either way. Are you OK with that, Helian?

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#12 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #11 from [email protected] ---
Today, I performed a git bisection between 7.2.11 and 7.3 and obtained the following:

ad873d6340957c1ed5a271eb7ebc8b873c42ba9d is the first 'bad' commit.

Also, maybe this will help, my laptop is a lg gram 15Z80T-G.AU8BF.

Quoted 2 lines

If the patch somehow fixes the problem, then personally i would apply it either way. Are you OK with that, Helian?

I am totaly OK with that.
Thanks for the time you take on this !

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#13 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #12 from Armin Wolf ([email protected]) ---
Alright, i still want to try one last thing: please share the output of acpidump. I want to see what the firmware is doing once we reroute WMI events.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#14 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #13 from [email protected] --- Created attachment 311361
--> https://bugzilla.kernel.org/attachment.cgi?id=311361&action=edit
acpidump

Here is my acpidump.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#15 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #14 from Armin Wolf ([email protected]) --- Created attachment 311375
--> https://bugzilla.kernel.org/attachment.cgi?id=311375&action=edit
Modified patch

I modified your patch a tiny bit, can you take a look and tell me if you are OK with the changes? If yes then i can send the patch upstream.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#16 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #15 from Armin Wolf ([email protected]) ---
Regarding the ACPI tables: Your device always dispatches ACPI events to the native device handled by lg-laptop, so the offending patch enables hotkey events on your device for the first time.

I suspect that somehow userspace becomes confused when receiving KEY_UNKNOWN, so you patch should be enough.

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#17 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #16 from [email protected] ---

Quoted 2 lines

I modified your patch a tiny bit, can you take a look and tell me if you are OK with the changes? If yes then i can send the patch upstream.

I am OK with the changes.

Thanks for the explanations!

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.
#19 lore raw

[Bug 222161] platform/x86: lg-laptop: Double input of super key

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=222161

--- Comment #18 from [email protected] ---

Quoted 1 line

Ok, i send the patch upstream (with some cosmetic changes).

Thanks!

Has anyone had a chance to review it?

Signature · 4 lines
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.