From: David Brownell <david-b@pacbell.net>
To: "Gupta, Ajay Kumar" <ajay.gupta@ti.com>
Cc: Nathan Monson <nmonson@gmail.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: Re: USB serial devices not working on linux-omap musb.
Date: Mon, 6 Oct 2008 18:20:09 -0700 [thread overview]
Message-ID: <200810061820.09437.david-b@pacbell.net> (raw)
In-Reply-To: <19F8576C6E063C45BE387C64729E739403DC1D5565@dbde02.ent.ti.com>
On Wednesday 01 October 2008, Gupta, Ajay Kumar wrote:
> Currently all the BULK request are multiplexed on one hardware endpoint
> and when a wifi or eth device is in use they never release BULK hardware
> endpoint so that it can be used by other devices. This causes failure of
> serial device when any of wifi/eth is in use.
Any driver that keeps a bulk request posted at all times, usually
an IN transfer as with most stuff in drivers/net, has this issue.
> I am working on to use different hardware endpoint for different BULK
> devices and would submit a patch once it is done.
Be careful of that strategy. It'll die quickly on a number of the
non-OMAP platforms, which don't populte as many endpoints.
The strategy I had thought about was to allow use of more endpoints
if they were available, as a way to improve performance if enough
resources were available ... but primarily, act more like "normal"
hardware, and use a mechanism that's currently disabled.
That mechanism being NAK limits. See the REVISIT comment in
the musb_urb_enqueue() function, where it sets interval to zero
for bulk and control transfers.
The way it would work: if the NAK limit gets hit, the transfer
will stop "early". Finish cleaning it up (DMA might be an issue),
rotate that bulk transfer to the end of that bulk queue, stuff the
next transfer where that one was, repeat.
Using that mechanism on one bulk endpoint would mean it wouldn't be
possible for transfers on it to starve everything else going the
same direction.
Using that on a periodic endpoint would mean not tying down one
endpoint doing, say, an every-256-msec hub poll for one hub,
while there's no endpoint free for an every-8-msec mouse or
keyboard poll ...
In short: I strongly encourage you to find a way to use the
NAK limit scheme to let incomplete host side transfers stop
themselves and free up their resources for re-use, without
giving up the ability to continue those transfers later.
- Dave
next prev parent reply other threads:[~2008-10-07 1:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-01 4:35 USB serial devices not working on linux-omap musb Nathan Monson
2008-10-01 4:44 ` Gupta, Ajay Kumar
2008-10-01 18:58 ` Nathan Monson
2008-10-02 5:24 ` Gupta, Ajay Kumar
2008-10-07 1:20 ` David Brownell [this message]
2008-10-07 4:24 ` Gupta, Ajay Kumar
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=200810061820.09437.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=ajay.gupta@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=nmonson@gmail.com \
/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