diff options
-rw-r--r-- | drivers/acpi/ec.c | 15 |
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; |