From: David VomLehn <dvomlehn@cisco.com>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH] Combine two one-character CR-LF writes into one two-character write for O_ONLCR
Date: Thu, 13 Aug 2009 11:42:18 -0700 [thread overview]
Message-ID: <20090813184218.GA12832@cuplxvomd02.corp.sa.net> (raw)
In-Reply-To: <20090813181521.GB28172@kroah.com>
On Thu, Aug 13, 2009 at 11:15:21AM -0700, Greg KH wrote:
> On Thu, Aug 13, 2009 at 10:54:30AM -0700, David VomLehn wrote:
> > When handling output of a newline character in O_ONLCR mode, the n_tty.c
> > do_output_char() function uses the struct tty_operations function write_room()
> > to determine whether it is possible to write two characters. It uses
> > tty_put_char() for each character which, for the USB generic serial driver,
> > translates into a write() for each character. For the USB generic serial
> > driver the value returned by write_room() only applies to the next write().
> > A second write() done in quick succession will fail because the write URB
> > buffer is still busy from the first write(). In this case, it results in the
> > printing of a carriage return without the following line feed.
>
> How about fixing the usb-serial generic driver to properly handle stuff
> like this instead? It should be using a fifo and not the stupid method
> it currently is.
Good question. Right now, there are a number of USB serial devices that don't
use the generic USB serial framework, but they generally seem to use the
write_urb_busy flag the same way the generic code does. This makes it easier
to mix and match generic and non-generic code. Going to a FIFO approach and
doing away with the write_urb_busy flag seemed like a lot of change for very
little benefit. In addition, I would argue that doing one two-character write()
of two one-character writes() is a more logical way to output two characters,
anyway.
I have another motivation for maintaining the write_urb_busy flag as part of
the standard USB generic serial environment: I'm finishing up an RFC patchset
that provides for a polled USB console. This way you won't need any of the
buffering some of the USB serial drivers use, for which overruns can still
occur and, which may very well not have written the output by the time they
return. In other words USB consoles will have the same synchronous output
behavior as dumb UART consoles. I have it working with EHCI and am looking
at OHCI.
> Anyway, what device are you using that uses the usb-serial generic
> driver that you are seeing this problem with?
I'm using a cp210x work-alike.
> greg k-h
David VL
next prev parent reply other threads:[~2009-08-13 18:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-13 17:54 David VomLehn
2009-08-13 18:15 ` Greg KH
2009-08-13 18:42 ` David VomLehn [this message]
2009-08-13 19:47 ` Alan Cox
2009-08-13 19:50 ` Alan Cox
2009-08-13 19:55 ` David VomLehn
2009-08-13 19:58 ` Alan Cox
2009-08-13 21:27 ` Greg KH
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=20090813184218.GA12832@cuplxvomd02.corp.sa.net \
--to=dvomlehn@cisco.com \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®