]> nv-tegra.nvidia Code Review - linux-2.6.git/commitdiff
ACPI: EC acpi-ecdt-uid-hack
authorJiri Slaby <jirislaby@gmail.com>
Tue, 28 Mar 2006 22:04:00 +0000 (17:04 -0500)
committerLen Brown <len.brown@intel.com>
Sun, 2 Apr 2006 03:33:06 +0000 (22:33 -0500)
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 <jirislaby@gmail.com>
Cc: Luming Yu <luming.yu@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/ec.c

index eee0864ba300a6d8f2287f5919d8cd2fffa4e49b..e638168775b911cfecaa3cdf2ee96462b21754a7 100644 (file)
@@ -991,7 +991,6 @@ static int acpi_ec_poll_add(struct acpi_device *device)
        int result = 0;
        acpi_status status = AE_OK;
        union acpi_ec *ec = NULL;
-       unsigned long uid;
 
        ACPI_FUNCTION_TRACE("acpi_ec_add");
 
@@ -1014,10 +1013,9 @@ static int acpi_ec_poll_add(struct acpi_device *device)
        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);
@@ -1062,7 +1060,6 @@ static int acpi_ec_intr_add(struct acpi_device *device)
        int result = 0;
        acpi_status status = AE_OK;
        union acpi_ec *ec = NULL;
-       unsigned long uid;
 
        ACPI_FUNCTION_TRACE("acpi_ec_add");
 
@@ -1088,10 +1085,9 @@ static int acpi_ec_intr_add(struct acpi_device *device)
        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);