|
@@ -862,8 +862,19 @@ static int ec_install_handlers(struct acpi_ec *ec)
|
|
&acpi_ec_space_handler,
|
|
&acpi_ec_space_handler,
|
|
NULL, ec);
|
|
NULL, ec);
|
|
if (ACPI_FAILURE(status)) {
|
|
if (ACPI_FAILURE(status)) {
|
|
- acpi_remove_gpe_handler(NULL, ec->gpe, &acpi_ec_gpe_handler);
|
|
|
|
- return -ENODEV;
|
|
|
|
|
|
+ if (status == AE_NOT_FOUND) {
|
|
|
|
+ /*
|
|
|
|
+ * Maybe OS fails in evaluating the _REG object.
|
|
|
|
+ * The AE_NOT_FOUND error will be ignored and OS
|
|
|
|
+ * continue to initialize EC.
|
|
|
|
+ */
|
|
|
|
+ printk(KERN_ERR "Fail in evaluating the _REG object"
|
|
|
|
+ " of EC device. Broken bios is suspected.\n");
|
|
|
|
+ } else {
|
|
|
|
+ acpi_remove_gpe_handler(NULL, ec->gpe,
|
|
|
|
+ &acpi_ec_gpe_handler);
|
|
|
|
+ return -ENODEV;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
ec->handlers_installed = 1;
|
|
ec->handlers_installed = 1;
|