On Tue, 6 Sep 2005, Franck wrote:

> > > well, the feature allows the hardware to automatically restart a
> > > transaction when the function previously handshaked it with a NAK. If
> > > the function is a hub and the transaction is used to poll its endpoint
> > > 1...the hub will send NAK as long as there's no change on its ports.
> > > Therefore the hardware will be busy to restart the transaction until
> > > there's a change on the hub's ports...That's why I said that I could
> > > not use this feature for interrupt polling.
> > 
> > But _when_ does the hardware restart the transaction?  Does it restart
> > right away?  Does it try to do all the remaining transactions for this
> > frame and then restart?  Does it wait until the next frame?  Or does it
> > wait until the next interrupt period (if this is an interrupt
> > transaction)?
> > 
> 
> seems to be rigth away...from the shitty documentation :
> "When this bit is cleared NAKed transactions will be retried in hardware"
> As you see, it's quite short for an explanation. I expect that it will
> retry transaction until the next frame because I could stop the
> transaction during the "start of frame" interrupt.

Maybe you should try doing some experiments to see if the hardware really 
does behave that way.

> > And if it restarts right away, how many times does it restart?  If the
> > device keeps sending NAK, will the hardware continue to restart the
> > transaction until it reaches the end of the frame, without trying any of
> > the other transactions remaining in the frame?  (Note that this would
> > violate the USB protocol, making the restart feature pretty useless.)
> > 
> 
> yeah, that's why I said that it's pretty useless for periodic transfers....

It's also not so good for control or bulk transfers.  A NAK response would 
starve all the other endpoints waiting for service.


> Is it the function driver that will resubmit the interrupt transaction
> or is it automatically rescheduled by the hcd ?

If an interrupt transaction doesn't complete because of a NAK response,
the HCD just leaves it on the schedule -- so it doesn't have to be
"rescheduled".  If it does complete, either successfully or with an error,
then it is removed from the schedule and is not automatically rescheduled.

Alan Stern



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to