diff options
author | Alex Chiang <achiang@hp.com> | 2010-02-22 14:11:39 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2010-03-14 21:17:22 -0400 |
commit | d8191fa4a33fdc817277da4f2b7f771ff605a41c (patch) | |
tree | d72667311fcaea0fbfc7c9a8e71bd6b612af215c /drivers | |
parent | 3b1da4c5d1032ebc29fec8bd8f592ba6589be8ed (diff) |
ACPI: processor: driver doesn't need to evaluate _PDC
Now that the early _PDC evaluation path knows how to correctly
evaluate _PDC on only physically present processors, there's no
need for the processor driver to evaluate it later when it loads.
To cover the hotplug case, push _PDC evaluation down into the
hotplug paths.
Cc: x86@kernel.org
Cc: Tony Luck <tony.luck@intel.com>
Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/processor_core.c | 7 | ||||
-rw-r--r-- | drivers/acpi/processor_driver.c | 3 |
2 files changed, 0 insertions, 10 deletions
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index ef34faad6003..626c75479868 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
@@ -317,8 +317,6 @@ acpi_processor_eval_pdc(acpi_handle handle, struct acpi_object_list *pdc_in) | |||
317 | return status; | 317 | return status; |
318 | } | 318 | } |
319 | 319 | ||
320 | static int early_pdc_done; | ||
321 | |||
322 | void acpi_processor_set_pdc(acpi_handle handle) | 320 | void acpi_processor_set_pdc(acpi_handle handle) |
323 | { | 321 | { |
324 | struct acpi_object_list *obj_list; | 322 | struct acpi_object_list *obj_list; |
@@ -326,9 +324,6 @@ void acpi_processor_set_pdc(acpi_handle handle) | |||
326 | if (arch_has_acpi_pdc() == false) | 324 | if (arch_has_acpi_pdc() == false) |
327 | return; | 325 | return; |
328 | 326 | ||
329 | if (early_pdc_done) | ||
330 | return; | ||
331 | |||
332 | obj_list = acpi_processor_alloc_pdc(); | 327 | obj_list = acpi_processor_alloc_pdc(); |
333 | if (!obj_list) | 328 | if (!obj_list) |
334 | return; | 329 | return; |
@@ -369,6 +364,4 @@ void __init acpi_early_processor_set_pdc(void) | |||
369 | acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, | 364 | acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, |
370 | ACPI_UINT32_MAX, | 365 | ACPI_UINT32_MAX, |
371 | early_init_pdc, NULL, NULL, NULL); | 366 | early_init_pdc, NULL, NULL, NULL); |
372 | |||
373 | early_pdc_done = 1; | ||
374 | } | 367 | } |
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c index 7eedf7475f4e..b5658cdce27f 100644 --- a/drivers/acpi/processor_driver.c +++ b/drivers/acpi/processor_driver.c | |||
@@ -608,9 +608,6 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device) | |||
608 | goto err_remove_fs; | 608 | goto err_remove_fs; |
609 | } | 609 | } |
610 | 610 | ||
611 | /* _PDC call should be done before doing anything else (if reqd.). */ | ||
612 | acpi_processor_set_pdc(pr->handle); | ||
613 | |||
614 | #ifdef CONFIG_CPU_FREQ | 611 | #ifdef CONFIG_CPU_FREQ |
615 | acpi_processor_ppc_has_changed(pr, 0); | 612 | acpi_processor_ppc_has_changed(pr, 0); |
616 | #endif | 613 | #endif |