acpi EC: acpi-ecdt-uid-hack
PATCH 22/22 acpi EC: acpi-ecdt-uid-hack
From: Jiri Slaby <[email protected]>
On some boxes ecdt uid may be equal to 0, so do not test for uids equality, so that fake handler will be unconditionally removed to allow loading the real one.
See http://bugzilla.kernel.org/show_bug.cgi?id=6111
Signed-off-by Jiri Slaby <[email protected]>
Cc Luming Yu <[email protected]>
Cc "Brown, Len" <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/acpi/ec.c | 16 ++++++---------- 1 files changed, 6 insertions(+), 10 deletions(-)
drivers/acpi/ec.c renamed from drivers/acpi/ec.c~acpi-ec-acpi-ecdt-uid-hack +6 -10
@@ -989,7 +989,6 @@ static int acpi_ec_poll_add(struct acpi_int result =0 ;acpi_status status =AE_OK ;union acpi_ec *ec =NULL ; -unsigned long uid;ACPI_FUNCTION_TRACE ("acpi_ec_add" );
@@ -1012,10 +1011,9 @@ static int acpi_ec_poll_add(struct acpi_acpi_evaluate_integer (ec->common.handle,"_GLK" ,NULL , &ec->common.global_lock); -/* If our UID matches the UID for the ECDT-enumerated EC, -we now have the *real* EC info, so kill the makeshift one. */ -acpi_evaluate_integer (ec->common.handle,"_UID" ,NULL , &uid); -if (ec_ecdt && ec_ecdt->common.uid == uid) { +/* XXX we don't test uids, because on some boxes ecdt uid = 0, see: +http://bugzilla.kernel.org/show_bug.cgi?id=6111 */ +if (ec_ecdt) {acpi_remove_address_space_handler (ACPI_ROOT_OBJECT ,ACPI_ADR_SPACE_EC , &acpi_ec_space_handler);
@@ -1059,7 +1057,6 @@ static int acpi_ec_intr_add(struct acpi_int result =0 ;acpi_status status =AE_OK ;union acpi_ec *ec =NULL ; -unsigned long uid;ACPI_FUNCTION_TRACE ("acpi_ec_add" );
@@ -1085,10 +1082,9 @@ static int acpi_ec_intr_add(struct acpi_acpi_evaluate_integer (ec->common.handle,"_GLK" ,NULL , &ec->common.global_lock); -/* If our UID matches the UID for the ECDT-enumerated EC, -we now have the *real* EC info, so kill the makeshift one. */ -acpi_evaluate_integer (ec->common.handle,"_UID" ,NULL , &uid); -if (ec_ecdt && ec_ecdt->common.uid == uid) { +/* XXX we don't test uids, because on some boxes ecdt uid = 0, see: +http://bugzilla.kernel.org/show_bug.cgi?id=6111 */ +if (ec_ecdt) {acpi_remove_address_space_handler (ACPI_ROOT_OBJECT ,ACPI_ADR_SPACE_EC , &acpi_ec_space_handler);
_