On Fri, May 10, 2024 at 6:52 PM Armin Wolf <W_Armin@xxxxxx> wrote: > > Am 10.05.24 um 18:41 schrieb Rafael J. Wysocki: > > > 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: > >> > >>> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > >>> > >>> 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. > >> Hi, > >> > >> 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? > > I'm wondering if this is a theoretical question or do you have any > > existing or planned systems in mind? > > > > ec_read(), ec_write() and ec_transaction() use only the first EC that > > has been found anyway. > > Its a theoretical question, i do not know of any systems which have more than > one ACPI EC device. > > This patch would prevent any ACPI ECs other than the first one from probing, > since they would fail to register their address space handler. > I am just curious if/how we want to handle such situations. I'm not worried until I see a system where that is a problem. That said, it can be addressed by adding a first_ec check around the address space handler registration/unregistration.