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.
next 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.