aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2013-09-02 20:32:14 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-09-23 19:37:57 -0400
commit4a2d6f6637d59bafa8be5cd4c323684224422ef1 (patch)
treeeabfb1a7532a113df6e2815f0b232ca44d6bbb22 /drivers/platform/x86
parentc7c878a41d8b087f292015d4afeb2950a5d28830 (diff)
intel-smartconnect: convert acpi_evaluate_object() to acpi_evaluate_integer()
acpi_evaluate_integer() is an ACPI API introduced to evaluate an ACPI control method that is known to have an integer return value. This API can simplify the code because the calling function does not need to use the specified acpi_buffer structure required by acpi_evaluate_object(); Convert acpi_evaluate_object() to acpi_evaluate_integer() in drivers/platform/x86/intel-smartconnect.c in this patch. Signed-off-by: Zhang Rui <rui.zhang@intel.com> CC: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/platform/x86')
-rw-r--r--drivers/platform/x86/intel-smartconnect.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/drivers/platform/x86/intel-smartconnect.c b/drivers/platform/x86/intel-smartconnect.c
index 898400865f40..1838400dc036 100644
--- a/drivers/platform/x86/intel-smartconnect.c
+++ b/drivers/platform/x86/intel-smartconnect.c
@@ -25,28 +25,18 @@ MODULE_LICENSE("GPL");
25 25
26static int smartconnect_acpi_init(struct acpi_device *acpi) 26static int smartconnect_acpi_init(struct acpi_device *acpi)
27{ 27{
28 struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; 28 unsigned long long value;
29 union acpi_object *result;
30 acpi_status status; 29 acpi_status status;
31 30
32 status = acpi_evaluate_object(acpi->handle, "GAOS", NULL, &output); 31 status = acpi_evaluate_integer(acpi->handle, "GAOS", NULL, &value);
33 if (!ACPI_SUCCESS(status)) 32 if (!ACPI_SUCCESS(status))
34 return -EINVAL; 33 return -EINVAL;
35 34
36 result = output.pointer; 35 if (value & 0x1) {
37
38 if (result->type != ACPI_TYPE_INTEGER) {
39 kfree(result);
40 return -EINVAL;
41 }
42
43 if (result->integer.value & 0x1) {
44 dev_info(&acpi->dev, "Disabling Intel Smart Connect\n"); 36 dev_info(&acpi->dev, "Disabling Intel Smart Connect\n");
45 status = acpi_execute_simple_method(acpi->handle, "SAOS", 0); 37 status = acpi_execute_simple_method(acpi->handle, "SAOS", 0);
46 } 38 }
47 39
48 kfree(result);
49
50 return 0; 40 return 0;
51} 41}
52 42