aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/ec.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 13593f9f2197..4c004286b3d9 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -862,8 +862,19 @@ static int ec_install_handlers(struct acpi_ec *ec)
862 &acpi_ec_space_handler, 862 &acpi_ec_space_handler,
863 NULL, ec); 863 NULL, ec);
864 if (ACPI_FAILURE(status)) { 864 if (ACPI_FAILURE(status)) {
865 acpi_remove_gpe_handler(NULL, ec->gpe, &acpi_ec_gpe_handler); 865 if (status == AE_NOT_FOUND) {
866 return -ENODEV; 866 /*
867 * Maybe OS fails in evaluating the _REG object.
868 * The AE_NOT_FOUND error will be ignored and OS
869 * continue to initialize EC.
870 */
871 printk(KERN_ERR "Fail in evaluating the _REG object"
872 " of EC device. Broken bios is suspected.\n");
873 } else {
874 acpi_remove_gpe_handler(NULL, ec->gpe,
875 &acpi_ec_gpe_handler);
876 return -ENODEV;
877 }
867 } 878 }
868 879
869 ec->handlers_installed = 1; 880 ec->handlers_installed = 1;