Bug 216118

Summary: Laptop's built-in keyboard doesn't work on Asus Zenbook S 13 OLED 2022
Product: Drivers Reporter: XiaoYan Li (lxy.lixiaoyan)
Component: Input DevicesAssignee: drivers_input-devices
Status: RESOLVED CODE_FIX    
Severity: normal CC: alexwriter2003, alvin.zhuge, kumarprabhakar2121, mario.limonciello
Priority: P1    
Hardware: AMD   
OS: Linux   
Kernel Version: 5.18.3 Subsystem:
Regression: No Bisected commit-id:
Attachments: output of libinput list-devices
content of /proc/bus/input/devices
output of lsmod
OUTPUT OF : libinput list-devices

Description XiaoYan Li 2022-06-12 13:53:43 UTC
Created attachment 301158 [details]
output of libinput list-devices
Comment 1 XiaoYan Li 2022-06-12 14:03:17 UTC
`dmesg` with `i8042.debug`:

```
[    3.326806] i8042: PNP: PS/2 Controller [PNP0303:KBC0] at 0x60,0x64 irq 1
[    3.326808] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
[    3.326905] i8042: [0] 20 -> i8042 (command)
[    3.327578] i8042: [0] 65 <- i8042 (return)
[    3.327639] i8042: [0] 20 -> i8042 (command)
[    3.328012] i8042: [0] 65 <- i8042 (return)
[    3.328025] i8042: [0] 60 -> i8042 (command)
[    3.328692] i8042: [0] 74 -> i8042 (parameter)
[    3.328910] i8042: [0] 60 -> i8042 (command)
[    3.329039] i8042: [0] 65 -> i8042 (parameter)
[    3.329043] serio: i8042 KBD port at 0x60,0x64 irq 1
[    3.336512] i8042: [3] f2 -> i8042 (kbd-data)
[    3.539618] i8042: [64] ed -> i8042 (kbd-data)
[    3.746195] i8042: [126] 60 -> i8042 (command)
[    3.746506] i8042: [126] 64 -> i8042 (parameter)
[    3.746739] i8042: [126] 60 -> i8042 (command)
[    3.746860] i8042: [126] 65 -> i8042 (parameter)
[    3.746875] i8042: [126] fa <- i8042 (interrupt, 0, 0)
[    3.746889] i8042: [126] Interrupt 1, without any data
```

`dmesg` with `i8042.debug`, `i8042.nopnp` and `i8042.dumbkbd`:

```
[    3.334797] i8042: [0] 20 -> i8042 (command)
[    3.335528] i8042: [0] 65 <- i8042 (return)
[    3.335588] i8042: [0] 20 -> i8042 (command)
[    3.336310] i8042: [1] 65 <- i8042 (return)
[    3.336322] i8042: [1] 60 -> i8042 (command)
[    3.336631] i8042: [1] 74 -> i8042 (parameter)
[    3.336768] i8042: [1] d3 -> i8042 (command)
[    3.336896] i8042: [1] 5a -> i8042 (parameter)
[    3.337033] i8042: [1] 5a <- i8042 (return)
[    3.337038] i8042: [1] a7 -> i8042 (command)
[    3.337162] i8042: [1] 20 -> i8042 (command)
[    3.337474] i8042: [1] 74 <- i8042 (return)
[    3.337479] i8042: [1] a8 -> i8042 (command)
[    3.338021] i8042: [1] 20 -> i8042 (command)
[    3.338333] i8042: [1] 54 <- i8042 (return)
[    3.338365] i8042: [1] 60 -> i8042 (command)
[    3.338911] i8042: [1] 56 -> i8042 (parameter)
[    3.339095] i8042: [1] d3 -> i8042 (command)
[    3.339225] i8042: [2] a5 -> i8042 (parameter)
[    3.612694] i8042: [84]      -- i8042 (aux irq test timeout)
[    3.612774] i8042: [84] a5 <- i8042 (flush, aux)
[    3.612788] i8042: [84] 60 -> i8042 (command)
[    3.613283] i8042: [84] 74 -> i8042 (parameter)
[    3.613483] i8042: [84] 60 -> i8042 (command)
[    3.613610] i8042: [84] 65 -> i8042 (parameter)
[    3.613616] serio: i8042 KBD port at 0x60,0x64 irq 1
[    3.621824] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
```

Both of them don't work properly.
Comment 2 XiaoYan Li 2022-06-12 14:09:45 UTC
Created attachment 301159 [details]
content of /proc/bus/input/devices
Comment 3 XiaoYan Li 2022-06-12 14:11:06 UTC
Created attachment 301160 [details]
output of lsmod
Comment 4 XiaoYan Li 2022-06-12 14:22:08 UTC
With `i8042.dumbkbd`, there seem to have some interrupts but with no data. After typing the keyboard, there are lots of `interrupt 1, without any data` logs in the output of `dmesg`.
Comment 5 Prabhakar Kumar 2022-06-21 04:47:37 UTC
Created attachment 301235 [details]
OUTPUT OF : libinput list-devices

