quirks: add ACPI IRQ1, kbd_deactivate, no_legacy_pm1b flags for LG Gram 16 (2025)
Phase I (a): redbear-quirks enrichment. Each flag is ported from the Linux 7.1 reference tree and applied to LG Gram 16 (2025) 16Z90TR and 16T90SP (2026 Panther Lake). The flags are generic and applicable to other OEMs too: * acpi_irq1_skip_override — Linux drivers/acpi/resource.c irq1_level_low_skip_override[] (lines 522-534). Without this the ACPI core rewrites the DSDT's ActiveLow to ActiveHigh and the i8042 keyboard IRQ stops firing on LG Gram. * kbd_deactivate_fixup — Linux drivers/input/keyboard/atkbd.c line 1913-1917. Prevents spurious keyboard ACK / dropped keys on LG hardware. * no_legacy_pm1b — Red Bear OS specific. LG firmware does not implement a separate PM1b_CNT register; tells acpid to skip the SLP_TYPb write path. Also adds a 17U70P entry (Linux matches this on board_name) and a catch-all LG Electronics entry (Linux atkbd.c matches on sys_vendor only, not product_name). Hardware-agnostic: the same flags apply to Dell, HP, Lenovo laptops with similar firmware quirks. Future Phase I work will add DMI matches for those vendors based on the Linux quirk tables. Also updates local/sources/kernel submodule pointer to 7a38664 (Phase I [patch.crates-io] for redox_syscall).
This commit is contained in:
@@ -51,16 +51,55 @@ match.board_name = "X570 AORUS MASTER"
|
||||
# match.product_name = "Example Model"
|
||||
|
||||
# LG Gram 16 (2025) / Intel Arrow Lake-H. Modern Standby (S0ix) is
|
||||
# preferred over S3. Disable legacy ACPI S5 reset path that conflicts
|
||||
# with the LG firmware's Modern Standby implementation.
|
||||
# preferred over S3 (the firmware does not advertise \_S3 at all on
|
||||
# this model; all sleep goes through s2idle). Disable the legacy
|
||||
# ACPI S5 reset path that conflicts with the LG firmware's Modern
|
||||
# Standby implementation.
|
||||
#
|
||||
# Flags here are ported from the Linux 7.1 reference tree:
|
||||
# force_s2idle — Linux acpi/sleep.c has no LG entry
|
||||
# (s2idle is the default on all LG Gram
|
||||
# models; the flag is explicit for
|
||||
# documentation + future-proofing if a
|
||||
# BIOS update adds S3)
|
||||
# acpi_irq1_skip_override — Linux drivers/acpi/resource.c
|
||||
# irq1_level_low_skip_override[]
|
||||
# (lines 522-534). Without this the ACPI
|
||||
# core rewrites the DSDT's ActiveLow to
|
||||
# ActiveHigh and the i8042 keyboard IRQ
|
||||
# stops firing.
|
||||
# kbd_deactivate_fixup — Linux drivers/input/keyboard/atkbd.c
|
||||
# line 1913-1917. Prevents spurious
|
||||
# keyboard ACK / dropped keys on LG.
|
||||
# no_legacy_pm1b — Single-PM1a hardware (LG firmware does
|
||||
# not implement PM1b_CNT). Tells acpid
|
||||
# to skip the SLP_TYPb write path.
|
||||
[[dmi_system_quirk]]
|
||||
flags = ["force_s2idle"]
|
||||
flags = ["force_s2idle", "acpi_irq1_skip_override", "kbd_deactivate_fixup", "no_legacy_pm1b"]
|
||||
match.sys_vendor = "LG Electronics"
|
||||
match.product_name = "16Z90TR"
|
||||
|
||||
# LG Gram 16T90SP (2026 Panther Lake). Same modern-standby
|
||||
# preference; same S0ix SLP hint handling.
|
||||
# preference; same keyboard/ACPI quirk set as the 16Z90TR.
|
||||
# The 16T90SP is already in Linux's
|
||||
# irq1_level_low_skip_override[] (commit 53f1a90, Oct 2024).
|
||||
[[dmi_system_quirk]]
|
||||
flags = ["force_s2idle"]
|
||||
flags = ["force_s2idle", "acpi_irq1_skip_override", "kbd_deactivate_fixup", "no_legacy_pm1b"]
|
||||
match.sys_vendor = "LG Electronics"
|
||||
match.product_name = "16T90SP"
|
||||
|
||||
# LG Gram 17U70P (17 inch, 2020 Comet Lake). Also in Linux's
|
||||
# irq1_level_low_skip_override[] (resource.c:522-527). No
|
||||
# force_s2idle (older LG Gram still has working S3).
|
||||
[[dmi_system_quirk]]
|
||||
flags = ["acpi_irq1_skip_override", "kbd_deactivate_fixup"]
|
||||
match.sys_vendor = "LG Electronics"
|
||||
match.product_name = "17U70P"
|
||||
|
||||
# All LG Electronics: keyboard deactivate fixup (Linux atkbd.c
|
||||
# matches on sys_vendor only, no product_name filter). This is
|
||||
# the catch-all for older LG laptops that don't have specific
|
||||
# model entries above.
|
||||
[[dmi_system_quirk]]
|
||||
flags = ["kbd_deactivate_fixup"]
|
||||
match.sys_vendor = "LG Electronics"
|
||||
|
||||
+1
-1
Submodule local/sources/kernel updated: 24fd0a083d...7a38664253
Reference in New Issue
Block a user