On Wed, 2007-12-05 at 14:18 +0000, Alan Cox wrote: > > When IDE device works in legacy mode, the IRQ of IDE is fixed at 14/15 > > for the two channel. But IDE controller is a PCI device, OS will assign > > an interrupt number for the PCI device in which IDE controller resides. > > This is realized by calling ide_pci_enable, which will call > > pcibios_enable_irq. > > And pcibios_enable_irq should see interrupt in as 0 in that case. It also > knows about this but it seems the ACPI one doesn't. > > I don't have a problem system but this would be my guess as to what we need > > --- drivers/acpi/pci_irq.c~ 2007-12-05 14:07:47.389727744 +0000 > +++ drivers/acpi/pci_irq.c 2007-12-05 14:07:47.389727744 +0000 > @@ -429,6 +429,13 @@ > &polarity, &link, > acpi_pci_allocate_irq); > > + if (irq < 0) { > + /* IDE legacy mode controller IRQs are magic. Why do compat > + extensions always make such a nasty mess */ > + if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE && > + (dev->class & 0x05) == 0) > + return 0; > + } > /* > * No IRQ known to the ACPI subsystem - maybe the BIOS / > * driver reported one, then use it. Exit in any case. The above patch can fix the issue in bug 5637. But if the interrupt of other PCI device is routed to 14/15, this patch won't fix it. Thanks. - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html