All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Panin <pazke@donpac.ru>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.6.7-rc2-mm2
Date: Tue, 8 Jun 2004 12:04:17 +0400	[thread overview]
Message-ID: <20040608080417.GD19170@pazke> (raw)
In-Reply-To: <20040608002245.04a3de55.akpm@osdl.org>

[-- Attachment #1: Type: text/plain, Size: 555 bytes --]

On 160, 06 08, 2004 at 12:22:45AM -0700, Andrew Morton wrote:
> Andrey Panin <pazke@donpac.ru> wrote:
> >
> > 
> >  Do you remember the reason of dropping my previous DMI patchset ? ;) 
> > 
> >  I can do it again, but this conversion will lead to new reject
> >  horrors, due to changes in cursed dmi_blacklist array.
> 
> Not the whole thing.  Just a couple of examples.

Ok, first example attached. Port HP Pavilion irq workaround
to new DMI probing.

-- 
Andrey Panin		| Linux and UNIX system administrator
pazke@donpac.ru		| PGP key: wwwkeys.pgp.net

[-- Attachment #2: patch-dmi-pciirq --]
[-- Type: text/plain, Size: 3668 bytes --]

diff -urpN -X /usr/share/dontdiff linux-2.6.7-rc2-mm2.vanilla/arch/i386/kernel/dmi_scan.c linux-2.6.7-rc2-mm2/arch/i386/kernel/dmi_scan.c
--- linux-2.6.7-rc2-mm2.vanilla/arch/i386/kernel/dmi_scan.c	2004-06-08 11:51:39.000000000 +0400
+++ linux-2.6.7-rc2-mm2/arch/i386/kernel/dmi_scan.c	2004-06-08 11:29:08.000000000 +0400
@@ -317,23 +317,6 @@ static __init int disable_smbus(struct d
 }
 
 /*
- * Work around broken HP Pavilion Notebooks which assign USB to
- * IRQ 9 even though it is actually wired to IRQ 11
- */
-static __init int fix_broken_hp_bios_irq9(struct dmi_blacklist *d)
-{
-#ifdef CONFIG_PCI
-	extern int broken_hp_bios_irq9;
-	if (broken_hp_bios_irq9 == 0)
-	{
-		broken_hp_bios_irq9 = 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
  *
@@ -823,14 +806,6 @@ static __initdata struct dmi_blacklist d
 			NO_MATCH, NO_MATCH
 			} },
 	 
-	{ fix_broken_hp_bios_irq9, "HP Pavilion N5400 Series Laptop", {
-			MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-			MATCH(DMI_BIOS_VERSION, "GE.M1.03"),
-			MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GE"),
-			MATCH(DMI_BOARD_VERSION, "OmniBook N32N-736")
-			} },
- 
-
 	/*
 	 *	Generic per vendor APM settings
 	 */
diff -urpN -X /usr/share/dontdiff linux-2.6.7-rc2-mm2.vanilla/arch/i386/pci/irq.c linux-2.6.7-rc2-mm2/arch/i386/pci/irq.c
--- linux-2.6.7-rc2-mm2.vanilla/arch/i386/pci/irq.c	2004-06-08 10:13:51.000000000 +0400
+++ linux-2.6.7-rc2-mm2/arch/i386/pci/irq.c	2004-06-08 11:28:37.000000000 +0400
@@ -12,6 +12,7 @@
 #include <linux/slab.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
+#include <linux/dmi.h>
 #include <asm/io.h>
 #include <asm/smp.h>
 #include <asm/io_apic.h>
@@ -22,7 +23,7 @@
 #define PIRQ_SIGNATURE	(('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
 #define PIRQ_VERSION 0x0100
 
-int broken_hp_bios_irq9;
+static int broken_hp_bios_irq9;
 
 static struct irq_routing_table *pirq_table;
 
@@ -893,6 +894,33 @@ static void __init pcibios_fixup_irqs(vo
 	}
 }
 
