Getting serial.c to share it's interrupts.

Thomas Davis (ratbert@radiks.net)
Wed, 01 Apr 1998 11:54:31 -0600


Ok, I'm working on the IrDA protocol stack, and we have it working it
fine with the current serial.c, and tty-discpline. For you curious
types, check out http://www.cs.uit.no/~dagb/irda/irda.html

(please, no flames about how screwed up IrDA is.. We KNOW that. There
are devices out there that talk ONLY IrDA, and being able to use them is
important (think embrace, extend, and THEN change.. :-))

Now, I'm in the process of adding MIR and FIR support; which is Medium
speed IrDA, and Fast IrDA, with speeds starting at 576kilobit,
1.15megabit, and 4megabit support.

The chip set I'm working with, (the SMC IrCC controller) has 2 16550
based ACE's, and a MIR/FIR SCE. The SCE shares the interrupt with one
of the ACE's.

Now, I need to tell the serial driver to kindly share the interrupt with
me. The SCE logic resides at a different IO address, but shares the
interrupt with one of the ACE's.

I've looked at the source, and I've looked at setserial. serial.c does
have support for shared interrupts, and in fact, with today's two ACE's
on one chip, you could share that interrupt (another theory to try
someday..)

I've found the ASYNC_SHARE_IRQ flag, but there is NO way to set it
outside of serial.c (and I need to set it BEFORE the port is opened,
right?)

And, as I understand, if I tell the serial driver to close the port,
I'll lose the line-discpline and any settings.

Ted? Anyone? Ideas? I want to keep the modifications to the rest of
the kernel to a minimum, and if they are needed, get them into v2.2..

Last thing I want to do is write a ACE and SCE driver (and have the ACE
driver duplicate what is there already..)

-- 
-------------------+--------------------------------------------------------
Thomas Davis       | Supernova's are industrial accidents.
ratbert@radiks.net |

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu