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-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html