NAK
Zhao Yakui wrote:
Subject: ACPI: Cleanup :Initialize EC global lock based on the return status
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.
Signed-off-by: Zhao Yakui <yakui.zhao@xxxxxxxxx>
cc: Alexey Starikovskiy <astarikovskiy@xxxxxxx>
cc: Alan Jenkins <alan-jenkins@xxxxxxxxxxxxxx>
---
drivers/acpi/ec.c | 24 ++++++++++++++++++++++--
1 file changed, 22 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
@@ -752,8 +752,28 @@ ec_parse_device(acpi_handle handle, u32
ec->gpe = tmp;
/* Use the global lock for all EC transactions? */
tmp = 0;
- acpi_evaluate_integer(handle, "_GLK", NULL, &tmp);
- ec->global_lock = 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.
+ */
+ status = acpi_evaluate_integer(handle, "_GLK", NULL, &tmp);
+ if (ACPI_SUCCESS(status)) {
+ /*
+ * If the return value is not zero, it means that global lock
+ * is required when EC is accessed
+ */
+ if (tmp)
+ ec->global_lock = 1;
+ else
+ ec->global_lock = 0;
+ } 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