#define MODULE_NAME …
#include <linux/workqueue.h>
#include <linux/slab.h>
#include "gspca.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define JL2005C_CMD_TIMEOUT …
#define JL2005C_DATA_TIMEOUT …
#define JL2005C_MAX_TRANSFER …
#define FRAME_HEADER_LEN …
struct sd { … };
static const struct v4l2_pix_format cif_mode[] = …;
static const struct v4l2_pix_format vga_mode[] = …;
static int jl2005c_write2(struct gspca_dev *gspca_dev, unsigned char *command)
{ … }
static int jl2005c_read1(struct gspca_dev *gspca_dev)
{ … }
static int jl2005c_read_reg(struct gspca_dev *gspca_dev, unsigned char reg)
{ … }
static int jl2005c_start_new_frame(struct gspca_dev *gspca_dev)
{ … }
static int jl2005c_write_reg(struct gspca_dev *gspca_dev, unsigned char reg,
unsigned char value)
{ … }
static int jl2005c_get_firmware_id(struct gspca_dev *gspca_dev)
{ … }
static int jl2005c_stream_start_vga_lg
(struct gspca_dev *gspca_dev)
{ … }
static int jl2005c_stream_start_vga_small(struct gspca_dev *gspca_dev)
{ … }
static int jl2005c_stream_start_cif_lg(struct gspca_dev *gspca_dev)
{ … }
static int jl2005c_stream_start_cif_small(struct gspca_dev *gspca_dev)
{ … }
static int jl2005c_stop(struct gspca_dev *gspca_dev)
{ … }
static void jl2005c_dostream(struct work_struct *work)
{ … }
static int sd_config(struct gspca_dev *gspca_dev,
const struct usb_device_id *id)
{ … }
static int sd_init(struct gspca_dev *gspca_dev)
{ … }
static int sd_start(struct gspca_dev *gspca_dev)
{ … }
static void sd_stop0(struct gspca_dev *gspca_dev)
{ … }
static const struct sd_desc sd_desc = …;
static const struct usb_device_id device_table[] = …;
MODULE_DEVICE_TABLE(usb, device_table);
static int sd_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static struct usb_driver sd_driver = …;
module_usb_driver(…) …;