patch-2.4.21 linux-2.4.21/arch/x86_64/kernel/pci-irq.c
Next file: linux-2.4.21/arch/x86_64/kernel/pci-x86_64.c
Previous file: linux-2.4.21/arch/x86_64/kernel/pci-gart.c
Back to the patch index
Back to the overall index
- Lines: 25
- Date:
2003-06-13 07:51:32.000000000 -0700
- Orig file:
linux-2.4.20/arch/x86_64/kernel/pci-irq.c
- Orig date:
2002-11-28 15:53:12.000000000 -0800
diff -urN linux-2.4.20/arch/x86_64/kernel/pci-irq.c linux-2.4.21/arch/x86_64/kernel/pci-irq.c
@@ -742,9 +742,15 @@
void pcibios_enable_irq(struct pci_dev *dev)
{
u8 pin;
+ extern int interrupt_line_quirk;
+
pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
if (pin && !pcibios_lookup_irq(dev, 1) && !dev->irq) {
char *msg;
+ /* With IDE legacy devices the IRQ lookup failure is not a problem.. */
+ if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE && !(dev->class & 0x5))
+ return;
+
if (io_apic_assign_pci_irqs)
msg = " Probably buggy MP table.";
else if (pci_probe & PCI_BIOS_IRQ_SCAN)
@@ -754,4 +760,8 @@
printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
'A' + pin - 1, dev->slot_name, msg);
}
+ /* VIA bridges use interrupt line for apic/pci steering across
+ the V-Link */
+ else if (interrupt_line_quirk)
+ pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)