|
@@ -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"),
|
|
|
+ },
|
|
|
+ },
|
|
|
{}
|
|
|
};
|
|
|
|