diff options
author | Roger Quadros <rogerq@ti.com> | 2017-03-03 13:17:15 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2017-03-06 22:48:54 +0200 |
commit | 3c5a666f9d2eea0e0f7e9a8a0eb8bbfd7687ca13 (patch) | |
tree | c24e45d3912f52faa6adbd5ff4fa7d66339c086a /uvc-gadget.c | |
parent | 9fbc003442056cdf59b87e94c1d0e3814575d4b3 (diff) |
uvc-gadget: Do not send Set Interface (alternate setting) response twice
On alternate setting change, the webcam gadget sends us a
UVC_EVENT_STREAMON or UVC_EVENT_STREAMOFF event. In the first case, the
driver will issue a delayed status response automatically when we call
the VIDIOC_STREAMON ioctl. In the second case, the driver sends the
status response immediately. We must thus not send the status response
manually with UVCIOC_SEND_RESPONSE in any of those cases.
Without this, the ISO streaming doesn't work if host application
(e.g. luvcview) is closed and restarted.
On dwc3 gadget controller it was resulting in Buffer Expiry error on
the ISO endpoint.
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'uvc-gadget.c')
-rw-r--r-- | uvc-gadget.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/uvc-gadget.c b/uvc-gadget.c index 9ef315c..4d59ab8 100644 --- a/uvc-gadget.c +++ b/uvc-gadget.c @@ -597,12 +597,12 @@ uvc_events_process(struct uvc_device *dev) case UVC_EVENT_STREAMON: uvc_video_reqbufs(dev, 4); uvc_video_stream(dev, 1); - break; + return; case UVC_EVENT_STREAMOFF: uvc_video_stream(dev, 0); uvc_video_reqbufs(dev, 0); - break; + return; } ioctl(dev->fd, UVCIOC_SEND_RESPONSE, &resp); |