summaryrefslogtreecommitdiff
path: root/uvc-gadget.c
AgeCommit message (Collapse)Author
2018-05-22uvc-gadget: Sort include headersKieran Bingham
Fix the sort order of the header include sections. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-05-22v4l2: Split buffer allocation and mappingLaurent Pinchart
Not all use cases of V4L2_MEMORY_MMAP require mapping buffers to userspace. Separate the allocation and mapping to allow usage of unmapped buffers. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-05-22uvc-gadget: Use V4L2 helper functionsLaurent Pinchart
Replace the manual implementation of the V4L2 ioctls with the V4L2 helper functions from v4l2.c. This cleans up the code and simplifies handling of the V4L2 API. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-05-21uvc-gadget: Use macros from tools.hLaurent Pinchart
The tools.h header defines clamp and ARRAY_SIZE macros. Use the header to replace the private implementation. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-05-21uvc-gadget: Dynamically watch/unwatch uvc device fdPaul Elder
When the uvc device fd is put on the watch list statically, then there are many "Unable to dequeue buffer: Invalid argument (22)." because the V4L2 API returns write events immediately when the stream is off. To fix this, add the fd to the watch list on streamon, and remove it on streamoff. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-05-21uvc-gadget: Use events libraryPaul Elder
Replace the manual implementation of the select-based event loop with the events library. This cleans up the code and simplifies event handling. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-05-20uvc-gadget: Use new kernel API headerLaurent Pinchart
The UVC gadget driver now defines its API in the linux/usb/g_uvc.h public header, use it instead of including an internal kernel header through a relative path. The public API doesn't define the UVC_INTF_CONTROL and UVC_INTF_STREAMING macros, define them locally until we can get rid of them. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2017-03-06uvc-gadget: Do not send Set Interface (alternate setting) response twiceRoger Quadros
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>
2010-06-07Initial importLaurent Pinchart
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>