On Fri, May 10, 2024 at 6:10 PM Armin Wolf <W_Armin@xxxxxx> wrote:
Am 10.05.24 um 16:03 schrieb Rafael J. Wysocki:I'm wondering if this is a theoretical question or do you have any
From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>Hi,
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 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.
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.
the patch itself looks good to me, but i wonder what happens if multiple
ACPI EC devices are present. How would we handle such a situation?
existing or planned systems in mind?
ec_read(), ec_write() and ec_transaction() use only the first EC that
has been found anyway.