From: bugzilla-daemon@kernel.org
To: platform-driver-x86@vger.kernel.org
Subject: [Bug 221238] New: lg-laptop: Spurious ACK and dropped keystrokes due to unprotected i8042 port access
Date: Sun, 15 Mar 2026 11:15:31 +0000 [thread overview]
Message-ID: <bug-221238-215701@https.bugzilla.kernel.org/> (raw)
https://bugzilla.kernel.org/show_bug.cgi?id=221238
Bug ID: 221238
Summary: lg-laptop: Spurious ACK and dropped keystrokes due to
unprotected i8042 port access
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: alfonso.garcia.frey@gmail.com
Regression: No
The lg-laptop driver (drivers/platform/x86/lg-laptop.c) communicates with the
LG embedded controller using raw inb()/outb() on i8042 ports 0x60/0x64,
completely bypassing the kernel's i8042 driver and its locking (i8042_mutex /
i8042_lock). This causes a race condition between lg-laptop EC transactions and
the atkbd driver's interrupt handling, resulting in:
1. atkbd serio0: Spurious ACK on isa0060/serio0. Some program might be trying
to access hardware directly.
2. Intermittent key drops — keys (particularly on the left side of the
keyboard matrix: s, w, left Ctrl) stop responding for several seconds.
3. Occasional phantom or misinterpreted scancodes.
The problem has worsened significantly since battery_hook_register() was added
to the driver (commit 822933b1b29), which causes periodic EC access in the
background on every battery status poll — independent of any user Fn-key
interaction.
Steps to reproduce:
1. Boot any LG Gram laptop (tested on 16Z90Q-G.AD76F, 2022 model) with the
lg_laptop module loaded.
2. Use the keyboard normally for 10-30 minutes.
3. Observe dmesg | grep "Spurious ACK" — messages accumulate over time.
4. Keys intermittently stop registering input.
Frequency:
- Kernel 6.8.0-101 (with battery_hook_register): ~28 spurious ACKs/day,
frequent key drops
- Kernel 5.15.0-171 (without battery hook): ~7 spurious ACKs/day, less
frequent key drops
- Blacklisting lg_laptop: 0 spurious ACKs, no key drops (confirms the driver
as the cause)
Hardware:
- LG Gram 16Z90Q-G.AD76F (2022)
- Built-in PS/2 keyboard: AT Translated Set 2 keyboard (i8042,
isa0060/serio0)
Affected kernel versions:
- 5.15.0-171-generic (Ubuntu/Mint)
- 6.8.0-101-generic (Ubuntu HWE)
- Likely all versions since driver inclusion (4.14+), worsened after battery
hook addition
Proposed fix:
Wrap the raw port I/O sequences in lg-laptop.c with i8042_lock_chip() /
i8042_unlock_chip() to serialize access with the kernel's i8042 interrupt
handler:
#include <linux/i8042.h>
static int lg_ec_read(unsigned char addr, unsigned char *val)
{
int ret;
ret = i8042_lock_chip();
if (ret)
return ret;
/* existing inb/outb sequence */
i8042_unlock_chip();
return 0;
}
This is the same approach used by other drivers that need direct EC port
access. All functionality is preserved.
Current workaround:
echo "blacklist lg_laptop" | sudo tee
/etc/modprobe.d/blacklist-lg-laptop.conf
This eliminates the issue but disables keyboard backlight, fan mode, battery
care, and Fn-key hotkey support.
--
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-03-15 11:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-15 11:15 bugzilla-daemon [this message]
2026-03-15 11:18 ` [Bug 221238] lg-laptop: Spurious ACK and dropped keystrokes due to unprotected i8042 port access bugzilla-daemon
2026-03-15 11:29 ` [Bug 221238] lg-laptop: Spurious ACK and dropped keystrokes caused by ACPI method calls conflicting with i8042 driver bugzilla-daemon
2026-03-15 11:34 ` bugzilla-daemon
2026-03-15 13:56 ` bugzilla-daemon
2026-03-15 13:58 ` bugzilla-daemon
2026-03-15 14:51 ` bugzilla-daemon
2026-03-15 21:07 ` bugzilla-daemon
2026-03-19 4:04 ` bugzilla-daemon
2026-03-19 13:01 ` bugzilla-daemon
2026-03-25 23:18 ` 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-221238-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.