Re: uvcvideo failure under xHCI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 16 Jun 2011, Sarah Sharp wrote:

> > > > Alan, does that seem correct?
> > 
> > The description of the behavior of ehci-hcd and uhci-hcd is correct.  
> > ohci-hcd behaves the same way too.  And they all agree with the 
> > behavior described in the kerneldoc for struct urb in 
> > include/linux/usb.h.
> 
> Ah, you mean this bit?
> 
>  * @status: This is read in non-iso completion functions to get the
>  *      status of the particular request.  ISO requests only use it
>  *      to tell whether the URB was unlinked; detailed status for
>  *      each frame is in the fields of the iso_frame-desc.

Right.  There's also some more near the end:

 * Completion Callbacks:
 *
 * The completion callback is made in_interrupt(), and one of the first
 * things that a completion handler should do is check the status field.
 * The status field is provided for all URBs.  It is used to report
 * unlinked URBs, and status for all non-ISO transfers.  It should not
 * be examined before the URB is returned to the completion handler.

> > Under the circumstances, the documentation file should be changed.  
> > Sarah, can you do that along with the change to xhci-hcd?
> 
> 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.

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.

Alan Stern

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux