PCI parallel/serial irq sharing on PC

From: Javier Vizcaino (javizca@bbvnet.com)
Date: Thu May 25 2000 - 03:35:50 EST


Hi.

ISA bus is disappearing in PC arquitecture. PCI permits true irq sharing.
Mobos have one parallel port, but if more are needed there are available PCI
cards with serial and parallel ports.

I have installed on two systems on which all PCI cards are assigned the only
remaining irq (IRQ11), a PCI 2serial+1parallel card. In Linux, on one system
IRQ11 is shared with video4linux, and in other with a 3Com lan card.

Sharing IRQ11 has not worked. I couldn't run PLIP on parallel or minicom on
serial unless retiring the card or removing the module having IRQ11.

I doubt if kernel code is completely prepared for irq sharing on
serial/parallel, since probably code was written thinking in exclusive (ISA)
use of irq (NULL below, or SA_INTERRUPT):

serial.c:
#define IRQ_T(state) \
 ((state->flags & ASYNC_SHARE_IRQ) ? SA_SHIRQ : SA_INTERRUPT)
...
retval = request_irq(state->irq, handler, IRQ_T(state), "serial", NULL);

plip.c:
request_irq(dev->irq, plip_interrupt, SA_INTERRUPT, pardev->name, NULL);
(I wonder, however, if this line is ever executed).

Mobos appear now having only PCI. May be I am doing something wrong, but the
fact is that I couldn't make irq sharing work with serial/parallel (I didn't
try printing with irq). If someone has made it work, please advice me
replying to this email.

TIA, Javier Vizcaino, Madrid, Spain.

************************************
Javier Vizcaino. Ability Electronics. javizca@bbvnet.com
http://www.automodelismo.com http://ability53.hypermart.net
  Starting point: (-1)^(-1) = -1
  Applying logarithms: (-1)*ln(-1) = ln(-1)
  Since ln(-1) <> 0, dividing: -1 = 1 (ln(-1) is complex, but exists)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed May 31 2000 - 21:00:13 EST