From: Russell King <rmk+lkml@arm.linux.org.uk>
To: Samuel Thibault <samuel.thibault@ens-lyon.org>,
akpm@osdl.org, Alan Cox <alan@lxorguk.ukuu.org.uk>,
linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org
Subject: Re: [patch 3/4] new serial flow control
Date: Sun, 9 Oct 2005 09:37:24 +0100 [thread overview]
Message-ID: <20051009083724.GA14335@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20051009002129.GJ5150@bouh.residence.ens-lyon.fr>
On Sun, Oct 09, 2005 at 02:21:30AM +0200, Samuel Thibault wrote:
> Russell King, le Sun 09 Oct 2005 01:01:53 +0100, a ?crit :
> > > How could this look like in userspace?
> >
> > I think they should be termios settings - existing programs know how
> > to handle termios to get what they want.
>
> Hence a new field in the termios structure?
>
> There was a discussion about this back in 2000:
>
> http://marc.theaimsgroup.com/?t=96514848800003&r=1&w=2
>
> and more precisely a remind of SVR4's termiox structure with an added
> x_hflag:
>
> http://marc.theaimsgroup.com/?l=linux-kernel&m=96523146720678&w=2
>
> I'm not sure about how we'd want to implement that. The SVR4 approach
> (orthogonal input/output flow control selection) doesn't seem right to
> me: there are really peculiar flow controls that involve both ways. A
> mere enumeration of possible methods might be better.
What I was thinking of was to use some of the spare termios cflag bits
to select the flow control. You'd only want one flow control type at
one time though. Eg: define two fields, each to select the signal.
0 - RTS
1 - DTR
0 - CTS
1 - DTR
2 - DSR
You still want CRTSCTS to enable hardware flow control though - which
is what programs expect to happen with that flag enabled. RTS/CTS
flow control would be type 0 above for compatibility with existing
programs.
However, bear in mind that the majority of the more inteligent 8250-
compatible UARTs with large FIFOs only do hardware flow control on
RTS/CTS - attempting to simulate hardware flow control on the other
signals could end up with up to 64 or 128 characters being sent after
the transmit handshake is deasserted.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
next prev parent reply other threads:[~2005-10-09 8:37 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200501052341.j05Nfod27823@mail.osdl.org>
[not found] ` <20050105235301.B26633@flint.arm.linux.org.uk>
2005-10-08 22:27 ` [patch 3/4] new serial flow control Samuel Thibault
2005-10-08 22:58 ` Samuel Thibault
2005-10-09 0:01 ` Russell King
2005-10-09 0:01 ` Russell King
2005-10-09 0:21 ` Samuel Thibault
2005-10-09 8:37 ` Russell King [this message]
2005-10-09 10:09 ` Samuel Thibault
2005-10-09 10:09 ` Samuel Thibault
2005-10-09 11:17 ` Russell King
2005-10-09 11:33 ` Samuel Thibault
2005-10-09 11:33 ` Samuel Thibault
2005-10-09 11:44 ` Samuel Thibault
2005-10-09 11:44 ` Samuel Thibault
2005-10-09 23:04 ` Alan Cox
2005-10-09 13:29 ` Samuel Thibault
2005-10-09 13:29 ` Samuel Thibault
2005-10-08 22:27 ` Samuel Thibault
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051009083724.GA14335@flint.arm.linux.org.uk \
--to=rmk+lkml@arm.linux.org.uk \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=samuel.thibault@ens-lyon.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.