mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Martin Mares <mj@suse.cz>
To: linux-kernel@vger.kernel.org
Subject: Re: reordering pci interrupts?
Date: Sun, 19 Nov 2000 20:22:10 +0100	[thread overview]
Message-ID: <20001119202210.B272@albireo.ucw.cz> (raw)
In-Reply-To: <20001118163258.A1643@cerebro.laendle>
In-Reply-To: <20001118163258.A1643@cerebro.laendle>; from pcg@goof.com on Sat, Nov 18, 2000 at 04:32:58PM +0100

Hello!

> I have a motherboard with a broken bios that is unable to set interrupts
> correctly, i.e. it initializes the devices corerctly but swaps the
> interrupts for slot1/slot3 and slot2/slot4.
> 
> Now, is there a way to forcefully re-order the pci-interrupts? I do not
> have an io-apic (thus no pirq=xxx), and I tried to poke the interrupt
> values directly into /proc/bus/pic/*/*, but the kernel has it's own idea.
> 
> Thanks a lot for any info (I guess I'll just patch the kernel).

Please try this patch and boot with "pci=autoirq" on the kernel command line.

				Have a nice fortnight
-- 
Martin `MJ' Mares <mj@ucw.cz> <mj@suse.cz> http://atrey.karlin.mff.cuni.cz/~mj/
"veni, vidi, nuclei deceiri - I came, I saw, I core dumped"


--- arch/i386/kernel/pci-pc.c.mj	Sun Nov 19 20:18:14 2000
+++ arch/i386/kernel/pci-pc.c	Sun Nov 19 20:18:14 2000
@@ -1035,6 +1035,9 @@
 	} else if (!strncmp(str, "lastbus=", 8)) {
 		pcibios_last_bus = simple_strtol(str+8, NULL, 0);
 		return NULL;
+	} else if (!strcmp(str, "autoirq")) {
+		pci_probe |= PCI_AUTOIRQ;
+		return NULL;
 	}
 	return str;
 }
--- arch/i386/kernel/pci-i386.h.mj	Sun Nov 19 20:18:32 2000
+++ arch/i386/kernel/pci-i386.h	Sun Nov 19 20:18:32 2000
@@ -18,6 +18,7 @@
 #define PCI_NO_SORT 0x100
 #define PCI_BIOS_SORT 0x200
 #define PCI_NO_CHECKS 0x400
+#define PCI_AUTOIRQ 0x800
 #define PCI_ASSIGN_ROMS 0x1000
 #define PCI_BIOS_IRQ_SCAN 0x2000
 
--- arch/i386/kernel/pci-irq.c.mj	Sun Nov 19 20:18:50 2000
+++ arch/i386/kernel/pci-irq.c	Sun Nov 19 20:18:50 2000
@@ -487,7 +487,7 @@
 		 * If the BIOS has set an out of range IRQ number, just ignore it.
 		 * Also keep track of which IRQ's are already in use.
 		 */
-		if (dev->irq >= 16) {
+		if (dev->irq >= 16 || (pci_probe & PCI_AUTOIRQ)) {
 			DBG("%s: ignoring bogus IRQ %d\n", dev->slot_name, dev->irq);
 			dev->irq = 0;
 		}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

      reply	other threads:[~2000-11-19 19:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-18 15:32 Marc Lehmann
2000-11-19 19:22 ` Martin Mares [this message]

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=20001119202210.B272@albireo.ucw.cz \
    --to=mj@suse.cz \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®