Subject: ACPI: Initialize EC global lock based on the return value of _GLK From: Zhao Yakui <yakui.zhao@xxxxxxxxx> Initialize the EC global lock based on the returned value of _GLK object.Only when AE_OK is returned by the acpi_evaluate_integer, the EC global lock will be assigned based on the return value of _GLK object.Otherwise it means that there is no _GLK object and the global lock won't be required when EC is accessed. If the return value of _GLK object is not zero, it means that GLobal lock will be required when EC is accessed. If the return value of _GLK object is zero, it means that GLobal lock won't be required when EC is accessed. http://bugzilla.kernel.org/show_bug.cgi?id=11917 Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx> cc: Alexey Starikovskiy <astarikovskiy@xxxxxxx> cc: Alan Jenkins <alan-jenkins@xxxxxxxxxxxxxx> --- drivers/acpi/ec.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) Index: linux-2.6/drivers/acpi/ec.c =================================================================== --- linux-2.6.orig/drivers/acpi/ec.c +++ linux-2.6/drivers/acpi/ec.c @@ -751,8 +751,21 @@ ec_parse_device(acpi_handle handle, u32 return status; ec->gpe = tmp; /* Use the global lock for all EC transactions? */ - acpi_evaluate_integer(handle, "_GLK", NULL, &tmp); - ec->global_lock = tmp; + status = acpi_evaluate_integer(handle, "_GLK", NULL, &tmp); + /* + * Only when AE_OK is returned by acpi_evaluate_interger, + * the ec->global_lock will be assigned based on the returned + * value by _GLK. Otherwise it means that there is no _GLK object + * and global lock won't be required when EC is accessed. + * If the return value of _GLK object is not zero, it means that + * global lock will be required when EC is accessed. + * If the return value of _GLK object is zero, it means that + * global lock won't be required when EC is accessed. + */ + if (ACPI_SUCCESS(status)) + ec->global_lock = !!tmp; + else + ec->global_lock = 0; ec->handle = handle; return AE_CTRL_TERMINATE; } -- 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