This is hardly a "fix", you just disable EC on this machine... Famous
question
"how windows runs on this machine?" is not answered...
Regards,
Alex.
Zhao Yakui wrote:
Hi, All
On some laptops as it fails in evaluating the _REG object, which brings that
EC device can't be initialized correctly. But the EC space handler is not removed.
In such case maybe EC internal register will still be accessed in AML code. It is
not reasonable.
The following patch is to fix the above issue. When it fails in evaluating the
_REG object, the EC space handler should be removed explicitly.
Thanks for the comments.
On some laptops the incorrect status is returned by acpi_install_space
_handler because of the buggy _REG object, which causes that the EC device can't
be initialized correctly.
In such case it will be appropriate that the EC space handler is removed
explicitly if OS fails in evaluating _REG object.
http://bugzilla.kernel.org/show_bug.cgi?id=11884
Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
cc:Alexey Starikovskiy <astarikovskiy@xxxxxxx>
---
drivers/acpi/ec.c | 11 +++++++++++
1 file changed, 11 insertions(+)
Index: linux-2.6/drivers/acpi/ec.c
===================================================================
--- linux-2.6.orig/drivers/acpi/ec.c
+++ linux-2.6/drivers/acpi/ec.c
@@ -916,6 +916,17 @@ static int ec_install_handlers(struct ac
printk(KERN_ERR "Fail in evaluating the _REG object"
" of EC device. Broken bios is suspected.\n");
} else {
+ /*
+ * If incorrect status is returned because of the buggy
+ * _REG object, the EC space handler should be
+ * uninstalled explicitly.
+ * Otherwise maybe the EC internal register is still
+ * accessed in AML code although EC device is not
+ * initialized correctly.
+ */
+ acpi_remove_address_space_handler(ec->handle,
+ ACPI_ADR_SPACE_EC,
+ &acpi_ec_space_handler);
acpi_remove_gpe_handler(NULL, ec->gpe,
&acpi_ec_gpe_handler);
return -ENODEV;
--
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
--
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