> 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. - 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