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 Bug5637. But if IDE controller
works in legcay mode and PRT tells us the interrupt for some PCI devices
is 14/15, should we make it pci-like interrupt(level trigger, low
active)?
Thanks.
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html