|
@@ -219,8 +219,7 @@ static int call_fext_func(int cmd, int arg0, int arg1, int arg2)
|
|
|
{ .type = ACPI_TYPE_INTEGER }
|
|
|
};
|
|
|
struct acpi_object_list arg_list = { 4, ¶ms[0] };
|
|
|
- struct acpi_buffer output;
|
|
|
- union acpi_object out_obj;
|
|
|
+ unsigned long long value;
|
|
|
acpi_handle handle = NULL;
|
|
|
|
|
|
status = acpi_get_handle(fujitsu_hotkey->acpi_handle, "FUNC", &handle);
|
|
@@ -235,10 +234,7 @@ static int call_fext_func(int cmd, int arg0, int arg1, int arg2)
|
|
|
params[2].integer.value = arg1;
|
|
|
params[3].integer.value = arg2;
|
|
|
|
|
|
- output.length = sizeof(out_obj);
|
|
|
- output.pointer = &out_obj;
|
|
|
-
|
|
|
- status = acpi_evaluate_object(handle, NULL, &arg_list, &output);
|
|
|
+ status = acpi_evaluate_integer(handle, NULL, &arg_list, &value);
|
|
|
if (ACPI_FAILURE(status)) {
|
|
|
vdbg_printk(FUJLAPTOP_DBG_WARN,
|
|
|
"FUNC 0x%x (args 0x%x, 0x%x, 0x%x) call failed\n",
|
|
@@ -246,18 +242,10 @@ static int call_fext_func(int cmd, int arg0, int arg1, int arg2)
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
|
|
|
- if (out_obj.type != ACPI_TYPE_INTEGER) {
|
|
|
- vdbg_printk(FUJLAPTOP_DBG_WARN,
|
|
|
- "FUNC 0x%x (args 0x%x, 0x%x, 0x%x) did not "
|
|
|
- "return an integer\n",
|
|
|
- cmd, arg0, arg1, arg2);
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
-
|
|
|
vdbg_printk(FUJLAPTOP_DBG_TRACE,
|
|
|
"FUNC 0x%x (args 0x%x, 0x%x, 0x%x) returned 0x%x\n",
|
|
|
- cmd, arg0, arg1, arg2, (int)out_obj.integer.value);
|
|
|
- return out_obj.integer.value;
|
|
|
+ cmd, arg0, arg1, arg2, (int)value);
|
|
|
+ return value;
|
|
|
}
|
|
|
|
|
|
#if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE)
|