Skip to content

2.6.7-mm1, port Acer laptop irq routing workaround to new DMI probing

Andrey Panin lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/62.6.7-mm1, port PnP BIOS driver to new DMI probingarch/i386/kernel/dmi_scan.c drivers/pnp/pnpbios/core.c+31 -250 replies
2/62.6.7-mm1, port sonypi driver to new DMI probingarch/i386/kernel/dmi_scan.c arch/i386/kernel/i386_ksyms.c drivers/char/sonypi.c +1 more+15 -310 replies
3/62.6.7-mm1, port PIIX4 SMBUS driver to new DMI probingarch/i386/kernel/dmi_scan.c drivers/i2c/busses/i2c-piix4.c+10 -380 replies
4/62.6.7-mm1, port powernow-k7 driver to new DMI probingarch/i386/kernel/cpu/cpufreq/powernow-k7.c arch/i386/kernel/dmi_scan.c+27 -210 replies
5/62.6.7-mm1, remove unused ASUS K7V-RM DMI quirkarch/i386/kernel/dmi_scan.c+0 -173 replies
6/62.6.7-mm1, port APM BIOS driver to new DMI probingarch/i386/kernel/apm.c arch/i386/kernel/dmi_scan.c+316 -3400 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/6] 2.6.7-mm1, port Acer laptop irq routing workaround to new DMI probing

This patch moves PCI IRQ routing workaround for Acer TravelMate 360 laptop to arch/i386/pci/irq.c and makes acer_tm360_irqrouting variable static. It also fixes VisWs build error caused by this workaround code.

 arch/i386/kernel/dmi_scan.c |   23 -----------------------
 arch/i386/pci/irq.c         |   23 ++++++++++++++++++++++-
 2 files changed, 22 insertions(+), 24 deletions(-)
arch/i386/kernel/dmi_scan.c +0 -23
diff -urpN -X /usr/share/dontdiff linux-2.6.7-mm1.vanilla/arch/i386/kernel/dmi_scan.c linux-2.6.7-mm1/arch/i386/kernel/dmi_scan.c
@@ -317,21 +317,6 @@ static __init int disable_smbus(struct d
 }
 
 /*
- * Work around broken Acer TravelMate 360 Notebooks which assign Cardbus to
- * IRQ 11 even though it is actually wired to IRQ 10
- */
-static __init int fix_acer_tm360_irqrouting(struct dmi_blacklist *d)
-{
-#ifdef CONFIG_PCI
-	extern int acer_tm360_irqrouting;
-	if (acer_tm360_irqrouting == 0) {
-		acer_tm360_irqrouting = 1;
-		printk(KERN_INFO "%s detected - fixing broken IRQ routing\n", d->ident);
-	}
-#endif
-	return 0;
-}
-/*
  *  Check for clue free BIOS implementations who use
  *  the following QA technique
  *
@@ -827,14 +812,6 @@ static __initdata struct dmi_blacklist d
 			MATCH(DMI_BIOS_VERSION, "1AET38WW (1.01b)"),
 			NO_MATCH, NO_MATCH
 			} },
-	 
-	{ fix_acer_tm360_irqrouting, "Acer TravelMate 36x Laptop", {
-			MATCH(DMI_SYS_VENDOR, "Acer"),
-			MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
-			NO_MATCH, NO_MATCH
-			} },
-
- 
 
 	/*
 	 *	Generic per vendor APM settings
arch/i386/pci/irq.c +22 -1
diff -urpN -X /usr/share/dontdiff linux-2.6.7-mm1.vanilla/arch/i386/pci/irq.c linux-2.6.7-mm1/arch/i386/pci/irq.c
@@ -24,7 +24,7 @@
 #define PIRQ_VERSION 0x0100
 
 static int broken_hp_bios_irq9;
-int acer_tm360_irqrouting;
+static int acer_tm360_irqrouting;
 
 static struct irq_routing_table *pirq_table;
 
@@ -916,6 +916,19 @@ static int __init fix_broken_hp_bios_irq
 	return 0;
 }
 
+/*
+ * Work around broken Acer TravelMate 360 Notebooks which assign
+ * Cardbus to IRQ 11 even though it is actually wired to IRQ 10
+ */
+static int __init fix_acer_tm360_irqrouting(struct dmi_system_id *d)
+{
+	if (!acer_tm360_irqrouting) {
+		acer_tm360_irqrouting = 1;
+		printk(KERN_INFO "%s detected - fixing broken IRQ routing\n", d->ident);
+	}
+	return 0;
+}
+
 static struct dmi_system_id __initdata pciirq_dmi_table[] = {
 	{
 		.callback = fix_broken_hp_bios_irq9,
@@ -925,6 +938,14 @@ static struct dmi_system_id __initdata p
 			DMI_MATCH(DMI_BIOS_VERSION, "GE.M1.03"),
 			DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GE"),
 			DMI_MATCH(DMI_BOARD_VERSION, "OmniBook N32N-736"),
+		},
+	},
+	{
+		.callback = fix_acer_tm360_irqrouting,
+		.ident = "Acer TravelMate 36x Laptop",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
 		},
 	},
 	{ }