Re: Half duplex serial support

David Woodhouse (David.Woodhouse@mvhi.com)
Wed, 27 Oct 1999 14:19:52 +0100


rhw@MemAlpha.CX said:
> 3. The following additional IOCTL's should be implemented:
> a. One to specify the value of X as referred to in (2.a)
> above.
> b. One to specify that the port should switch to state
> Y (as defined in (1) above) now.

Not necessarily ioctl() - Ted's suggestion is that we extend the API between
the line discipline and the low level driver to support these requirements,
and then implement our half-duplex protocols as line disciplines.

> From an implementation viewpoint:
> 2.a could be implemented along the lines of "On receipt of
> each byte, set a timeout to expire when the time needed

Mostly, we have FIFOs in hardware and we don't actually receive each byte.
IIRC, the behaviour of a 16550a is to interrupt either when the FIFO gets to a
certain fullness, or if there's data in the FIFO and then an idle period.

If the latter is configurable, then we can set it to 33 bit times, and then
any interrupt without a full FIFO tells us that there was an idle period.

I'm not actually working on this code yet, so I'm not really in a position to
say whether what you're proposing is enough. It looks OK, though, at first
glance.

---- ---- ----
David Woodhouse David.Woodhouse@mvhi.com Office: (+44) 1223 810302
Project Leader, Process Information Systems Mobile: (+44) 7976 658355
Axiom (Cambridge) Ltd., Swaffham Bulbeck, Cambridge, CB5 0NA, UK.
finger dwmw2@ferret.lmh.ox.ac.uk for PGP key.

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