+/*
+ * Work around broken HP Pavilion Notebooks which assign USB to
+ * IRQ 9 even though it is actually wired to IRQ 11
+ */
+static int __init fix_broken_hp_bios_irq9(struct dmi_system_id *d)
+{
+	if (!broken_hp_bios_irq9) {
+		broken_hp_bios_irq9 = 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,
+		.ident = "HP Pavilion N5400 Series Laptop",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+			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"),
+		},
+	},
+	{ }
+};
+
 static int __init pcibios_irq_init(void)
 {
 	DBG("PCI: IRQ init\n");
@@ -900,6 +928,8 @@ static int __init pcibios_irq_init(void)
 	if (pcibios_enable_irq || raw_pci_ops == NULL)
 		return 0;
 
+	dmi_check_system(pciirq_dmi_table);
+
 	pirq_table = pirq_find_routing_table();
 
 #ifdef CONFIG_PCI_BIOS
diff -urpN -X /usr/share/dontdiff linux-2.6.7-rc2-mm2.vanilla/arch/i386/pci/visws.c linux-2.6.7-rc2-mm2/arch/i386/pci/visws.c
--- linux-2.6.7-rc2-mm2.vanilla/arch/i386/pci/visws.c	2004-06-08 10:13:51.000000000 +0400
+++ linux-2.6.7-rc2-mm2/arch/i386/pci/visws.c	2004-06-08 11:29:32.000000000 +0400
@@ -15,8 +15,6 @@
 #include "pci.h"
 
 
-int broken_hp_bios_irq9;
-
 extern struct pci_raw_ops pci_direct_conf1;
 
 static int pci_visws_enable_irq(struct pci_dev *dev) { return 0; }

  parent reply	other threads:[~2004-06-08  8:04 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-03  8:53 2.6.7-rc2-mm2 Andrew Morton
2004-06-03 12:48 ` 2.6.7-rc2-mm2 - hpet-dont-use-new-major borked Paul Jackson
2004-06-03 14:21 ` 2.6.7-rc2-mm2 (compile stats) John Cherry
2004-06-03 15:03 ` 2.6.7-rc2-mm2 AKIYAMA Nobuyuki
2004-06-03 15:03 ` 2.6.7-rc2-mm2 Dominik Karall
2004-06-03 23:18   ` 2.6.7-rc2-mm2 Andrew Morton
2004-06-03 23:53     ` 2.6.7-rc2-mm2 Alexander Nyberg
2004-06-04  8:17     ` 2.6.7-rc2-mm2 Dominik Karall
2004-06-04 10:34       ` 2.6.7-rc2-mm2 Lenar Lõhmus
2004-06-04 10:40     ` 2.6.7-rc2-mm2 Ralf Hildebrandt
2004-06-04 13:53   ` 2.6.7-rc2-mm2 Denis Vlasenko
2004-06-03 15:20 ` 2.6.7-rc2-mm2 Jens Axboe
2004-06-11  2:40   ` 2.6.7-rc2-mm2 Len Brown
2004-06-15  6:37     ` 2.6.7-rc2-mm2 Jens Axboe
2004-06-03 16:39 ` 2.6.7-rc2-mm2 Tim Schmielau
2004-06-04 15:05 ` 2.6.7-rc2-mm2: compile error with VIDEO_CX88=y and gcc 2.95 Adrian Bunk
2004-06-07 12:41 ` 2.6.7-rc2-mm2 Andrey Panin
     [not found]   ` <20040607220157.1e67ec39.akpm@osdl.org>
2004-06-08  5:18     ` 2.6.7-rc2-mm2 Andrey Panin
     [not found]       ` <20040607222513.6bebcbb6.akpm@osdl.org>
2004-06-08  6:34         ` 2.6.7-rc2-mm2 Andrey Panin
2004-06-08  6:42           ` 2.6.7-rc2-mm2 Andrew Morton
2004-06-08  7:18             ` 2.6.7-rc2-mm2 Andrey Panin
     [not found]               ` <20040608002245.04a3de55.akpm@osdl.org>
2004-06-08  8:04                 ` Andrey Panin [this message]
  -- strict thread matches above, loose matches on Subject: below --
2004-06-03 22:15 2.6.7-rc2-mm2 Mario ''Jorge'' Di Nitto
     [not found] <Pine.LNX.4.44L0.0406041047080.2279-100000@ida.rowland.org>
2004-06-04 15:46 ` 2.6.7-rc2-mm2 Dominik Karall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040608080417.GD19170@pazke \
    --to=pazke@donpac.ru \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.