usb/110855: ugen: interrupt in msgs are truncated when buffer is full

Hans Petter Selasky hselasky at c2i.net
Thu Mar 29 06:39:18 UTC 2007


On Wednesday 28 March 2007 20:27, Markus Henschel wrote:
> Hans Petter Selasky schrieb:
> > <ZAP>
> >
> > Can you revert the changes you made to "umass.c" ?
> >
> > You can do this for example by copying "sys/dev/usb/umass.c" from the SVN
> > repo to where you have your kernel sources.
> >
> > Then edit "sys/dev/usb/umass.c" again.
> >
> > Lookup the function "umass_t_bbb_status_callback()".
> >
> > Right below the label "tr_transferred" you add like this:
> >
> > tr_transferred:
> > 	/* don't retry the status, but do a full reset if
> > 	 * there is something wrong with the CSW:
> > 	 */
> > 	sc->sc_status_try = 1;
> >
> > Compile a new kernel (or if you are smart, leave "device umass" out of
> > the kernel config file and just recompile the "umass" module:
> > sys/modules/umass)
> >
> > What happens now?
> >
> > --HPS
>
> Mmmm, seems like I must have messed something up before. So I reapplied
> the changes to a clean system. The first stick says now. The !!!! mark
> the point where the hanging occurs.

Does it hang as long as before ?

If you try to increase the delay again, does that help?

Edit sys/dev/usb/umass.c

Then lookup:

usbd_delay_ms(uaa->device, 1000);

Change it into:

usbd_delay_ms(uaa->device, 5000);

>
> Thank you for your time. Let me know if you want me to try other
> changes. May be it would be easier if you could create a branch in svn
> with the changes needed?

Maybe.

--HPS


More information about the freebsd-usb mailing list