History

usb: gadget: uvc: Move userspace API definition to public header

The UVC gadget userspace API (V4L2 events and custom ioctls) is defined in a header internal to the kernel. Move it to a new public header to make it accessible to userspace. The UVC_INTF_CONTROL and UVC_INTF_STREAMING macros are not used, so remove them in the process.

Laurent Pinchart committed 8 years ago

Commit d396e471 parent d72e90f3 files · +45 −40Browse files

Showing the changes to include/uapi/linux (1 of 3 files). Show all

Unified · Split

include/uapi/linux/usb/g_uvc.h+39−0
@@ -0,0 +1,39 @@
1+/* SPDX-License-Identifier: GPL-2.0+ */
2+/*
3+ * g_uvc.h -- USB Video Class Gadget driver API
4+ *
5+ * Copyright (C) 2009-2010 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
6+ */
7+
8+#ifndef __LINUX_USB_G_UVC_H
9+#define __LINUX_USB_G_UVC_H
10+
11+#include <linux/ioctl.h>
12+#include <linux/types.h>
13+#include <linux/usb/ch9.h>
14+
15+#define UVC_EVENT_FIRST (V4L2_EVENT_PRIVATE_START + 0)
16+#define UVC_EVENT_CONNECT (V4L2_EVENT_PRIVATE_START + 0)
17+#define UVC_EVENT_DISCONNECT (V4L2_EVENT_PRIVATE_START + 1)
18+#define UVC_EVENT_STREAMON (V4L2_EVENT_PRIVATE_START + 2)
19+#define UVC_EVENT_STREAMOFF (V4L2_EVENT_PRIVATE_START + 3)
20+#define UVC_EVENT_SETUP (V4L2_EVENT_PRIVATE_START + 4)
21+#define UVC_EVENT_DATA (V4L2_EVENT_PRIVATE_START + 5)
22+#define UVC_EVENT_LAST (V4L2_EVENT_PRIVATE_START + 5)
23+
24+struct uvc_request_data {
25+ __s32 length;
26+ __u8 data[60];
27+};
28+
29+struct uvc_event {
30+ union {
31+ enum usb_device_speed speed;
32+ struct usb_ctrlrequest req;
33+ struct uvc_request_data data;
34+ };
35+};
36+
37+#define UVCIOC_SEND_RESPONSE _IOW('U', 1, struct uvc_request_data)
38+
39+#endif /* __LINUX_USB_G_UVC_H */