All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@kernel.org
To: platform-driver-x86@vger.kernel.org
Subject: [Bug 221419] New: ideapad-laptop: brightness keys require continuous VPC polling to function on IdeaPad 3 15IIL05 (BIOS EMCN60WW)
Date: Sun, 26 Apr 2026 18:00:27 +0000	[thread overview]
Message-ID: <bug-221419-215701@https.bugzilla.kernel.org/> (raw)

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

            Bug ID: 221419
           Summary: ideapad-laptop: brightness keys require continuous VPC
                    polling to function on IdeaPad 3 15IIL05 (BIOS
                    EMCN60WW)
           Product: Drivers
           Version: 2.5
          Hardware: Intel
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Platform_x86
          Assignee: drivers_platform_x86@kernel-bugs.osdl.org
          Reporter: ladha979@gmail.com
        Regression: No

Hardware: Lenovo IdeaPad 3 15IIL05 (Type 81WE), BIOS version EMCN60WW
CPU: Intel Core i5-1035G1 (Ice Lake, 10th Gen)
Kernel: 7.0.1-1-cachyos (based on mainline)
Distribution: CachyOS

Summary:
Brightness keys do not work unless something continuously reads a VPC
register via the ideapad-laptop debugfs interface. This is distinct from
bug 214899, where the fix was incorrect _REG ordering causing EC register
0xA3 to not be set to 0x86. On this machine, 0xA3 is correctly set to 0x86
at boot, confirming the 6.2 ECDT fix is applied, yet the brightness keys
still do not work.

Investigation:
- acpi_listen shows no events when brightness keys are pressed
- evtest shows no events on any input device (AT Translated Set 2 keyboard,
  Video Bus, ideapad extra buttons, or any other device)
- DSDT correctly defines _Q11 (brightness up) and _Q12 (brightness down)
  EC query methods which notify GFX0.DD1F with 0x87/0x86 respectively
- EC register 0xA3 reads as 0x86 (correct value, confirming bug 214899
  fix is applied)
- modprobe -r ideapad_laptop makes no difference — keys remain silent
- modprobe -r lenovo_wmi_hotkey_utilities makes no difference

Root cause identified:
The EC queues brightness key events internally but never fires the SCI
interrupt to notify Linux. However, when something continuously reads
VPC registers via /sys/kernel/debug/ideapad/status (which calls
read_ec_data with VPCCMD_R_BL among others), the brightness keys start
working — the EC flushes its queued events on each VPC read.

Specifically:
- Running: watch -n 1 cat /sys/kernel/debug/ideapad/status
  causes brightness keys to work, with up to ~1 second delay
- Stopping the watch command causes keys to stop working immediately
- Writing 0x86 to EC register 0xA3 via ec0/io flushes pending keypresses
  but does not permanently arm the keys
- The effect is identical to bug 214899's symptom but has a different
  root cause — the EC is not firing SCI interrupts for these specific
  keys, rather than _REG not setting the correct OS type

The ideapad-laptop driver has no polling fallback for this case. A
periodic poll of VPCCMD_R_BL or similar VPC register would serve as a
workaround, but a proper fix would investigate why the EC does not assert
SCI for brightness key events on this specific firmware version.

Workaround:
A systemd service continuously reading /sys/kernel/debug/ideapad/status
every 1-5 seconds restores brightness key functionality.

Related bug: https://bugzilla.kernel.org/show_bug.cgi?id=214899

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

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

             reply	other threads:[~2026-04-26 18:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-26 18:00 bugzilla-daemon [this message]
2026-05-03 18:19 ` [Bug 221419] ideapad-laptop: brightness keys require continuous VPC polling to function on IdeaPad 3 15IIL05 (BIOS EMCN60WW) bugzilla-daemon
2026-05-03 18:23 ` bugzilla-daemon
2026-05-03 18:25 ` bugzilla-daemon
2026-05-08 20:16 ` bugzilla-daemon
2026-05-09 10:48 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-221419-215701@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.