All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jgarzik@mandrakesoft.com>
To: Aaron Krowne <akrowne@vt.edu>
Cc: linux-kernel@vger.kernel.org
Subject: Re: what's up with IRQ routing in 2.4.x ?
Date: Fri, 08 Jun 2001 01:57:40 -0400	[thread overview]
Message-ID: <3B206954.CD461E00@mandrakesoft.com> (raw)
In-Reply-To: <200106080410.f584Aj021251@mailrtr04.ntelos.net>

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

Aaron Krowne wrote:
> I have an AMD KT133A system.  I have two friends with PIII-based laptops (one
> toshiba, one thinkpad.)  We have all noticed the exact same strange behavior
> despite our various hardware.  We're all running linux 2.4.4 or 2.4.5.  The
> strange thing is that, whenever it has the opportunity to set an IRQ, linux
> puts the device in question on the same IRQ which seems fixed for the system.
> But it gets stranger.  This IRQ is always IRQ 11.  On all 3 systems.  On my
> system, I can specify "assign IRQ for USB".  When I do this, USB gets its own
> IRQ and works (sorta).  When I do not, USB goes on IRQ 11 too!  And, in this
> case, lots of devices on USB refuse their addresses and such, which does not
> happen when USB has its own IRQ.

I'm curious if the attached patch helps anything.

Also, note that I fixed some Via-mobo-related issues in the following
patch:
ftp://ftp.us.kernel.org/pub/linux/kernel/people/jgarzik/patches/2.4.6/via-fixup-2.4.6.1.patch.gz

-- 
Jeff Garzik      | Andre the Giant has a posse.
Building 1024    |
MandrakeSoft     |

[-- Attachment #2: irq-alloc.patch --]
[-- Type: text/plain, Size: 1122 bytes --]

Index: arch/i386/kernel/pci-irq.c
===================================================================
RCS file: /cvsroot/gkernel/linux_2_4/arch/i386/kernel/pci-irq.c,v
retrieving revision 1.1.1.60
diff -u -r1.1.1.60 pci-irq.c
--- arch/i386/kernel/pci-irq.c	2001/06/05 02:40:23	1.1.1.60
+++ arch/i386/kernel/pci-irq.c	2001/06/08 05:43:34
@@ -498,6 +498,7 @@
 	struct irq_info *info;
 	int i, pirq, newirq;
 	int irq = 0;
+	int retried = 0;
 	u32 mask;
 	struct irq_router *r = pirq_router;
 	struct pci_dev *dev2;
@@ -534,16 +535,24 @@
 	 * reported by the device if possible.
 	 */
 	newirq = dev->irq;
+
+assign_retry:
 	if (!newirq && assign) {
 		for (i = 0; i < 16; i++) {
 			if (!(mask & (1 << i)))
 				continue;
 			if (pirq_penalty[i] < pirq_penalty[newirq] &&
-			    !request_irq(i, pcibios_test_irq_handler, SA_SHIRQ, "pci-test", dev)) {
+			    !request_irq(i, pcibios_test_irq_handler,
+			    		 retried ? SA_SHIRQ : 0,
+					 "pci-test", dev)) {
 				free_irq(i, dev);
 				newirq = i;
 			}
 		}
+	}
+	if (!newirq && !retried) {
+		retried = 1;
+		goto assign_retry;
 	}
 	DBG(" -> newirq=%d", newirq);
 

  reply	other threads:[~2001-06-08  5:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-08  4:10 what's up with IRQ routing in 2.4.x ? Aaron Krowne
2001-06-08  5:57 ` Jeff Garzik [this message]
2001-06-08  6:51   ` Aaron Krowne
2001-06-08  7:56     ` [PATCH] " Jeff Garzik

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=3B206954.CD461E00@mandrakesoft.com \
    --to=jgarzik@mandrakesoft.com \
    --cc=akrowne@vt.edu \
    --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.