X86 platform drivers
 help / color / mirror / Atom feed
* [Bug 221383] New: ideapad_laptop: Fn hotkeys stop emitting after s2idle resume on IdeaPad Slim 3   14ARP10 (Ryzen 7735HS)
@ 2026-04-18 13:38 bugzilla-daemon
  2026-04-18 13:39 ` [Bug 221383] " bugzilla-daemon
                   ` (58 more replies)
  0 siblings, 59 replies; 60+ messages in thread
From: bugzilla-daemon @ 2026-04-18 13:38 UTC (permalink / raw)
  To: platform-driver-x86

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

            Bug ID: 221383
           Summary: ideapad_laptop: Fn hotkeys stop emitting after s2idle
                    resume on IdeaPad Slim 3   14ARP10 (Ryzen 7735HS)
           Product: Drivers
           Version: 2.5
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Platform_x86
          Assignee: drivers_platform_x86@kernel-bugs.osdl.org
          Reporter: sindrehenriksen93@gmail.com
        Regression: No

Created attachment 309895
  --> https://bugzilla.kernel.org/attachment.cgi?id=309895&action=edit
dmesg after cold boot (working state)

Kernel version: 6.17.0-19-generic (Ubuntu 24.04.4 LTS HWE; upstream 6.17.13)

Hardware:
  Vendor:  LENOVO
  Product: IdeaPad Slim 3 14ARP10 (MTM 83K6 / board LNVNB161216)
  CPU:     AMD Ryzen 7 7735HS (Rembrandt)
  BIOS:    QBCN29WW (2026-01-15, latest available from Lenovo)

Distribution: Ubuntu 24.04.4 LTS

Loaded drivers: ideapad_laptop, lenovo_wmi_other, lenovo_wmi_helpers,
                lenovo_wmi_capdata01, lenovo_wmi_hotkey_utilities,
                sparse_keymap, platform_profile

Background:
  BIOS HotKey Mode is ON — pressing an Fx key produces the media action
  by default; Fn+Fx gives the raw function key. In normal operation,
  the media keys are emitted on multiple input devices depending on the
  function:
    * /dev/input/event2 ("AT Translated Set 2 keyboard"):
        KEY_VOLUMEUP / KEY_VOLUMEDOWN / KEY_MUTE
    * /dev/input/event5 ("Video Bus"):
        KEY_BRIGHTNESSUP / KEY_BRIGHTNESSDOWN
    * /dev/input/event6 ("Ideapad extra buttons"):
        KEY_F20 (mic mute, scancode 0x08), KEY_RFKILL (airplane, 0x0d),
        touchpad toggle, etc.

Steps to reproduce:
  1. Boot. Verify media keys work — all of brightness, volume, mic-mute,
     airplane-mode change system state when their Fx key is pressed.
  2. Suspend (s2idle). Resume after a longer idle period (short
     suspend/resume cycles do not reliably trigger the bug; in my
     experience ~15 min or more does).
  3. Press any media key.

Expected:
  System reacts as before suspend. KEY_* events are emitted on their
  respective input devices.

Actual:
  No media key does anything. Diagnostics:
    * evtest --grab /dev/input/event6: zero KEY events for any Fx press
      (confirmed via exclusive grab).
    * evtest /dev/input/event2: pressing what should be the volume-up
      key (Fx with the volume-up label) emits plain KEY_F3 (scancode
      0x3f). KEY_F1..KEY_F12 emit for the corresponding Fx positions.
      The EC is no longer translating Fx to media keycodes; it is
      forwarding raw scancodes to i8042.
  The Fn modifier is effectively a dead key — Fn+Fx and Fx produce the
  same output.

dmesg observations in broken state (attached):
  * "atkbd serio0: Failed to deactivate keyboard on isa0060/serio0"
    appears on each suspend.
  * ACPI BIOS errors at boot: AE_NOT_FOUND [\_SB.PCI0.GPP7.DEV0],
    AE_ALREADY_EXISTS [\_TZ.TZ01] (possibly unrelated, included for
    completeness).

Does not resolve the issue (all tested on this machine):
  - Writing 0 or 1 to
    /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/fn_lock
    (the fn-lock LED toggles, but event emission is unchanged).
  - rmmod/modprobe of ideapad_laptop and lenovo_wmi_hotkey_utilities.
  - Kernel parameters reported as failing by other affected users on
    the same hardware family: i8042.reset=1, i8042.nopnp,
    acpi.prefer_microsoft_guid=1.
  - Latest available BIOS (QBCN29WW, 2026-01-15).

Resolves: reboot. EC state re-syncs on cold start and media keys work
again until the next s2idle resume past the threshold.

Related user reports on the IdeaPad Slim 3 Ryzen family with the same
symptom:
  https://bbs.archlinux.org/viewtopic.php?id=310124
 
