#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/usb/video.h>
#include "u_uvc.h"
#include "uvc_configfs.h"
USB_GADGET_COMPOSITE_OPTIONS(…);
static unsigned int streaming_interval = …;
module_param(streaming_interval, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(…) …;
static unsigned int streaming_maxpacket = …;
module_param(streaming_maxpacket, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(…) …;
static unsigned int streaming_maxburst;
module_param(streaming_maxburst, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(…) …;
#define WEBCAM_VENDOR_ID …
#define WEBCAM_PRODUCT_ID …
#define WEBCAM_DEVICE_BCD …
static char webcam_vendor_label[] = …;
static char webcam_product_label[] = …;
static char webcam_config_label[] = …;
#define STRING_DESCRIPTION_IDX …
static struct usb_string webcam_strings[] = …;
static struct usb_gadget_strings webcam_stringtab = …;
static struct usb_gadget_strings *webcam_device_strings[] = …;
static struct usb_function_instance *fi_uvc;
static struct usb_function *f_uvc;
static struct usb_device_descriptor webcam_device_descriptor = …;
static const struct UVC_HEADER_DESCRIPTOR(1) uvc_control_header = …;
static const struct uvc_camera_terminal_descriptor uvc_camera_terminal = …;
static const struct uvc_processing_unit_descriptor uvc_processing = …;
static const struct uvc_output_terminal_descriptor uvc_output_terminal = …;
DECLARE_UVC_INPUT_HEADER_DESCRIPTOR(1, 2);
static const struct UVC_INPUT_HEADER_DESCRIPTOR(1, 2) uvc_input_header = …;
static const struct uvcg_color_matching uvcg_color_matching = …;
static struct uvcg_uncompressed uvcg_format_yuv = …;
static struct uvcg_format_ptr uvcg_format_ptr_yuv = …;
DECLARE_UVC_FRAME_UNCOMPRESSED(1);
DECLARE_UVC_FRAME_UNCOMPRESSED(3);
#define UVCG_WIDTH_360P …
#define UVCG_HEIGHT_360P …
#define UVCG_MIN_BITRATE_360P …
#define UVCG_MAX_BITRATE_360P …
#define UVCG_MAX_VIDEO_FB_SZ_360P …
#define UVCG_FRM_INTERV_0_360P …
#define UVCG_FRM_INTERV_1_360P …
#define UVCG_FRM_INTERV_2_360P …
#define UVCG_DEFAULT_FRM_INTERV_360P …
static const struct UVC_FRAME_UNCOMPRESSED(3) uvc_frame_yuv_360p = …;
static u32 uvcg_frame_yuv_360p_dw_frame_interval[] = …;
static const struct uvcg_frame uvcg_frame_yuv_360p = …;
static struct uvcg_frame_ptr uvcg_frame_ptr_yuv_360p = …;
#define UVCG_WIDTH_720P …
#define UVCG_HEIGHT_720P …
#define UVCG_MIN_BITRATE_720P …
#define UVCG_MAX_BITRATE_720P …
#define UVCG_MAX_VIDEO_FB_SZ_720P …
#define UVCG_FRM_INTERV_0_720P …
#define UVCG_DEFAULT_FRM_INTERV_720P …
static const struct UVC_FRAME_UNCOMPRESSED(1) uvc_frame_yuv_720p = …;
static u32 uvcg_frame_yuv_720p_dw_frame_interval[] = …;
static const struct uvcg_frame uvcg_frame_yuv_720p = …;
static struct uvcg_frame_ptr uvcg_frame_ptr_yuv_720p = …;
static struct uvcg_mjpeg uvcg_format_mjpeg = …;
static struct uvcg_format_ptr uvcg_format_ptr_mjpeg = …;
DECLARE_UVC_FRAME_MJPEG(1);
DECLARE_UVC_FRAME_MJPEG(3);
static const struct UVC_FRAME_MJPEG(3) uvc_frame_mjpg_360p = …;
static u32 uvcg_frame_mjpeg_360p_dw_frame_interval[] = …;
static const struct uvcg_frame uvcg_frame_mjpeg_360p = …;
static struct uvcg_frame_ptr uvcg_frame_ptr_mjpeg_360p = …;
static const struct UVC_FRAME_MJPEG(1) uvc_frame_mjpg_720p = …;
static u32 uvcg_frame_mjpeg_720p_dw_frame_interval[] = …;
static const struct uvcg_frame uvcg_frame_mjpeg_720p = …;
static struct uvcg_frame_ptr uvcg_frame_ptr_mjpeg_720p = …;
static struct uvcg_streaming_header uvcg_streaming_header = …;
static const struct uvc_descriptor_header * const uvc_fs_control_cls[] = …;
static const struct uvc_descriptor_header * const uvc_ss_control_cls[] = …;
static const struct uvc_descriptor_header * const uvc_fs_streaming_cls[] = …;
static const struct uvc_descriptor_header * const uvc_hs_streaming_cls[] = …;
static const struct uvc_descriptor_header * const uvc_ss_streaming_cls[] = …;
static int
webcam_config_bind(struct usb_configuration *c)
{ … }
static struct usb_configuration webcam_config_driver = …;
static int
webcam_unbind(struct usb_composite_dev *cdev)
{ … }
static int
webcam_bind(struct usb_composite_dev *cdev)
{ … }
static struct usb_composite_driver webcam_driver = …;
module_usb_composite_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;