diff options
| author | Jiang Liu <jiang.liu@linux.intel.com> | 2014-02-19 01:02:17 -0500 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-02-20 18:27:47 -0500 |
| commit | 772c53990fc29a34aec539abc6b2a1edbab8b2b5 (patch) | |
| tree | 5c7fba628d7b7139cb5af5856df2ba45910a0af6 | |
| parent | 8b296d9412a087c1e2191d3e7448c76d9498714f (diff) | |
ACPI / PAD / xen: use acpi_evaluate_ost() to replace open-coded version
Use public function acpi_evaluate_ost() to replace open-coded
version of evaluating ACPI _OST method.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
| -rw-r--r-- | drivers/xen/xen-acpi-pad.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/drivers/xen/xen-acpi-pad.c b/drivers/xen/xen-acpi-pad.c index 40c4bc06b5fa..f83b754505f8 100644 --- a/drivers/xen/xen-acpi-pad.c +++ b/drivers/xen/xen-acpi-pad.c | |||
| @@ -77,27 +77,14 @@ static int acpi_pad_pur(acpi_handle handle) | |||
| 77 | return num; | 77 | return num; |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | /* Notify firmware how many CPUs are idle */ | ||
| 81 | static void acpi_pad_ost(acpi_handle handle, int stat, | ||
| 82 | uint32_t idle_nums) | ||
| 83 | { | ||
| 84 | union acpi_object params[3] = { | ||
| 85 | {.type = ACPI_TYPE_INTEGER,}, | ||
| 86 | {.type = ACPI_TYPE_INTEGER,}, | ||
| 87 | {.type = ACPI_TYPE_BUFFER,}, | ||
| 88 | }; | ||
| 89 | struct acpi_object_list arg_list = {3, params}; | ||
| 90 | |||
| 91 | params[0].integer.value = ACPI_PROCESSOR_AGGREGATOR_NOTIFY; | ||
| 92 | params[1].integer.value = stat; | ||
| 93 | params[2].buffer.length = 4; | ||
| 94 | params[2].buffer.pointer = (void *)&idle_nums; | ||
| 95 | acpi_evaluate_object(handle, "_OST", &arg_list, NULL); | ||
| 96 | } | ||
| 97 | |||
| 98 | static void acpi_pad_handle_notify(acpi_handle handle) | 80 | static void acpi_pad_handle_notify(acpi_handle handle) |
| 99 | { | 81 | { |
| 100 | int idle_nums; | 82 | int idle_nums; |
| 83 | struct acpi_buffer param = { | ||
| 84 | .length = 4, | ||
| 85 | .pointer = (void *)&idle_nums, | ||
| 86 | }; | ||
| 87 | |||
| 101 | 88 | ||
| 102 | mutex_lock(&xen_cpu_lock); | 89 | mutex_lock(&xen_cpu_lock); |
| 103 | idle_nums = acpi_pad_pur(handle); | 90 | idle_nums = acpi_pad_pur(handle); |
| @@ -109,7 +96,8 @@ static void acpi_pad_handle_notify(acpi_handle handle) | |||
| 109 | idle_nums = xen_acpi_pad_idle_cpus(idle_nums) | 96 | idle_nums = xen_acpi_pad_idle_cpus(idle_nums) |
| 110 | ?: xen_acpi_pad_idle_cpus_num(); | 97 | ?: xen_acpi_pad_idle_cpus_num(); |
| 111 | if (idle_nums >= 0) | 98 | if (idle_nums >= 0) |
| 112 | acpi_pad_ost(handle, 0, idle_nums); | 99 | acpi_evaluate_ost(handle, ACPI_PROCESSOR_AGGREGATOR_NOTIFY, |
| 100 | 0, ¶m); | ||
| 113 | mutex_unlock(&xen_cpu_lock); | 101 | mutex_unlock(&xen_cpu_lock); |
| 114 | } | 102 | } |
| 115 | 103 | ||
