Patch for shared interrupts in PCI IDE

From: Pete Zaitcev (zaitcev@redhat.com)
Date: Fri May 04 2001 - 01:23:15 EST


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 majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 07 2001 - 21:00:19 EST