From: Wentao Guan guanwentao@uniontech.com
[ Upstream commit c99ad987d3e9b550e9839d5df22de97d90462e5f ]
Use ACPI IRQ override on MACHENIKE laptop to make the internal keyboard work.
Add a new entry to the irq1_edge_low_force_override structure, similar to the existing ones.
Link: https://bbs.deepin.org.cn/zh/post/287628 Signed-off-by: Wentao Guan guanwentao@uniontech.com Link: https://patch.msgid.link/20250603122059.1072790-1-guanwentao@uniontech.com Signed-off-by: Rafael J. Wysocki rafael.j.wysocki@intel.com Signed-off-by: Sasha Levin sashal@kernel.org ---
**YES**
This commit should be backported to stable kernel trees for the following reasons:
1. **Bug Fix for Non-Functional Hardware**: The commit fixes a broken keyboard on MACHENIKE 16P laptops. The internal keyboard does not work without this IRQ override, which is a significant hardware functionality issue that affects users.
2. **Small and Contained Change**: The change is minimal - it only adds 7 lines to add a new DMI match entry to the existing `irq1_edge_low_force_override` array: ```c + { + /* MACHENIKE L16P/L16P */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "MACHENIKE"), + DMI_MATCH(DMI_BOARD_NAME, "L16P"), + }, + }, ```
3. **Well-Established Pattern**: This follows an established pattern in the kernel. The code shows this is part of a long-standing mechanism for handling keyboard IRQ issues on AMD Zen platforms where "the DSDT specifies the kbd IRQ as falling edge and this must be overridden to rising edge, to have a working keyboard."
4. **Similar Commits Were Backported**: Looking at the historical commits provided: - "ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx" - marked with "Cc: All applicable stable@vger.kernel.org" - "ACPI: resource: Do IRQ override on MECHREV GM7XG0M" - includes both "Fixes:" tag and "Cc: All applicable stable@vger.kernel.org" - "ACPI: resource: Do IRQ override on Lunnen Ground laptops" - marked as YES for backporting - "ACPI: resource: IRQ override for Eluktronics MECH-17" - marked as YES for backporting
5. **No Risk of Regression**: The change is isolated to MACHENIKE 16P laptops only (via DMI matching), so it cannot affect other systems. The DMI match ensures this override only applies to the specific hardware that needs it.
6. **Critical Functionality**: A non-functional keyboard is a critical issue that prevents normal system usage. This is not a minor inconvenience but a complete loss of primary input functionality.
The only reason this commit might not have been explicitly marked for stable is an oversight, as virtually identical commits for other laptop models fixing the same keyboard IRQ issue have been consistently backported to stable trees.
drivers/acpi/resource.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index 7c08cf69ca311..7e546d2b3884c 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -638,6 +638,13 @@ static const struct dmi_system_id lg_laptop[] = { DMI_MATCH(DMI_BOARD_NAME, "GMxHGxx"), }, }, + { + /* MACHENIKE L16P/L16P */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "MACHENIKE"), + DMI_MATCH(DMI_BOARD_NAME, "L16P"), + }, + }, { /* * TongFang GM5HG0A in case of the SKIKK Vanaheim relabel the