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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to