Subject: Re: linux-next: Tree for July 8: nx6325-related commits

From: "Rafael J. Wysocki" <[email-masked]>
Date: Wed, 9 Jul 2008 00:48:47 +0200

Hi Ingo,

On Tuesday, 8 of July 2008, Stephen Rothwell wrote:
> Hi all,
> 
> Changes since next-20080704:
> 
> Temporarily dropped tree: ttydev (since it would not import on top of any
> tree I have)
> 
> The usb.current gained a white space conflict against Linus' tree (which I
> assume will be gone as soon as Greg rebases his tree).
> 
> The usb tree gained a conflict against Linus' tree.
> 
> The tip-core tree gained a conflict against Linus' tree.
> 
> The sched tree lost a build fix patch.
> 
> The x86 tree lost a conflict against Linus' tree but gained two against
> the ftrace tree.

Commits 0b3d81ad4f765513347a04434efc15cbdc4e1c54
("x86, ioapic, acpi: add a knob to disable IRQ 0 through I/O APIC") and
e38502eb8aa82314d5ab0eba45f50e6790dadd88
("x86, ioapic, acpi quirk: disable IRQ 0 through I/O APIC for some HP systems")
don't work on x86_64, because acpi_dmi_table[] depends on __i386__.

Moreover, if you make them work (by removing that dependency), they hang my
nx6325 solid early during boot.

The revert patch is appended for your convenience. ;-)

Thanks,
Rafael

---
 arch/x86/kernel/acpi/boot.c |   47 --------------------------------------------
 1 file changed, 47 deletions(-)

Index: linux-next/arch/x86/kernel/acpi/boot.c
===================================================================
--- linux-next.orig/arch/x86/kernel/acpi/boot.c
+++ linux-next/arch/x86/kernel/acpi/boot.c
@@ -83,8 +83,6 @@ int acpi_lapic;
 int acpi_ioapic;
 int acpi_strict;
 
-static int disable_irq0_through_ioapic __initdata;
-
 u8 acpi_sci_flags __initdata;
 int acpi_sci_override_gsi __initdata;
 int acpi_skip_timer_override __initdata;
@@ -996,10 +994,6 @@ mp_override_legacy_irq(u8 bus_irq, u8 po
 	int pin;
 	struct mp_config_intsrc mp_irq;
 
-	/* Skip the 8254 timer interrupt (IRQ 0) if requested.  */
-	if (bus_irq == 0 && disable_irq0_through_ioapic)
-		return;
-
 	/*
 	 * Convert 'gsi' to 'ioapic.pin'.
 	 */
@@ -1066,10 +1060,6 @@ static void __init mp_config_acpi_legacy
 	for (i = 0; i < 16; i++) {
 		int idx;
 
-		/* Skip the 8254 timer interrupt (IRQ 0) if requested.  */
-		if (i == 0 && disable_irq0_through_ioapic)
-			continue;
-
 		for (idx = 0; idx < mp_irq_entries; idx++) {
 			struct mp_config_intsrc *irq = mp_irqs + idx;
 
@@ -1429,17 +1419,6 @@ static int __init force_acpi_ht(const st
 }
 
 /*
- * 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 [email-masked]
  */
@@ -1606,32 +1585,6 @@ static struct dmi_system_id __initdata a
 		     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"),
-		     },
-	 },
 	{}
 };