--- /tmp/linux-2.4.26/drivers/char/parport_serial.c	2004-06-16 19:56:18.000000000 -0500
+++ drivers/char/parport_serial.c	2004-06-16 20:12:59.000000000 -0500
@@ -334,9 +334,9 @@
 		/* TODO: test if sharing interrupts works */
 		printk (KERN_DEBUG "PCI parallel port detected: %04x:%04x, "
 			"I/O at %#lx(%#lx)\n",
-			parport_serial_pci_tbl[i].vendor,
-			parport_serial_pci_tbl[i].device, io_lo, io_hi);
-		port = parport_pc_probe_port (io_lo, io_hi, PARPORT_IRQ_NONE,
+			dev->vendor,
+			dev->device, io_lo, io_hi);
+		port = parport_pc_probe_port (io_lo, io_hi, dev->irq,
 					      PARPORT_DMA_NONE, dev);
 		if (port) {
 			priv->port[priv->num_par++] = port;
--- /tmp/linux-2.4.26/drivers/parport/parport_pc.c	2004-06-16 19:56:19.000000000 -0500
+++ drivers/parport/parport_pc.c	2004-06-16 21:20:09.000000000 -0500
@@ -2343,8 +2343,9 @@
 	printk ("(,...)");
 #endif /* CONFIG_PARPORT_1284 */
 	printk("]\n");
-	if (probedirq != PARPORT_IRQ_NONE) 
-		printk(KERN_INFO "%s: irq %d detected\n", p->name, probedirq);
+	if (probedirq != PARPORT_IRQ_NONE) {
+		printk(KERN_INFO "%s: irq %d ignored (try irq=auto or irq=%d)\n", p->name, probedirq, probedirq);
+	}
 	parport_proc_register(p);
 
 	request_region (p->base, 3, p->name);
@@ -2355,7 +2356,7 @@
 
 	if (p->irq != PARPORT_IRQ_NONE) {
 		if (request_irq (p->irq, parport_pc_interrupt,
-				 0, p->name, p)) {
+				 ((dev != NULL)? SA_SHIRQ : 0), p->name, p)) {
 			printk (KERN_WARNING "%s: irq %d in use, "
 				"resorting to polled operation\n",
 				p->name, p->irq);
@@ -2890,9 +2891,9 @@
 		/* TODO: test if sharing interrupts works */
 		printk (KERN_DEBUG "PCI parallel port detected: %04x:%04x, "
 			"I/O at %#lx(%#lx)\n",
-			parport_pc_pci_tbl[i + last_sio].vendor,
-			parport_pc_pci_tbl[i + last_sio].device, io_lo, io_hi);
-		if (parport_pc_probe_port (io_lo, io_hi, PARPORT_IRQ_NONE,
+			dev->vendor,
+			dev->device, io_lo, io_hi);
+		if (parport_pc_probe_port (io_lo, io_hi, dev->irq,
 					   PARPORT_DMA_NONE, dev))
 			count++;
 	}
--- /tmp/linux-2.4.26/Documentation/parport.txt	2001-11-09 16:30:55.000000000 -0600
+++ /usr/src/linux/Documentation/parport.txt	2004-06-16 21:30:03.000000000 -0500
@@ -33,7 +33,9 @@
 
 PCI parallel I/O card support comes from parport_pc.  Base I/O
 addresses should not be specified for supported PCI cards since they
-are automatically detected.
+are automatically detected.  If you have a multi PCI I/O card, try
+to use the parport_serial module if parport_pc does not catch
+all the ports by itself.
 
 
 KMod
