Function pci_get_legacy_ide_irq is incorrect on ia64. It should return
irq vector instead of GSI. The fixed number 14 and 15 are just GSI.
Below patch against kernel 2.6.20 fixes it.
Signed-off-by: Zhang Yanmin <[EMAIL PROTECTED]>
---
diff -Nraup linux-2.6.20/include/asm-ia64/pci.h
linux-2.6.20_fix/include/asm-ia64/pci.h
--- linux-2.6.20/include/asm-ia64/pci.h 2007-02-08 02:13:44.000000000 -0500
+++ linux-2.6.20_fix/include/asm-ia64/pci.h 2007-02-11 16:39:08.000000000
-0500
@@ -9,6 +9,7 @@
#include <asm/io.h>
#include <asm/scatterlist.h>
+#include <asm/hw_irq.h>
/*
* Can be used to override the logic in pci_scan_bus for skipping
already-configured bus
@@ -170,7 +171,7 @@ pcibios_select_root(struct pci_dev *pdev
#define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ
static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
{
- return channel ? 15 : 14;
+ return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14);
}
#endif /* _ASM_IA64_PCI_H */
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html