https://discussion.fedoraproject.org/t/fn-keys-stop-working-after-sleep-on-lenovo-ideapad-slim-3/95528
  https://bugs.launchpad.net/ubuntu/+bug/2114256

Attached:
  - fn-broken-dmesg.txt  — dmesg spanning broken (post-resume) state
  - fn-working-dmesg.txt — dmesg after cold boot (working state)
  - fn_lock-working.txt  — fn_lock value in working state
  - evtest-working.txt   — evtest on /dev/input/event6 showing mic-mute
                           (KEY_F20) and airplane (KEY_RFKILL) emitting
                           correctly
  - acpidump.bin         — ACPI tables (acpica-tools acpidump)

Happy to test patches, bisect, or provide additional logs (e.g.
working-state captures on event2/event5, dynamic_debug traces of
ideapad_laptop suspend/resume paths, dmesg with `no_console_suspend`).
Let me know what's most useful.

-- 
You may reply to this email to add a comment.

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

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2026-04-28 17:41 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-18 13:38 [Bug 221383] New: ideapad_laptop: Fn hotkeys stop emitting after s2idle resume on IdeaPad Slim 3 14ARP10 (Ryzen 7735HS) bugzilla-daemon
2026-04-18 13:39 ` [Bug 221383] " bugzilla-daemon
2026-04-18 13:39 ` bugzilla-daemon
2026-04-18 13:40 ` bugzilla-daemon
2026-04-18 13:40 ` bugzilla-daemon
2026-04-18 17:51 ` bugzilla-daemon
2026-04-20 20:00 ` bugzilla-daemon
2026-04-20 20:02 ` bugzilla-daemon
2026-04-20 20:02 ` bugzilla-daemon
2026-04-21 14:51 ` bugzilla-daemon
2026-04-21 15:40 ` bugzilla-daemon
2026-04-23  2:26 ` bugzilla-daemon
2026-04-23  2:34 ` bugzilla-daemon
2026-04-23  2:48 ` bugzilla-daemon
2026-04-23  2:57 ` bugzilla-daemon
2026-04-23  4:15 ` bugzilla-daemon
2026-04-23  4:16 ` bugzilla-daemon
2026-04-23  4:18 ` bugzilla-daemon
2026-04-23  4:19 ` bugzilla-daemon
2026-04-23  4:19 ` bugzilla-daemon
2026-04-23  4:20 ` bugzilla-daemon
2026-04-23  4:22 ` bugzilla-daemon
2026-04-23  4:24 ` bugzilla-daemon
2026-04-23 16:30 ` bugzilla-daemon
2026-04-23 19:33 ` bugzilla-daemon
2026-04-23 19:45 ` bugzilla-daemon
2026-04-24  4:03 ` bugzilla-daemon
2026-04-24 13:39 ` bugzilla-daemon
2026-04-24 20:19 ` bugzilla-daemon
2026-04-24 21:15 ` bugzilla-daemon
2026-04-24 21:21 ` bugzilla-daemon
2026-04-24 21:26 ` bugzilla-daemon
2026-04-24 21:50 ` bugzilla-daemon
2026-04-25  0:01 ` bugzilla-daemon
2026-04-25  0:45 ` bugzilla-daemon
2026-04-25  0:56 ` bugzilla-daemon
2026-04-25  1:06 ` bugzilla-daemon
2026-04-25  2:29 ` bugzilla-daemon
2026-04-25 15:32 ` bugzilla-daemon
2026-04-25 16:32 ` bugzilla-daemon
2026-04-25 17:13 ` bugzilla-daemon
2026-04-25 18:59 ` bugzilla-daemon
2026-04-26  2:59 ` bugzilla-daemon
2026-04-27 19:46 ` bugzilla-daemon
2026-04-27 19:55 ` bugzilla-daemon
2026-04-27 20:31 ` bugzilla-daemon
2026-04-28  0:28 ` bugzilla-daemon
2026-04-28  0:34 ` bugzilla-daemon
2026-04-28  1:20 ` bugzilla-daemon
2026-04-28  1:37 ` bugzilla-daemon
2026-04-28  1:41 ` bugzilla-daemon
2026-04-28  2:19 ` bugzilla-daemon
2026-04-28  2:25 ` bugzilla-daemon
2026-04-28  4:38 ` bugzilla-daemon
2026-04-28  4:39 ` bugzilla-daemon
2026-04-28 14:05 ` bugzilla-daemon
2026-04-28 14:54 ` bugzilla-daemon
2026-04-28 15:00 ` bugzilla-daemon
2026-04-28 15:21 ` bugzilla-daemon
2026-04-28 17:41 ` bugzilla-daemon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox