I have found a working fix for the internal keyboard on the ASUS
Vivobook 15 M1502XA (Ryzen 7 7840HS).
Root cause:
The DSDT declares the keyboard IRQ as Edge, ActiveHigh for device PS2K (_CID
PNP0303), while the MADT declares IRQ 1 as low edge. This conflict causes IRQ 1
to never be delivered, and atkbd fails with Failed to enable keyboard.
What I tested:
A DMI quirk in irq1_edge_low_force_override[] did not help (the
patch did not make it into the compiled kernel, and even when it did,
the issue persisted).
Overriding MADT via initrd (changing IRQ 1 from low edge to high
edge) also did not help. The kernel accepted the override (dmesg showed
high edge), but /proc/interrupts still showed 0 for IRQ 1.
The fix that worked:
I overrode DSDT via initrd and changed the keyboard interrupt polarity from
ActiveHigh to ActiveLow for PS2K:
asl
Interrupt (ResourceConsumer, Edge, ActiveLow, Shared, ,, )
I also increased the DSDT OEM Revision from 0x01072009 to 0x01072010 so
the kernel would accept the override.
Result:
After booting with the overridden DSDT:
dmesg shows ACPI: Table Upgrade: override [DSDT-_ASUS_-Notebook]
atkbd no longer fails: input: AT Translated Set 2 keyboard is
registered without errors
/proc/interrupts now shows a growing counter for IRQ 1 (1-edge
i8042)
The internal keyboard works.
Conclusion:
For this model, a simple DMI quirk or MADT override is insufficient. The
correct fix is to align the DSDT interrupt polarity with the MADT (or vice
versa). A permanent solution would be a DSDT override in the kernel or a BIOS
update from ASUS. I can provide the modified DSDT and full dmesg output if
needed.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2170417
Title:
ASUS Vivobook 15 M1502XA (Ryzen 7 7840HS): internal keyboard dead in
Linux, works in UEFI/GRUB; IRQ1 override quirk needed?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170417/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs