Skip to content

Commit 7c117e5

Browse files
committed
ACPI: EC: Relax sanity check of the ECDT ID string
JIRA: https://issues.redhat.com/browse/RHEL-114092 commit 963e22c Author: Armin Wolf <W_Armin@gmx.de> Date: Tue, 12 Aug 2025 19:16:27 +0000 It turns out that the ECDT table inside the ThinkBook 14 G7 IML contains a valid EC description but an invalid ID string ("_SB.PC00.LPCB.EC0"). Ignoring this ECDT based on the invalid ID string prevents the kernel from detecting the built-in touchpad, so relax the sanity check of the ID string and only reject ECDTs with empty ID strings. Reported-by: Ilya K <me@0upti.me> Fixes: 7a0d59f ("ACPI: EC: Ignore ECDT tables with an invalid ID string") Signed-off-by: Armin Wolf <W_Armin@gmx.de> Tested-by: Ilya K <me@0upti.me> Link: https://patch.msgid.link/20250729062038.303734-1-W_Armin@gmx.de Cc: 6.16+ <stable@vger.kernel.org> # 6.16+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
1 parent 2e5f5dc commit 7c117e5

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

drivers/acpi/ec.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2033,7 +2033,7 @@ void __init acpi_ec_ecdt_probe(void)
20332033
goto out;
20342034
}
20352035

2036-
if (!strstarts(ecdt_ptr->id, "\\")) {
2036+
if (!strlen(ecdt_ptr->id)) {
20372037
/*
20382038
* The ECDT table on some MSI notebooks contains invalid data, together
20392039
* with an empty ID string ("").
@@ -2042,9 +2042,13 @@ void __init acpi_ec_ecdt_probe(void)
20422042
* a "fully qualified reference to the (...) embedded controller device",
20432043
* so this string always has to start with a backslash.
20442044
*
2045-
* By verifying this we can avoid such faulty ECDT tables in a safe way.
2045+
* However some ThinkBook machines have a ECDT table with a valid EC
2046+
* description but an invalid ID string ("_SB.PC00.LPCB.EC0").
2047+
*
2048+
* Because of this we only check if the ID string is empty in order to
2049+
* avoid the obvious cases.
20462050
*/
2047-
pr_err(FW_BUG "Ignoring ECDT due to invalid ID string \"%s\"\n", ecdt_ptr->id);
2051+
pr_err(FW_BUG "Ignoring ECDT due to empty ID string\n");
20482052
goto out;
20492053
}
20502054

0 commit comments

Comments
 (0)