]> Git Repo - linux.git/commit
ACPI: EC: Install address space handler at the namespace root
authorRafael J. Wysocki <[email protected]>
Wed, 15 May 2024 19:40:54 +0000 (21:40 +0200)
committerRafael J. Wysocki <[email protected]>
Thu, 16 May 2024 16:31:05 +0000 (18:31 +0200)
commit60fa6ae6e6d09e377fce6f8d9b6f6a4d88769f63
treeb54c4eb2980ae98d80e19806d165e32235ebe89d
parentea5f6ad9ad9645733b72ab53a98e719b460d36a6
ACPI: EC: Install address space handler at the namespace root

It is reported that _DSM evaluation fails in ucsi_acpi_dsm() on Lenovo
IdeaPad Pro 5 due to a missing address space handler for the EC address
space:

 ACPI Error: No handler for Region [ECSI] (000000007b8176ee) [EmbeddedControl] (20230628/evregion-130)

This happens because if there is no ECDT, the EC driver only registers
the EC address space handler for operation regions defined in the EC
device scope of the ACPI namespace while the operation region being
accessed by the _DSM in question is located beyond that scope.

To address this, modify the ACPI EC driver to install the EC address
space handler at the root of the ACPI namespace for the first EC that
can be found regardless of whether or not an ECDT is present.

Note that this change is consistent with some examples in the ACPI
specification in which EC operation regions located outside the EC
device scope are used (for example, see Section 9.17.15 in ACPI 6.5),
so the current behavior of the EC driver is arguably questionable.

Reported-by: webcaptcha <[email protected]>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218789
Link: https://uefi.org/specs/ACPI/6.5/09_ACPI_Defined_Devices_and_Device_Specific_Objects.html#example-asl-code
Link: https://lore.kernel.org/linux-acpi/[email protected]
Suggested-by: Heikki Krogerus <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
Reviewed-by: Hans de Goede <[email protected]>
Reviewed-by: Mario Limonciello <[email protected]>
Reviewed-by: Andy Shevchenko <[email protected]>
drivers/acpi/ec.c
drivers/acpi/internal.h
This page took 0.054992 seconds and 4 git commands to generate.