aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2010-01-20 01:26:22 -0500
committerLen Brown <len.brown@intel.com>2010-01-20 01:26:22 -0500
commit418521deef3b3dd478a54e4e21d983e010c848f7 (patch)
treee5f42f899edfdab08f842188eede783ad48893cd /drivers
parentbe6066f34c948ccf4adcc90bbeb1fd335d663303 (diff)
parent2205cbe8ecaf5f3ab911cef839c94d05ea5b0c76 (diff)
Merge branch 'bugzilla-14954' into release
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/processor_pdc.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c
index 7d4ee394d0b3..7247819dbd80 100644
--- a/drivers/acpi/processor_pdc.c
+++ b/drivers/acpi/processor_pdc.c
@@ -144,6 +144,29 @@ void acpi_processor_set_pdc(acpi_handle handle)
144} 144}
145EXPORT_SYMBOL_GPL(acpi_processor_set_pdc); 145EXPORT_SYMBOL_GPL(acpi_processor_set_pdc);
146 146
147static int early_pdc_optin;
148static int set_early_pdc_optin(const struct dmi_system_id *id)
149{
150 early_pdc_optin = 1;
151 return 0;
152}
153
154static struct dmi_system_id __cpuinitdata early_pdc_optin_table[] = {
155 {
156 set_early_pdc_optin, "HP Envy", {
157 DMI_MATCH(DMI_BIOS_VENDOR, "Hewlett-Packard"),
158 DMI_MATCH(DMI_PRODUCT_NAME, "HP Envy") }, NULL},
159 {
160 set_early_pdc_optin, "HP Pavilion dv6", {
161 DMI_MATCH(DMI_BIOS_VENDOR, "Hewlett-Packard"),
162 DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv6") }, NULL},
163 {
164 set_early_pdc_optin, "HP Pavilion dv7", {
165 DMI_MATCH(DMI_BIOS_VENDOR, "Hewlett-Packard"),
166 DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv7") }, NULL},
167 {},
168};
169
147static acpi_status 170static acpi_status
148early_init_pdc(acpi_handle handle, u32 lvl, void *context, void **rv) 171early_init_pdc(acpi_handle handle, u32 lvl, void *context, void **rv)
149{ 172{
@@ -159,6 +182,13 @@ void __init acpi_early_processor_set_pdc(void)
159 */ 182 */
160 dmi_check_system(processor_idle_dmi_table); 183 dmi_check_system(processor_idle_dmi_table);
161 184
185 /*
186 * Allow systems to opt-in to early _PDC evaluation.
187 */
188 dmi_check_system(early_pdc_optin_table);
189 if (!early_pdc_optin)
190 return;
191
162 acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, 192 acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT,
163 ACPI_UINT32_MAX, 193 ACPI_UINT32_MAX,
164 early_init_pdc, NULL, NULL, NULL); 194 early_init_pdc, NULL, NULL, NULL);