[PATCH v3 0/4] ACPI: Serialize battery, INT3403 _TMP and ideapad methods
From: Ali Ahmet Memiş
Date: Sun Oct 18 2026 - 08:22:42 EST
On ThinkPad P1 Gen2 and P53, INT3403 _TMP switches the EC page selector
without taking the mutex the battery methods use. On some Lenovo
IdeaPad and Yoga models, the battery _BIX and the ideapad GBMD take the
EC mutex and a serialized method in opposite order and deadlock until
an AML mutex times out.
As discussed in [1], add exclusive variants of the AML evaluation
helpers and use them for the battery, INT3403 _TMP and ideapad methods.
Patches 2-4 depend on patch 1.
Changes in v3:
- Also evaluate _TMP exclusively where int3403 and processor_thermal
probe for it
Changes in v2:
- Merge the follow-up series [2] and drop its EC query and UCSI patches
until they are shown to help
- Add acpi_execute_simple_method_exclusive() for _BTP and ideapad
- Make the helpers wrappers that take the lock around the existing ones
- Join lines up to 100 columns, add a Link: for Suggested-by:
- Drop Hans' Reviewed-by from patch 1 due to the rework
Link: https://lore.kernel.org/all/CAJZ5v0gS4agVUkCO6M=VW4Wi2y1-s+k23bpzmX9aAZ0Rsv4z9Q@xxxxxxxxxxxxxx/ [1]
Link: https://lore.kernel.org/all/20261014190544.150093-1-aliamemis@xxxxxxxxxxx/ [2]
Link: https://bugzilla.kernel.org/show_bug.cgi?id=221065
v2: https://lore.kernel.org/all/20261017130652.318778-1-aliamemis@xxxxxxxxxxx/
v1: https://lore.kernel.org/all/20261014132703.93355-1-aliamemis@xxxxxxxxxxx/
Ali Ahmet Memiş (4):
ACPI: utils: Add exclusive AML evaluation helpers
ACPI: battery: Evaluate battery methods exclusively
thermal: intel: int340x: Evaluate _TMP exclusively
platform/x86: ideapad-laptop: Evaluate ACPI methods exclusively
drivers/acpi/battery.c | 12 +++---
drivers/acpi/utils.c | 41 +++++++++++++++++++
drivers/platform/x86/lenovo/ideapad-laptop.c | 12 ++++--
.../intel/int340x_thermal/int3403_thermal.c | 3 +-
.../int340x_thermal/int340x_thermal_zone.c | 6 ++-
.../processor_thermal_device.c | 2 +-
include/acpi/acpi_bus.h | 7 ++++
7 files changed, 68 insertions(+), 15 deletions(-)
base-commit: 24a19b953e2a3d0ea5a8c4951a0ab8f32720c907
--
2.55.0