--- /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