mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Petr Matula <pem@informatics.muni.cz>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: "Dunlap, Randy" <randy.dunlap@intel.com>,
	pem@informatics.muni.cz, MOLNAR Ingo <mingo@chiara.elte.hu>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: int. assignment on SMP + ServerWorks chipset
Date: Wed, 17 Jan 2001 18:50:47 +0100	[thread overview]
Message-ID: <20010117185047.A13171968@aisa.fi.muni.cz> (raw)
In-Reply-To: <D5E932F578EBD111AC3F00A0C96B1E6F07DBDF24@orsmsx31.jf.intel.com> <Pine.LNX.4.10.10101152031110.12667-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.10.10101152031110.12667-100000@penguin.transmeta.com>; from torvalds@transmeta.com on Mon, Jan 15, 2001 at 08:49:56PM -0800

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

On Mon, Jan 15, 2001 at 08:49:56PM -0800, Linus Torvalds wrote:
> So what I _think_ is the correct change is to do roughly this in
> arch/i386/kernel/pci-irq.c:
> 
>  - in pcibios_fixup_irqs(), remove the
> 
> 	#idef CONFIG_X86_IO_APIC
> 		...
> 	#endif
> 
>    section entirely.
> 
>  - in pcibios_enable_irq(), at the _end_ (after having enabled the irq
>    with "pcibios_lookup_irq(dev, 1)", do something like
> 
> 	irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, PCI_SLOT(dev->devfn), pin);
> 	if (irq > 0)
> 		dev->irq = irq;
> 
> and add a LOT of debug printk's, and enable DEBUG in pci-i386.h.

I did the changes above to 2.4.0 source. 
Kernel with these changes can't detect my SCSI drive. It prints these messages 
in cycle:
SCSI host 0 abort (pid 0) timed out - resetting
SCSI host is being reset for host 0 channel 0
SCSI host 0 channel 0 reset (pid 0) timed out - trying harder
SCSI host is being reset for host 0 channel 0

Same configuration without changes above detects SCSI drive without problem.
For completness, made changes are attached.

Could anybody help?

Petr

---------------------------------------------------------------
 Petr Matula                                    pem@fi.muni.cz
                                    http://www.fi.muni.cz/~pem
---------------------------------------------------------------

[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 2224 bytes --]

--- linux/arch/i386/kernel/pci-irq.c	Thu Jan  4 05:45:26 2001
+++ linux~/arch/i386/kernel/pci-irq.c	Wed Jan 17 17:30:53 2001
@@ -559,40 +559,6 @@
 
 	pci_for_each_dev(dev) {
 		pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-#ifdef CONFIG_X86_IO_APIC
-		/*
-		 * Recalculate IRQ numbers if we use the I/O APIC.
-		 */
-		if (io_apic_assign_pci_irqs)
-		{
-			int irq;
-
-			if (pin) {
-				pin--;		/* interrupt pins are numbered starting from 1 */
-				irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, PCI_SLOT(dev->devfn), pin);
-/*
- * Will be removed completely if things work out well with fuzzy parsing
- */
-#if 0
-				if (irq < 0 && dev->bus->parent) { /* go back to the bridge */
-					struct pci_dev * bridge = dev->bus->self;
-
-					pin = (pin + PCI_SLOT(dev->devfn)) % 4;
-					irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, 
-							PCI_SLOT(bridge->devfn), pin);
-					if (irq >= 0)
-						printk(KERN_WARNING "PCI: using PPB(B%d,I%d,P%d) to get irq %d\n", 
-							bridge->bus->number, PCI_SLOT(bridge->devfn), pin, irq);
-				}
-#endif
-				if (irq >= 0) {
-					printk("PCI->APIC IRQ transform: (B%d,I%d,P%d) -> %d\n",
-						dev->bus->number, PCI_SLOT(dev->devfn), pin, irq);
-					dev->irq = irq;
-				}
-			}
-		}
-#endif
 		/*
 		 * Still no IRQ? Try to lookup one...
 		 */
@@ -612,6 +578,7 @@
 
 void pcibios_enable_irq(struct pci_dev *dev)
 {
+  unsigned int irq;
 	u8 pin;
 	pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
 	if (pin && !pcibios_lookup_irq(dev, 1) && !dev->irq) {
@@ -624,5 +591,14 @@
 			msg = " Please try using pci=biosirq.";
 		printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
 		       'A' + pin - 1, dev->slot_name, msg);
+
+                printk("Doing: IO_APIC_get_PCI_irq_vector\n");
+                printk("dev->bus->number    : %c\n",dev->bus->number);
+                printk("PCI_SLOT(dev->devfn): %d\n",PCI_SLOT(dev->devfn));
+                printk("pin                 : %hhd\n",pin);
+                irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, PCI_SLOT(dev->devfn), pin);
+                printk("assigned irq        : %u\n",irq);
+                if (irq > 0)
+                  dev->irq = irq;    
 	}
 }

  parent reply	other threads:[~2001-01-17 17:51 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <D5E932F578EBD111AC3F00A0C96B1E6F07DBDF24@orsmsx31.jf.intel.com>
2001-01-16  4:49 ` Linus Torvalds
2001-01-16  5:35   ` Tim Hockin
2001-01-17 10:03   ` Overriding BIOS settings with kernel 2.4.0 bandit2
2001-01-18  3:23     ` Matt Kemner
2001-01-17 17:50   ` Petr Matula [this message]
2001-01-17 18:11     ` int. assignment on SMP + ServerWorks chipset Andre Hedrick
2001-01-17 21:33     ` Linus Torvalds
2001-01-18  7:43       ` Petr Matula
2001-01-17  1:39 Duncan Laurie
2001-01-17 17:53 ` Petr Matula
2001-01-18  8:58 ` Petr Matula
2001-01-22  4:54   ` Duncan Laurie
2001-01-22 22:05     ` Randy.Dunlap
2001-01-22 23:46       ` Duncan Laurie
2001-01-24  8:43     ` Petr Matula
2001-01-22  0:26 Dunlap, Randy
2001-01-22 17:01 Dunlap, Randy
2001-01-23  1:52 Dunlap, Randy

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=20010117185047.A13171968@aisa.fi.muni.cz \
    --to=pem@informatics.muni.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@chiara.elte.hu \
    --cc=randy.dunlap@intel.com \
    --cc=torvalds@transmeta.com \
    /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®