diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-06-30 14:11:58 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-06-30 14:11:58 -0400 |
| commit | c76760926a802d0b13e0a7c200224ec289611998 (patch) | |
| tree | 35012f540e1629a0103975755c4b023a4b560500 /arch | |
| parent | 21f27291f561ff501a8c133714ac89b2f3ccd110 (diff) | |
| parent | 6eca954e25e8a67e48334e668b9ac7da21fcbc6f (diff) | |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
Pull ACPI & Power Management patches from Len Brown.
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
acpi_pad: fix power_saving thread deadlock
ACPI video: Still use ACPI backlight control if _DOS doesn't exist
ACPI, APEI, Avoid too much error reporting in runtime
ACPI: Add a quirk for "AMILO PRO V2030" to ignore the timer overriding
ACPI: Remove one board specific WARN when ignoring timer overriding
ACPI: Make acpi_skip_timer_override cover all source_irq==0 cases
ACPI, x86: fix Dell M6600 ACPI reboot regression via DMI
ACPI sysfs.c strlen fix
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86/kernel/acpi/boot.c | 27 | ||||
| -rw-r--r-- | arch/x86/kernel/reboot.c | 8 |
2 files changed, 24 insertions, 11 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 8afb69319815..b2297e58c6ed 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
| @@ -422,12 +422,14 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header, | |||
| 422 | return 0; | 422 | return 0; |
| 423 | } | 423 | } |
| 424 | 424 | ||
| 425 | if (intsrc->source_irq == 0 && intsrc->global_irq == 2) { | 425 | if (intsrc->source_irq == 0) { |
| 426 | if (acpi_skip_timer_override) { | 426 | if (acpi_skip_timer_override) { |
| 427 | printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n"); | 427 | printk(PREFIX "BIOS IRQ0 override ignored.\n"); |
| 428 | return 0; | 428 | return 0; |
| 429 | } | 429 | } |
| 430 | if (acpi_fix_pin2_polarity && (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) { | 430 | |
| 431 | if ((intsrc->global_irq == 2) && acpi_fix_pin2_polarity | ||
| 432 | && (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) { | ||
| 431 | intsrc->inti_flags &= ~ACPI_MADT_POLARITY_MASK; | 433 | intsrc->inti_flags &= ~ACPI_MADT_POLARITY_MASK; |
| 432 | printk(PREFIX "BIOS IRQ0 pin2 override: forcing polarity to high active.\n"); | 434 | printk(PREFIX "BIOS IRQ0 pin2 override: forcing polarity to high active.\n"); |
| 433 | } | 435 | } |
| @@ -1334,17 +1336,12 @@ static int __init dmi_disable_acpi(const struct dmi_system_id *d) | |||
| 1334 | } | 1336 | } |
| 1335 | 1337 | ||
| 1336 | /* | 1338 | /* |
| 1337 | * Force ignoring BIOS IRQ0 pin2 override | 1339 | * Force ignoring BIOS IRQ0 override |
| 1338 | */ | 1340 | */ |
| 1339 | static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) | 1341 | static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) |
| 1340 | { | 1342 | { |
| 1341 | /* | ||
| 1342 | * The ati_ixp4x0_rev() early PCI quirk should have set | ||
| 1343 | * the acpi_skip_timer_override flag already: | ||
| 1344 | */ | ||
| 1345 | if (!acpi_skip_timer_override) { | 1343 | if (!acpi_skip_timer_override) { |
| 1346 | WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n"); | 1344 | pr_notice("%s detected: Ignoring BIOS IRQ0 override\n", |
| 1347 | pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n", | ||
| 1348 | d->ident); | 1345 | d->ident); |
| 1349 | acpi_skip_timer_override = 1; | 1346 | acpi_skip_timer_override = 1; |
| 1350 | } | 1347 | } |
| @@ -1438,7 +1435,7 @@ static struct dmi_system_id __initdata acpi_dmi_table_late[] = { | |||
| 1438 | * is enabled. This input is incorrectly designated the | 1435 | * is enabled. This input is incorrectly designated the |
| 1439 | * ISA IRQ 0 via an interrupt source override even though | 1436 | * ISA IRQ 0 via an interrupt source override even though |
| 1440 | * it is wired to the output of the master 8259A and INTIN0 | 1437 | * it is wired to the output of the master 8259A and INTIN0 |
| 1441 | * is not connected at all. Force ignoring BIOS IRQ0 pin2 | 1438 | * is not connected at all. Force ignoring BIOS IRQ0 |
| 1442 | * override in that cases. | 1439 | * override in that cases. |
| 1443 | */ | 1440 | */ |
| 1444 | { | 1441 | { |
| @@ -1473,6 +1470,14 @@ static struct dmi_system_id __initdata acpi_dmi_table_late[] = { | |||
| 1473 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), | 1470 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"), |
| 1474 | }, | 1471 | }, |
| 1475 | }, | 1472 | }, |
| 1473 | { | ||
| 1474 | .callback = dmi_ignore_irq0_timer_override, | ||
| 1475 | .ident = "FUJITSU SIEMENS", | ||
| 1476 | .matches = { | ||
| 1477 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 1478 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO PRO V2030"), | ||
| 1479 | }, | ||
| 1480 | }, | ||
| 1476 | {} | 1481 | {} |
| 1477 | }; | 1482 | }; |
| 1478 | 1483 | ||
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 25b48edb847c..5de92f1abd76 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
| @@ -451,6 +451,14 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = { | |||
| 451 | DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"), | 451 | DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"), |
| 452 | }, | 452 | }, |
| 453 | }, | 453 | }, |
| 454 | { /* Handle problems with rebooting on the Precision M6600. */ | ||
| 455 | .callback = set_pci_reboot, | ||
| 456 | .ident = "Dell OptiPlex 990", | ||
| 457 | .matches = { | ||
| 458 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
| 459 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"), | ||
| 460 | }, | ||
| 461 | }, | ||
| 454 | { } | 462 | { } |
| 455 | }; | 463 | }; |
| 456 | 464 | ||
