Re: [RFC v2 2/2] USB: Fix up URB error codes to reflect implementation.

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

 



On Thu, 16 Jun 2011, Sarah Sharp wrote:

> Documentation/usb/error-codes.txt mentions that urb->status can be set to
> -EXDEV, if the isochronous transfer was not fully completed.  However, in
> practice, EHCI, UHCI, and OHCI all only set -EXDEV in the individual frame
> status, never in the URB status.  Those host controller actually always
> pass in a zero status to usb_hcd_giveback_urb, and rely on the core to set
> the appropriate status value.
> 
> The xHCI driver ran into issues with the uvcvideo driver when it tried to
> set -EXDEV in urb->status, because the driver refused to submit URBs, and
> the userspace camera application's video froze.
> 
> Clean up the documentation to reflect the actual implementation.
> 
> Signed-off-by: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx>
> Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> ---
>  Documentation/usb/error-codes.txt |    9 ++++++++-
>  1 files changed, 8 insertions(+), 1 deletions(-)
> 
> diff --git a/Documentation/usb/error-codes.txt b/Documentation/usb/error-codes.txt
> index d83703e..b3f606b 100644
> --- a/Documentation/usb/error-codes.txt
> +++ b/Documentation/usb/error-codes.txt
> @@ -76,6 +76,13 @@ A transfer's actual_length may be positive even when an error has been
>  reported.  That's because transfers often involve several packets, so that
>  one or more packets could finish before an error stops further endpoint I/O.
>  
> +For isochronous URBs, the urb status value is non-zero only if the URB is
> +unlinked, the device is removed, the host controller is disabled, or the total
> +transferred length is less than the requested length and the URB_SHORT_NOT_OK
> +flag is set.  Completion handlers for isochronous URBs should only see
> +urb->status set to zero, -ENOENT, -ECONNRESET, -ESHUTDOWN, or -EREMOTEIO.
> +Individual frame descriptor status fields may report more status codes.
> +
>  
>  0			Transfer completed successfully
>  
> @@ -132,7 +139,7 @@ one or more packets could finish before an error stops further endpoint I/O.
>  			device removal events immediately.
>  
>  -EXDEV			ISO transfer only partially completed
> -			look at individual frame status for details
> +			(only set in iso_frame_desc[n].status, not urb->status)
>  
>  -EINVAL			ISO madness, if this happens: Log off and go home

Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

--
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