Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff2fc3e9 authored by Jiri Slaby's avatar Jiri Slaby Committed by Len Brown
Browse files

ACPI: EC acpi-ecdt-uid-hack

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: default avatarJiri Slaby <jirislaby@gmail.com>
Cc: Luming Yu <luming.yu@intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 683aa401
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -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);