From c19d087bece6d71d2dab2b7d4fdce2f5520714fa Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Jul 2008 01:12:06 +0100 Subject: [PATCH] --- yaml --- r: 99779 b: refs/heads/master c: 9340e1ccdf7b9b22a2be7f51cd74e8b5e11961bf h: refs/heads/master i: 99777: accb3266a8f4e207b8dd42e0245ff672dc50da92 99775: 8526bb5be9aa32da2672f24843a12776957ed898 v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/acpi/boot.c | 37 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 02c879fdcbac..f53608f1bd5d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 471694ea6c6ccdf7131354f1d698d4d83a605293 +refs/heads/master: 9340e1ccdf7b9b22a2be7f51cd74e8b5e11961bf diff --git a/trunk/arch/x86/kernel/acpi/boot.c b/trunk/arch/x86/kernel/acpi/boot.c index 92a542653956..9908ef45a6b2 100644 --- a/trunk/arch/x86/kernel/acpi/boot.c +++ b/trunk/arch/x86/kernel/acpi/boot.c @@ -1426,6 +1426,17 @@ static int __init force_acpi_ht(const struct dmi_system_id *d) return 0; } +/* + * Don't register any I/O APIC entries for the 8254 timer IRQ. + */ +static int __init +dmi_disable_irq0_through_ioapic(const struct dmi_system_id *d) +{ + pr_notice("%s detected: disabling IRQ 0 through I/O APIC\n", d->ident); + disable_irq0_through_ioapic = 1; + return 0; +} + /* * If your system is blacklisted here, but you find that acpi=force * works for you, please contact acpi-devel@sourceforge.net @@ -1593,6 +1604,32 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), }, }, + /* + * HP laptops which use a DSDT reporting as HP/SB400/10000, + * which includes some code which overrides all temperature + * trip points to 16C if the INTIN2 input of the I/O APIC + * is enabled. This input is incorrectly designated the + * ISA IRQ 0 via an interrupt source override even though + * it is wired to the output of the master 8259A and INTIN0 + * is not connected at all. Abandon any attempts to route + * IRQ 0 through the I/O APIC therefore. + */ + { + .callback = dmi_disable_irq0_through_ioapic, + .ident = "HP NX6125 laptop", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6125"), + }, + }, + { + .callback = dmi_disable_irq0_through_ioapic, + .ident = "HP NX6325 laptop", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6325"), + }, + }, {} };