diff options
Diffstat (limited to 'arch/x86/kernel/acpi/boot.c')
| -rw-r--r-- | arch/x86/kernel/acpi/boot.c | 100 |
1 files changed, 6 insertions, 94 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index a54d714545ff..0061ea263061 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
| @@ -490,6 +490,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity) | |||
| 490 | * ACPI based hotplug support for CPU | 490 | * ACPI based hotplug support for CPU |
| 491 | */ | 491 | */ |
| 492 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 492 | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
| 493 | #include <acpi/processor.h> | ||
| 493 | 494 | ||
| 494 | static void acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) | 495 | static void acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) |
| 495 | { | 496 | { |
| @@ -567,6 +568,8 @@ static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu) | |||
| 567 | goto free_new_map; | 568 | goto free_new_map; |
| 568 | } | 569 | } |
| 569 | 570 | ||
| 571 | acpi_processor_set_pdc(handle); | ||
| 572 | |||
| 570 | cpu = cpumask_first(new_map); | 573 | cpu = cpumask_first(new_map); |
| 571 | acpi_map_cpu2node(handle, cpu, physid); | 574 | acpi_map_cpu2node(handle, cpu, physid); |
| 572 | 575 | ||
| @@ -1293,23 +1296,6 @@ static int __init dmi_disable_acpi(const struct dmi_system_id *d) | |||
| 1293 | } | 1296 | } |
| 1294 | 1297 | ||
| 1295 | /* | 1298 | /* |
| 1296 | * Limit ACPI to CPU enumeration for HT | ||
| 1297 | */ | ||
| 1298 | static int __init force_acpi_ht(const struct dmi_system_id *d) | ||
| 1299 | { | ||
| 1300 | if (!acpi_force) { | ||
| 1301 | printk(KERN_NOTICE "%s detected: force use of acpi=ht\n", | ||
| 1302 | d->ident); | ||
| 1303 | disable_acpi(); | ||
| 1304 | acpi_ht = 1; | ||
| 1305 | } else { | ||
| 1306 | printk(KERN_NOTICE | ||
| 1307 | "Warning: acpi=force overrules DMI blacklist: acpi=ht\n"); | ||
| 1308 | } | ||
| 1309 | return 0; | ||
| 1310 | } | ||
| 1311 | |||
| 1312 | /* | ||
| 1313 | * Force ignoring BIOS IRQ0 pin2 override | 1299 | * Force ignoring BIOS IRQ0 pin2 override |
| 1314 | */ | 1300 | */ |
| 1315 | static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) | 1301 | static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) |
| @@ -1345,82 +1331,6 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = { | |||
| 1345 | }, | 1331 | }, |
| 1346 | 1332 | ||
| 1347 | /* | 1333 | /* |
| 1348 | * Boxes that need acpi=ht | ||
| 1349 | */ | ||
| 1350 | { | ||
| 1351 | .callback = force_acpi_ht, | ||
| 1352 | .ident = "FSC Primergy T850", | ||
| 1353 | .matches = { | ||
| 1354 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 1355 | DMI_MATCH(DMI_PRODUCT_NAME, "PRIMERGY T850"), | ||
| 1356 | }, | ||
| 1357 | }, | ||
| 1358 | { | ||
| 1359 | .callback = force_acpi_ht, | ||
| 1360 | .ident = "HP VISUALIZE NT Workstation", | ||
| 1361 | .matches = { | ||
| 1362 | DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), | ||
| 1363 | DMI_MATCH(DMI_PRODUCT_NAME, "HP VISUALIZE NT Workstation"), | ||
| 1364 | }, | ||
| 1365 | }, | ||
| 1366 | { | ||
| 1367 | .callback = force_acpi_ht, | ||
| 1368 | .ident = "Compaq Workstation W8000", | ||
| 1369 | .matches = { | ||
| 1370 | DMI_MATCH(DMI_SYS_VENDOR, "Compaq"), | ||
| 1371 | DMI_MATCH(DMI_PRODUCT_NAME, "Workstation W8000"), | ||
| 1372 | }, | ||
| 1373 | }, | ||
| 1374 | { | ||
| 1375 | .callback = force_acpi_ht, | ||
| 1376 | .ident = "ASUS CUR-DLS", | ||
| 1377 | .matches = { | ||
| 1378 | DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), | ||
| 1379 | DMI_MATCH(DMI_BOARD_NAME, "CUR-DLS"), | ||
| 1380 | }, | ||
| 1381 | }, | ||
| 1382 | { | ||
| 1383 | .callback = force_acpi_ht, | ||
| 1384 | .ident = "ABIT i440BX-W83977", | ||
| 1385 | .matches = { | ||
| 1386 | DMI_MATCH(DMI_BOARD_VENDOR, "ABIT <http://www.abit.com>"), | ||
| 1387 | DMI_MATCH(DMI_BOARD_NAME, "i440BX-W83977 (BP6)"), | ||
| 1388 | }, | ||
| 1389 | }, | ||
| 1390 | { | ||
| 1391 | .callback = force_acpi_ht, | ||
| 1392 | .ident = "IBM Bladecenter", | ||
| 1393 | .matches = { | ||
| 1394 | DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), | ||
| 1395 | DMI_MATCH(DMI_BOARD_NAME, "IBM eServer BladeCenter HS20"), | ||
| 1396 | }, | ||
| 1397 | }, | ||
| 1398 | { | ||
| 1399 | .callback = force_acpi_ht, | ||
| 1400 | .ident = "IBM eServer xSeries 360", | ||
| 1401 | .matches = { | ||
| 1402 | DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), | ||
| 1403 | DMI_MATCH(DMI_BOARD_NAME, "eServer xSeries 360"), | ||
| 1404 | }, | ||
| 1405 | }, | ||
| 1406 | { | ||
| 1407 | .callback = force_acpi_ht, | ||
| 1408 | .ident = "IBM eserver xSeries 330", | ||
| 1409 | .matches = { | ||
| 1410 | DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), | ||
| 1411 | DMI_MATCH(DMI_BOARD_NAME, "eserver xSeries 330"), | ||
| 1412 | }, | ||
| 1413 | }, | ||
| 1414 | { | ||
| 1415 | .callback = force_acpi_ht, | ||
| 1416 | .ident = "IBM eserver xSeries 440", | ||
| 1417 | .matches = { | ||
| 1418 | DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), | ||
| 1419 | DMI_MATCH(DMI_PRODUCT_NAME, "eserver xSeries 440"), | ||
| 1420 | }, | ||
| 1421 | }, | ||
| 1422 | |||
| 1423 | /* | ||
| 1424 | * Boxes that need ACPI PCI IRQ routing disabled | 1334 | * Boxes that need ACPI PCI IRQ routing disabled |
| 1425 | */ | 1335 | */ |
| 1426 | { | 1336 | { |
| @@ -1652,8 +1562,10 @@ static int __init parse_acpi(char *arg) | |||
| 1652 | } | 1562 | } |
| 1653 | /* Limit ACPI just to boot-time to enable HT */ | 1563 | /* Limit ACPI just to boot-time to enable HT */ |
| 1654 | else if (strcmp(arg, "ht") == 0) { | 1564 | else if (strcmp(arg, "ht") == 0) { |
| 1655 | if (!acpi_force) | 1565 | if (!acpi_force) { |
| 1566 | printk(KERN_WARNING "acpi=ht will be removed in Linux-2.6.35\n"); | ||
| 1656 | disable_acpi(); | 1567 | disable_acpi(); |
| 1568 | } | ||
| 1657 | acpi_ht = 1; | 1569 | acpi_ht = 1; |
| 1658 | } | 1570 | } |
| 1659 | /* acpi=rsdt use RSDT instead of XSDT */ | 1571 | /* acpi=rsdt use RSDT instead of XSDT */ |
