From: Alexey Starikovskiy <astarikovskiy@xxxxxxx> Try to recover boot EC init in case of broken ECDT (bug #8651). Signed-off-by: Alexey Starikovskiy <astarikovskiy@xxxxxxx> --- drivers/acpi/ec.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 33afcd1..ce9e97a 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -864,17 +864,20 @@ int __init acpi_ec_ecdt_probe(void) boot_ec->data_addr = ecdt_ptr->data.address; boot_ec->gpe = ecdt_ptr->gpe; status = acpi_get_handle(NULL, ecdt_ptr->id, &boot_ec->handle); - if (ACPI_FAILURE(status)) + if (ACPI_FAILURE(status)) { + printk(KERN_ERR PREFIX "ECDT is broken\n"); goto error; + } ec_complete_parse_device(boot_ec); - } else { + } + if (ACPI_FAILURE(status)) { + /* Try to recover boot_ec init */ printk(KERN_DEBUG PREFIX "Look up EC in DSDT\n"); status = acpi_get_devices(ec_device_ids[0].id, ec_parse_device, - boot_ec, NULL); + boot_ec, NULL); if (ACPI_FAILURE(status)) goto error; } - ret = ec_install_handlers(boot_ec); if (!ret) { first_ec = boot_ec; - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html