On Thu, 16 Jun 2011, Sarah Sharp wrote:

> > > Sure.  It feels like there should be a note about which values
> > > isochronous URBs might have in the urb->status field.  The USB core is
> > > the only one that would be setting those, so which values would it set?
> > > uvcvideo tests for these error codes:
> > > 
> > >         case -ENOENT:           /* usb_kill_urb() called. */
> > >         case -ECONNRESET:       /* usb_unlink_urb() called. */
> > >         case -ESHUTDOWN:        /* The endpoint is being disabled. */
> > >         case -EPROTO:           /* Device is disconnected (reported by 
> > > some
> > >                                  * host controller). */
> > > 
> > > Are there any others.
> > 
> > -EREMOTEIO, in the unlikely event that URB_SHORT_NOT_OK is set, but no
> > others.
> 
> Are you saying that the USB core will only set -EREMOTEIO for
> isochronous URBs?  Or do you mean that in addition to the status values
> that uvcvideo checks, the USB core can also set -EREMOTEIO?

The latter.  However, if uvcvideo never sets the URB_SHORT_NOT_OK flag 
then usbcore will never set urb->status to -EREMOTEIO.

> > And I wasn't aware of that last one...  Host controller drivers should
> > report -ESHUTDOWN to mean the device has been disconnected, not
> > -EPROTO.  But usually HCD don't take these events into account when
> > determining URB status codes.
> 
> The xHCI driver will return -ESHUTDOWN as a status for URBs when the
> host controller is dying.

That's appropriate.  But nobody should ever set an isochronous URB's
status field to -EPROTO, no matter whether the device is connected or
not and no matter whether the host controller is alive or not.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to