diff options
Diffstat (limited to 'drivers/acpi/processor_pdc.c')
| -rw-r--r-- | drivers/acpi/processor_pdc.c | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c index 7247819dbd80..e306ba9aa34e 100644 --- a/drivers/acpi/processor_pdc.c +++ b/drivers/acpi/processor_pdc.c @@ -125,6 +125,8 @@ acpi_processor_eval_pdc(acpi_handle handle, struct acpi_object_list *pdc_in)  	return status;  } +static int early_pdc_done; +  void acpi_processor_set_pdc(acpi_handle handle)  {  	struct acpi_object_list *obj_list; @@ -132,6 +134,9 @@ void acpi_processor_set_pdc(acpi_handle handle)  	if (arch_has_acpi_pdc() == false)  		return; +	if (early_pdc_done) +		return; +  	obj_list = acpi_processor_alloc_pdc();  	if (!obj_list)  		return; @@ -151,6 +156,13 @@ static int set_early_pdc_optin(const struct dmi_system_id *id)  	return 0;  } +static int param_early_pdc_optin(char *s) +{ +	early_pdc_optin = 1; +	return 1; +} +__setup("acpi_early_pdc_eval", param_early_pdc_optin); +  static struct dmi_system_id __cpuinitdata early_pdc_optin_table[] = {  	{  	set_early_pdc_optin, "HP Envy", { @@ -192,4 +204,6 @@ void __init acpi_early_processor_set_pdc(void)  	acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT,  			    ACPI_UINT32_MAX,  			    early_init_pdc, NULL, NULL, NULL); + +	early_pdc_done = 1;  }  |