Messages in this thread Patches in this message | | | From | Dominik Brodowski <> | Subject | [patch] Re: IRQ routing conflicts / Assigning IRQ 0 to ethernet | Date | Wed, 3 Apr 2002 00:07:53 +0200 |
| |
Luis:
This patch should resolve the remaining issues. Patch is against acpi-20020329 + 2.5.7/2.4.18. Please test + tell me if it works.
Dominik
--- linux/arch/i386/kernel/pci-irq.c.original Tue Apr 2 13:35:24 2002 +++ linux/arch/i386/kernel/pci-irq.c Tue Apr 2 13:47:23 2002 @@ -576,10 +576,8 @@ struct pci_dev *dev2; char *msg = NULL; - if (!pirq_table) - return 0; - /* Find IRQ routing entry */ + /* Find IRQ pin */ pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); if (!pin) { DBG(" -> no interrupt pin\n"); @@ -588,10 +586,17 @@ pin = pin - 1; #ifdef CONFIG_ACPI_PCI + /* Use ACPI to lookup IRQ */ + if (pci_use_acpi_routing) return acpi_lookup_irq(dev, pin, assign); #endif + /* Find IRQ routing entry */ + + if (!pirq_table) + return 0; + DBG("IRQ for %s:%d", dev->slot_name, pin); info = pirq_get_info(dev); if (!info) {
On Tuesday, 2. April 2002 23:54, Luis Falcon wrote: > Bryan, > > Thanks a lot for your response. > In fact the IRQ routing conflict has been solved ! > > What is still pending is the assignment of a valid IRQ to the Ethernet card > ( device 00:05.0 ) and Sound Card ( 00:07.5 ). So, at this point, the > ethernet card doesn't work. > does not work. > > Here's the latest dmesg. > > Regards, > Luis--- linux/arch/i386/kernel/pci-irq.c.original Tue Apr 2 13:35:24 2002 +++ linux/arch/i386/kernel/pci-irq.c Tue Apr 2 13:47:23 2002 @@ -576,10 +576,8 @@ struct pci_dev *dev2; char *msg = NULL; - if (!pirq_table) - return 0; - /* Find IRQ routing entry */ + /* Find IRQ pin */ pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); if (!pin) { DBG(" -> no interrupt pin\n"); @@ -588,10 +586,17 @@ pin = pin - 1; #ifdef CONFIG_ACPI_PCI + /* Use ACPI to lookup IRQ */ + if (pci_use_acpi_routing) return acpi_lookup_irq(dev, pin, assign); #endif + /* Find IRQ routing entry */ + + if (!pirq_table) + return 0; + DBG("IRQ for %s:%d", dev->slot_name, pin); info = pirq_get_info(dev); if (!info) { | |