summaryrefslogtreecommitdiff
path: root/uvc-gadget.c
diff options
context:
space:
mode:
authorRoger Quadros <rogerq@ti.com>2017-03-03 13:17:15 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2017-03-06 22:48:54 +0200
commit3c5a666f9d2eea0e0f7e9a8a0eb8bbfd7687ca13 (patch)
treec24e45d3912f52faa6adbd5ff4fa7d66339c086a /uvc-gadget.c
parent9fbc003442056cdf59b87e94c1d0e3814575d4b3 (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.c4
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);