Clearing stalls: usbd_xfer_set_stall vs
usbd_do_clear_stall_callback
Trevor Blackwell
trevor at anybots.com
Thu May 5 07:15:11 UTC 2011
8.2-STABLE. I'm willing to run whatever.
I suspect the problem I'm having is the same as this:
http://kerneltrap.org/mailarchive/linux-usb/2009/5/15/5761363
I can manually kick it out of the wedged state by sending a RESET_TT
transaction to the hub with usbconfig -d ugen1.3 do_request 0x23 0x09 0x0000
0x0001 0
(UT_WRITE_CLASS_OTHER, UR_RESET_TT)
I'm working on adding code to do this. My current hack is to do it from
uhub_explore. When my driver tries to do a clear-stall and gets a timeout
error from the clear-stall, it sets a flag on the parent_hs_hub to request a
RESET_TT. uhub_explore notices the flag and does it.
Possibly I could also add it to usb_do_clear_stall_callback, but I don't
think I can call usb_do_request from inside a callback.
Any suggestions?
On Wed, May 4, 2011 at 11:41 PM, Hans Petter Selasky <hselasky at c2i.net>wrote:
> On Thursday 05 May 2011 03:16:14 Trevor Blackwell wrote:
> > We have a system that experiences occasional stalls due to ESD strikes in
> > the cable between the host & hub. So I've been extensively testing the
> > clear stall logic.
>
> Which version of FreeBSD are you using?
>
> --HPS
>
--
Trevor Blackwell trevor at anybots.com 650 776 7870
More information about the freebsd-usb
mailing list