Device:           Video Bus
Kernel:           /dev/input/event6
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Power Button
Kernel:           /dev/input/event0
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Lid Switch
Kernel:           /dev/input/event1
Group:            3
Seat:             seat0, default
Capabilities:     switch
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           USB2.0 HD UVC WebCam: USB2.0 HD
Kernel:           /dev/input/event4
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           SZH usb keyboard
Kernel:           /dev/input/event11
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           SZH usb keyboard Consumer Control
Kernel:           /dev/input/event12
Group:            5
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           SZH usb keyboard System Control
Kernel:           /dev/input/event13
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           ASUE120B:00 04F3:31C0 Mouse
Kernel:           /dev/input/event3
Group:            6
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   *button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           ASUE120B:00 04F3:31C0 Touchpad
Kernel:           /dev/input/event5
Group:            6
Seat:             seat0, default
Size:             125x72mm
Capabilities:     pointer gesture
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           Asus WMI hotkeys
Kernel:           /dev/input/event2
Group:            7
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a
Comment 6 Mario Limonciello (AMD) 2022-07-11 23:36:02 UTC
Is this a Rembrandt system?  If so I would expect the general solution Chuanhong 
 is making for https://lore.kernel.org/linux-acpi/20220630022317.15734-1-gch981213@gmail.com/ to fix this too.
Comment 7 Mario Limonciello (AMD) 2022-07-12 02:22:13 UTC
Here is the v6 of that patch: https://lore.kernel.org/linux-acpi/20220712020058.90374-1-gch981213@gmail.com/T/#u

Please have a try and report back.
Comment 8 XiaoYan Li 2022-07-18 03:43:10 UTC
Yes, this patch does fix it.
Comment 9 Alvin Zhu 2022-10-03 04:58:05 UTC
(In reply to Mario Limonciello (AMD) from comment #7)
> Here is the v6 of that patch:
> https://lore.kernel.org/linux-acpi/20220712020058.90374-1-gch981213@gmail.
> com/T/#u
> 
> Please have a try and report back.

This patch broke my laptop's built-in keyboard. My laptop is a GPD Win Max2 with AMD 6800U.

After upgrading kernel 5.19.10 from 5.19.9, the built-in keyboard of GPD Win Max2 does not work.
 
I revert the commit(37c81d9f1d1b1458894454efcb857f6a769b6bc4) and rebuilt the kernel. The built-in keyboard of my laptop works again.
Comment 10 Mario Limonciello (AMD) 2022-10-03 13:52:08 UTC
Alvin -

That's really unfortunate to hear.  We may need to revisit the heuristic.  Can you please do me a favor and open a new bug report, attach the following, and CC me:
1) dmesg log from 5.19.9
2) dmesg log from 5.19.10
3) acpidump
Comment 11 alexwriter 2022-10-21 14:00:22 UTC
Re: 
`dmesg` with `i8042.debug`, `i8042.nopnp` https://writingservice.essayhave.com/ and `i8042.dumbkbd`:

```
[    3.334797] i8042: [0] 20 -> i8042 (command)
[    3.335528] i8042: [0] 65 <- i8042 (return)
[    3.335588] i8042: [0] 20 -> i8042 (command)
[    3.336310] i8042: [1] 65 <- i8042 (return)
[    3.336322] i8042: [1] 60 -> i8042 (command)
[    3.336631] i8042: [1] 74 -> i8042 (parameter)
[    3.336768] i8042: [1] d3 -> i8042 (command)
[    3.336896] i8042: [1] 5a -> i8042 (parameter)
[    3.337033] i8042: [1] 5a <- i8042 (return)
[    3.337038] i8042: [1] a7 -> i8042 (command)
[    3.337162] i8042: [1] 20 -> i8042 (command)
[    3.337474] i8042: [1] 74 <- i8042 (return)
[    3.337479] i8042: [1] a8 -> i8042 (command)
[    3.338021] i8042: [1] 20 -> i8042 (command)
[    3.338333] i8042: [1] 54 <- i8042 (return)
[    3.338365] i8042: [1] 60 -> i8042 (command)
[    3.338911] i8042: [1] 56 -> i8042 (parameter)
[    3.339095] i8042: [1] d3 -> i8042 (command)
[    3.339225] i8042: [2] a5 -> i8042 (parameter)
[    3.612694] i8042: [84]      -- i8042 (aux irq test timeout)
[    3.612774] i8042: [84] a5 <- i8042 (flush, aux)
[    3.612788] i8042: [84] 60 -> i8042 (command)
[    3.613283] i8042: [84] 74 -> i8042 (parameter)
[    3.613483] i8042: [84] 60 -> i8042 (command)
[    3.613610] i8042: [84] 65 -> i8042 (parameter)
[    3.613616] serio: i8042 KBD port at 0x60,0x64 irq 1
[    3.621824] input: AT Translated Set 2 keyboard as


1) dmesg log from 5.19.9 
2) dmesg log from 5.19.10
3) acpidump

Thanks all works