Messages in this thread | | | Subject | Re: Half duplex serial support | Date | Wed, 27 Oct 1999 14:19:52 +0100 | From | David Woodhouse <> |
| |
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/
| |