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

            Bug ID: 221582
           Summary: ACPI / Input: Keyboard lag and key repeating on OSIO
                    FocusLine laptops due to wrong IRQ 1 polarity
                    (ActiveLow/Shared)
           Product: ACPI
           Version: 2.5
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: BIOS
          Assignee: [email protected]
          Reporter: [email protected]
        Regression: No

Created attachment 310202
  --> https://bugzilla.kernel.org/attachment.cgi?id=310202&action=edit
Original untouched DSDT binary from ICL OSIO laptop

Hardware Environment:
- Manufacturer: ICL Techno
- Product Name: OSIO FocusLine (Model: F150a-004)
- Version: Version 1.0
- OS/Kernel: Arch Linux (CachyOS). The issue is persistent across all modern
Linux kernels (from 6.1 up to latest 6.12+).

Problem Description:
The built-in PS/2 keyboard on OSIO FocusLine laptops suffers from severe
latency, ghosting, and infinite key repeating (stuck keys, Caps Lock
permanently toggled) immediately after booting into the operating system. The
keyboard works flawlessly inside the BIOS setup menu and inside GRUB /
systemd-boot, but breaks completely as soon as the Linux kernel initializes
ACPI management.

Root Cause:
The issue was exposed in kernels 6.0+ when PNPACPI resource parsing became
stricter. In the factory ACPI DSDT table of this laptop, the PS/2 keyboard
(Device PS2K / PNP0303) has its interrupt hardcoded with wrong polarity and
sharing attributes:
    IRQ (Edge, ActiveLow, Shared, ) {1}

According to the IBM PC standard, standard PS/2 legacy keyboards must use
ActiveHigh and Exclusive attributes for IRQ 1. Because of this factory BIOS
typo, the kernel triggers an interrupt storm or incorrect signal inversion on
the keyboard controller line.

Workarounds tried:
1. Booting with the "pnpacpi=off" kernel parameter fully fixes the keyboard
lag, but it completely disables the I2C touchpad, battery status indicators,
and general power management, making the laptop unusable on battery.
2. Decompiling the factory DSDT, manually patching the keyboard IRQ line to
standard specifications:
    IRQ (Edge, ActiveHigh, Exclusive, ) {1}
and overriding the DSDT via initrd completely fixes both the keyboard lag and
keeps the touchpad/power management working perfectly without any side effects.

Request:
Please add a DMI quirk (override) for "ICL Techno / OSIO FocusLine" in
drivers/input/serio/i8042-x86ia64io.h (or the appropriate ACPI/PNP layer) to
force ActiveHigh/Exclusive override for IRQ 1, so users do not have to rely on
manual DSDT patching or breaking their systems with pnpacpi=off.

Additional i8042 dmesg output:
[    0.723769] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
[    0.723772] i8042: PNP: PS/2 appears to have AUX port disabled, if this is
incorrect please boot with i8042.nopnp
[    0.727109] serio: i8042 KBD port at 0x60,0x64 irq 1
[    0.736096] input: AT Translated Set 2 keyboard as
/devices/platform/i8042/serio0/input/input4

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

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

_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to