aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJiang Liu <jiang.liu@linux.intel.com>2014-02-19 01:02:16 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-02-20 18:27:47 -0500
commit8b296d9412a087c1e2191d3e7448c76d9498714f (patch)
treedaafec8c5469e60bbe7e1472c37967851e5dd270 /drivers
parent05730c1952787faa422ea2898634a1f9cdb61161 (diff)
ACPI / PAD: 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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/acpi_pad.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
index df96a0fe4890..37d73024b82e 100644
--- a/drivers/acpi/acpi_pad.c
+++ b/drivers/acpi/acpi_pad.c
@@ -408,28 +408,14 @@ static int acpi_pad_pur(acpi_handle handle)
408 return num; 408 return num;
409} 409}
410 410
411/* Notify firmware how many CPUs are idle */
412static void acpi_pad_ost(acpi_handle handle, int stat,
413 uint32_t idle_cpus)
414{
415 union acpi_object params[3] = {
416 {.type = ACPI_TYPE_INTEGER,},
417 {.type = ACPI_TYPE_INTEGER,},
418 {.type = ACPI_TYPE_BUFFER,},
419 };
420 struct acpi_object_list arg_list = {3, params};
421
422 params[0].integer.value = ACPI_PROCESSOR_AGGREGATOR_NOTIFY;
423 params[1].integer.value = stat;
424 params[2].buffer.length = 4;
425 params[2].buffer.pointer = (void *)&idle_cpus;
426 acpi_evaluate_object(handle, "_OST", &arg_list, NULL);
427}
428
429static void acpi_pad_handle_notify(acpi_handle handle) 411static void acpi_pad_handle_notify(acpi_handle handle)
430{ 412{
431 int num_cpus; 413 int num_cpus;
432 uint32_t idle_cpus; 414 uint32_t idle_cpus;
415 struct acpi_buffer param = {
416 .length = 4,
417 .pointer = (void *)&idle_cpus,
418 };
433 419
434 mutex_lock(&isolated_cpus_lock); 420 mutex_lock(&isolated_cpus_lock);
435 num_cpus = acpi_pad_pur(handle); 421 num_cpus = acpi_pad_pur(handle);
@@ -439,7 +425,7 @@ static void acpi_pad_handle_notify(acpi_handle handle)
439 } 425 }
440 acpi_pad_idle_cpus(num_cpus); 426 acpi_pad_idle_cpus(num_cpus);
441 idle_cpus = acpi_pad_idle_cpus_num(); 427 idle_cpus = acpi_pad_idle_cpus_num();
442 acpi_pad_ost(handle, 0, idle_cpus); 428 acpi_evaluate_ost(handle, ACPI_PROCESSOR_AGGREGATOR_NOTIFY, 0, &param);
443 mutex_unlock(&isolated_cpus_lock); 429 mutex_unlock(&isolated_cpus_lock);
444} 430}
445 431