Public bug reported:
The internal PS/2 keyboard of a MECHREVO WUJIE Series laptop stops
working after every s2idle resume. The kernel logs:
atkbd serio0: Failed to deactivate keyboard on isa0060/serio0
atkbd serio0: Failed to enable keyboard on isa0060/serio0
The keyboard works again after a full reboot. The same failure happens
on lid-close/open and on `systemctl suspend` (s2idle).
Machine
-------
DMI_SYS_VENDOR: MECHREVO
DMI_PRODUCT_NAME: WUJIE Series
DMI_PRODUCT_VERSION: Standard
DMI_BOARD_NAME: WUJIE Series-X4HP4NAL
DMI_BOARD_VENDOR: MECHREVO
DMI_CHASSIS_TYPE: 10 (Notebook)
BIOS: N.1.06MRO07 (American Megatrends International)
EC firmware: 1.18
CPU: AMD Ryzen 7 H 255 w/ Radeon 780M
Kernel: 7.0.0-38-generic (Ubuntu 26.04)
Suspend mode: s2idle only ([s2idle] in /sys/power/mem_sleep)
Kernel command line: i8042.reset i8042.nomux acpi_osi=Linux
Observed logs
-------------
Oct 19 15:50:41 kernel: PM: suspend exit
Oct 19 15:50:41 kernel: atkbd serio0: Failed to deactivate keyboard on
isa0060/serio0
Oct 19 15:50:42 kernel: atkbd serio0: Failed to enable keyboard on
isa0060/serio0
Oct 19 15:50:42 kernel: atkbd serio0: Failed to enable keyboard on
isa0060/serio0
The same messages occur after many earlier resumes (Sep/Oct logs).
Analysis
--------
atkbd_reconnect() runs at resume and calls atkbd_probe(). The end of
atkbd_probe() calls atkbd_deactivate(), which sends ATKBD_CMD_RESET_DIS (0xF6).
This EC does not acknowledge that command, and the subsequent atkbd_activate()
(ATKBD_CMD_ENABLE, 0xF4) also fails. The driver returns success from
atkbd_reconnect(), leaving the keyboard disabled with no automatic recovery.
The kernel already carries atkbd_deactivate_fixup DMI quirks for several
laptops whose ECs have the same problem (HONOR, Xiaomi, Lenovo, LG).
MECHREVO is not covered. atkbd_deactivate_fixup sets
atkbd_skip_deactivate = true, so atkbd_probe() does not send the broken
0xF6 command. The initial boot probe works on this machine, so skipping
the deactivate step during probe should be harmless.
Suggested DMI entry (in atkbd_dmi_quirk_table):
{
/* MECHREVO WUJIE Series */
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "MECHREVO"),
DMI_MATCH(DMI_PRODUCT_NAME, "WUJIE Series"),
},
.callback = atkbd_deactivate_fixup,
},
The board name is "WUJIE Series-X4HP4NAL"; matching DMI_BOARD_NAME may
be safer if the product name is shared by models with different EC
firmware.
Userspace workaround currently in use
--------------------------------------
A systemd-sleep hook detaches atkbd from serio0 before suspend and re-attaches
it after resume, then restarts keyd:
pre: echo -n serio0 > /sys/bus/serio/drivers/atkbd/unbind
post: echo -n serio0 > /sys/bus/serio/drivers/atkbd/bind
systemctl restart keyd.service
This avoids the broken atkbd_reconnect() path and restores the keyboard.
Without it, the keyboard remains dead until reboot.
Tested kernels
--------------
7.0.0-38-generic (Ubuntu 26.04), s2idle. Not tested with S3 (not supported by
this firmware).
Additional information and the full kernel log are available from the
reporter.
** Affects: linux (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2171389
Title:
atkbd: keyboard disabled after s2idle resume on MECHREVO WUJIE Series
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2171389/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs