View | Details | Raw Unified | Return to bug 10724 | Differences between
and this patch

Collapse All | Expand All

(-)linux-2.6/drivers/acpi/ec.c (-3 / +7 lines)
Lines 257-264 static int acpi_ec_transaction_unlocked( Link Here
257
			       "finish-write timeout, command = %d\n", command);
257
			       "finish-write timeout, command = %d\n", command);
258
			goto end;
258
			goto end;
259
		}
259
		}
260
	} else if (command == ACPI_EC_COMMAND_QUERY)
260
	}
261
		clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
262
261
263
	for (; rdata_len > 0; --rdata_len) {
262
	for (; rdata_len > 0; --rdata_len) {
264
		result = acpi_ec_wait(ec, ACPI_EC_EVENT_OBF_1, force_poll);
263
		result = acpi_ec_wait(ec, ACPI_EC_EVENT_OBF_1, force_poll);
Lines 492-499 static void acpi_ec_gpe_query(void *ec_c Link Here
492
	u8 value = 0;
491
	u8 value = 0;
493
	struct acpi_ec_query_handler *handler, copy;
492
	struct acpi_ec_query_handler *handler, copy;
494
493
495
	if (!ec || acpi_ec_query(ec, &value))
494
495
	if (!ec || acpi_ec_query(ec, &value)) {
496
		clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
496
		return;
497
		return;
498
	}
497
	mutex_lock(&ec->lock);
499
	mutex_lock(&ec->lock);
498
	list_for_each_entry(handler, &ec->list, node) {
500
	list_for_each_entry(handler, &ec->list, node) {
499
		if (value == handler->query_bit) {
501
		if (value == handler->query_bit) {
Lines 505-513 static void acpi_ec_gpe_query(void *ec_c Link Here
505
			} else if (copy.handle) {
507
			} else if (copy.handle) {
506
				acpi_evaluate_object(copy.handle, NULL, NULL, NULL);
508
				acpi_evaluate_object(copy.handle, NULL, NULL, NULL);
507
			}
509
			}
510
			clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
508
			return;
511
			return;
509
		}
512
		}
510
	}
513
	}
514
	clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
511
	mutex_unlock(&ec->lock);
515
	mutex_unlock(&ec->lock);
512
}
516
}
513
517

Return to bug 10724