The UVC standard defines a way to implement controls, that take a relatively long time to process. Such controls can deliver a status update once their processing has completed. This patch implements such asynchronous control completion reporting, using V4L2 events. Support is also added for compound controls, however, V4L2 events for them will not deliver updated data, since V4L2 events only support integer (up to 64 bits) controls. Asynchronous control processing also includes more advanced protocol STALL handling, which can be caused by racing controls. Guennadi Liakhovetski (4): uvcvideo: prepare to support compound controls uvcvideo: send a control event when a Control Change interrupt arrives uvcvideo: handle control pipe protocol STALLs uvcvideo: support compound controls drivers/media/usb/uvc/uvc_ctrl.c | 397 ++++++++++++++++++++++++++++++------- drivers/media/usb/uvc/uvc_status.c | 112 ++++++++++- drivers/media/usb/uvc/uvc_v4l2.c | 10 +- drivers/media/usb/uvc/uvc_video.c | 59 +++++- drivers/media/usb/uvc/uvcvideo.h | 25 ++- include/uapi/linux/uvcvideo.h | 2 + 6 files changed, 503 insertions(+), 102 deletions(-) -- 1.9.3 Thanks Guennadi -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html