ACPI: processor: only evaluate _PDC once per processor
If we evaluate _PDC in the early path, we do not want to evaluate it again when the processor driver is loaded. Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Alex Chiang <achiang@hp.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
@ -125,6 +125,8 @@ acpi_processor_eval_pdc(acpi_handle handle, struct acpi_object_list *pdc_in)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int early_pdc_done;
|
||||||
|
|
||||||
void acpi_processor_set_pdc(acpi_handle handle)
|
void acpi_processor_set_pdc(acpi_handle handle)
|
||||||
{
|
{
|
||||||
struct acpi_object_list *obj_list;
|
struct acpi_object_list *obj_list;
|
||||||
@ -132,6 +134,9 @@ void acpi_processor_set_pdc(acpi_handle handle)
|
|||||||
if (arch_has_acpi_pdc() == false)
|
if (arch_has_acpi_pdc() == false)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (early_pdc_done)
|
||||||
|
return;
|
||||||
|
|
||||||
obj_list = acpi_processor_alloc_pdc();
|
obj_list = acpi_processor_alloc_pdc();
|
||||||
if (!obj_list)
|
if (!obj_list)
|
||||||
return;
|
return;
|
||||||
@ -199,4 +204,6 @@ void __init acpi_early_processor_set_pdc(void)
|
|||||||
acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT,
|
acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT,
|
||||||
ACPI_UINT32_MAX,
|
ACPI_UINT32_MAX,
|
||||||
early_init_pdc, NULL, NULL, NULL);
|
early_init_pdc, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
early_pdc_done = 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user