ACPI Error: No handler for Region [ECOR]
Ben Widawsky
bwidawsk at freebsd.org
Fri Nov 23 05:02:06 UTC 2018
Thanks both of you. Here's another shot at roughly the same thing I asked the
first reporter to try (that patch was wrong). If it doesn't work, can you please
post the dmesg?
diff --git a/sys/dev/acpica/acpi_ec.c b/sys/dev/acpica/acpi_ec.c
index a21dbc963af..666aba2b3c8 100644
--- a/sys/dev/acpica/acpi_ec.c
+++ b/sys/dev/acpica/acpi_ec.c
@@ -362,7 +362,8 @@ acpi_ec_probe(device_t dev)
ret = 0;
goto out;
- }
+ } else
+ ecdt = 0;
ret = ACPI_ID_PROBE(device_get_parent(dev), dev, ec_ids, NULL);
if (ret > 0)
@@ -382,6 +383,17 @@ acpi_ec_probe(device_t dev)
if (ACPI_FAILURE(status))
params->uid = 0;
+ /*
+ * Check for a duplicate probe. This can happen when a probe via ECDT
+ * succeeded already. If this is a duplicate, disable this device.
+ */
+ peer = devclass_get_device(acpi_ec_devclass, params->uid);
+ if (peer && device_is_alive(peer)) {
+ device_disable(dev);
+ ret = ENXIO;
+ goto out;
+ }
+
status = acpi_GetInteger(h, "_GLK", ¶ms->glk);
if (ACPI_FAILURE(status))
params->glk = 0;
@@ -422,16 +434,6 @@ acpi_ec_probe(device_t dev)
/* Store the values we got from the namespace for attach. */
acpi_set_private(dev, params);
- /*
- * Check for a duplicate probe. This can happen when a probe via ECDT
- * succeeded already. If this is a duplicate, disable this device.
- */
- peer = devclass_get_device(acpi_ec_devclass, params->uid);
- if (peer == NULL || !device_is_alive(peer))
- ret = 0;
- else
- device_disable(dev);
-
if (buf.Pointer)
AcpiOsFree(buf.Pointer);
out:
On 18-11-21 17:08:15, Samy Mahmoudi wrote:
> Hi again,
>
> Please find the requested files:
>
> http://imp.ovh/18.2.0/acpidump_-dt_output
> http://imp.ovh/18.2.0/acpi_ec_values
> http://imp.ovh/18.2.0/dmesg_output
>
> Best regards,
> Samy
>
More information about the freebsd-current
mailing list