From: Alexey Starikovskiy <[EMAIL PROTECTED]>
Try to recover boot EC init in case of broken ECDT (bug #8651).
Signed-off-by: Alexey Starikovskiy <[EMAIL PROTECTED]>
---
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 [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html