One of our customers has a Fujitsu laptop, poor thing...
It shares IRQ10 between Eepro, additional IDE for CD-ROM (CMD646),
and USB controllers. I talked this over with DaveM briefly,
and if I understood him right, something like the attached
patch may be in order. Anyone cares to comment?

Thank you,
-- Pete

diff -ur -X dontdiff linux-2.4.4/include/linux/ide.h 
linux-2.4.4-niph/include/linux/ide.h
--- linux-2.4.4/include/linux/ide.h     Fri Apr 27 15:48:56 2001
+++ linux-2.4.4-niph/include/linux/ide.h        Thu May  3 23:03:27 2001
@@ -408,6 +408,10 @@
                ide_pmac
 } hwif_chipset_t;
 
+#define IDE_CHIPSET_PCI_MASK   \
+    ((1<<ide_pci)|(1<<ide_cmd646)|(1<<ide_ali14xx))
+#define IDE_CHIPSET_IS_PCI(c)  ((IDE_CHIPSET_PCI_MASK >> (c)) & 1)
+
 #ifdef CONFIG_BLK_DEV_IDEPCI
 typedef struct ide_pci_devid_s {
        unsigned short  vid;
diff -ur -X dontdiff linux-2.4.4/drivers/ide/ide-probe.c 
linux-2.4.4-niph/drivers/ide/ide-probe.c
--- linux-2.4.4/drivers/ide/ide-probe.c Sun Mar 18 09:25:02 2001
+++ linux-2.4.4-niph/drivers/ide/ide-probe.c    Thu May  3 23:07:37 2001
@@ -681,9 +681,9 @@
         */
        if (!match || match->irq != hwif->irq) {
 #ifdef CONFIG_IDEPCI_SHARE_IRQ
-               int sa = (hwif->chipset == ide_pci) ? SA_SHIRQ : SA_INTERRUPT;
+               int sa = IDE_CHIPSET_IS_PCI(hwif->chipset) ? SA_SHIRQ : SA_INTERRUPT;
 #else /* !CONFIG_IDEPCI_SHARE_IRQ */
-               int sa = (hwif->chipset == ide_pci) ? SA_INTERRUPT|SA_SHIRQ : 
SA_INTERRUPT;
+               int sa = IDE_CHIPSET_IS_PCI(hwif->chipset) ? SA_INTERRUPT|SA_SHIRQ : 
+SA_INTERRUPT;
 #endif /* CONFIG_IDEPCI_SHARE_IRQ */
                if (ide_request_irq(hwif->irq, &ide_intr, sa, hwif->name, hwgroup)) {
                        if (!match)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to