Re: [linux-usb-devel] Re: Questions about the USB kernel API

2004-03-06 Thread Alan Stern
On Sat, 6 Mar 2004, David Brownell wrote: > Wolfgang Mües wrote: > > How would I unlink all urbs from the completion handler? > > If I do it synchronous, I'll have to sleep in the completion handler. > > The kernel doc does point out explicitly that you can't use > synchronous unlinking from a co

[linux-usb-devel] Re: Questions about the USB kernel API

2004-03-06 Thread David Brownell
Alan Stern wrote: Another thing I forgot to mention: If a control transfer terminates with an error, the final status stage acknowledgment will most likely not take place. If it stops early because of a short packet but URB_SHORT_NOT_OK _isn't_ set, then it's not an error and the status stage

[linux-usb-devel] Re: Questions about the USB kernel API

2004-03-06 Thread Alan Stern
On Fri, 5 Mar 2004, David Brownell wrote: > Seems to match my understanding. > > There's one point you didn't mention, which can sometimes matter. After > completing an urb with any kind of fault -- including unlink -- it's very > possible that urb->actual_length be nonzero. Maybe even common.

Re: [linux-usb-devel] Re: Questions about the USB kernel API

2004-03-06 Thread David Brownell
Wolfgang Mües wrote: Hello, On Saturday 06 March 2004 01:16, David Brownell wrote: If an URB terminates with an error, its queue is stopped until the URB's completion handler returns. Note that an IN transfer ending early because a short packet was received counts as an

Re: [linux-usb-devel] Re: Questions about the USB kernel API

2004-03-06 Thread Wolfgang Mües
Hello, On Saturday 06 March 2004 01:16, David Brownell wrote: > > If an URB terminates with an error, its queue is stopped until > > the URB's completion handler returns. Note that an IN transfer > > ending early because a short packet was received counts as an > > error if and on

[linux-usb-devel] Re: Questions about the USB kernel API

2004-03-05 Thread David Brownell
Alan Stern wrote: David: I've got a few questions about the API; these issues don't seem to be mentioned in any detail in the kernel sources. They are about how endpoint I/O queues are supposed to be handled. My current understanding is summarized below; please indicate where any mistakes are