diff options
Diffstat (limited to 'drivers/acpi/acpi_pad.c')
| -rw-r--r-- | drivers/acpi/acpi_pad.c | 24 |
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 */ | ||
| 412 | static 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 | |||
| 429 | static void acpi_pad_handle_notify(acpi_handle handle) | 411 | static 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, ¶m); |
| 443 | mutex_unlock(&isolated_cpus_lock); | 429 | mutex_unlock(&isolated_cpus_lock); |
| 444 | } | 430 | } |
| 445 | 431 | ||
