linux/drivers/media/usb/gspca/jeilinj.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Jeilinj subdriver
 *
 * Supports some Jeilin dual-mode cameras which use bulk transport and
 * download raw JPEG data.
 *
 * Copyright (C) 2009 Theodore Kilgore
 *
 * Sportscam DV15 support and control settings are
 * Copyright (C) 2011 Patrice Chotard
 */

#define pr_fmt(fmt)

#define MODULE_NAME

#include <linux/slab.h>
#include "gspca.h"
#include "jpeg.h"

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();

/* Default timeouts, in ms */
#define JEILINJ_CMD_TIMEOUT
#define JEILINJ_CMD_DELAY
#define JEILINJ_DATA_TIMEOUT

/* Maximum transfer size to use. */
#define JEILINJ_MAX_TRANSFER
#define FRAME_HEADER_LEN
#define FRAME_START

enum {};

#define CAMQUALITY_MIN
#define CAMQUALITY_MAX

/* Structure to hold all of our device specific stuff */
struct sd {};

struct jlj_command {};

/* AFAICT these cameras will only do 320x240. */
static struct v4l2_pix_format jlj_mode[] =;

/*
 * cam uses endpoint 0x03 to send commands, 0x84 for read commands,
 * and 0x82 for bulk transfer.
 */

/* All commands are two bytes only */
static void jlj_write2(struct gspca_dev *gspca_dev, unsigned char *command)
{}

/* Responses are one byte only */
static void jlj_read1(struct gspca_dev *gspca_dev, unsigned char *response)
{}

static void setfreq(struct gspca_dev *gspca_dev, s32 val)
{}

static void setcamquality(struct gspca_dev *gspca_dev, s32 val)
{}

static void setautogain(struct gspca_dev *gspca_dev, s32 val)
{}

static void setred(struct gspca_dev *gspca_dev, s32 val)
{}

static void setgreen(struct gspca_dev *gspca_dev, s32 val)
{}

static void setblue(struct gspca_dev *gspca_dev, s32 val)
{}

static int jlj_start(struct gspca_dev *gspca_dev)
{}

static void sd_pkt_scan(struct gspca_dev *gspca_dev,
			u8 *data, int len)
{}

/* This function is called at probe time just before sd_init */
static int sd_config(struct gspca_dev *gspca_dev,
		const struct usb_device_id *id)
{}

static void sd_stopN(struct gspca_dev *gspca_dev)
{}

/* this function is called at probe and resume time */
static int sd_init(struct gspca_dev *gspca_dev)
{}

/* Set up for getting frames. */
static int sd_start(struct gspca_dev *gspca_dev)
{}

/* Table of supported USB devices */
static const struct usb_device_id device_table[] =;

MODULE_DEVICE_TABLE(usb, device_table);

static int sd_s_ctrl(struct v4l2_ctrl *ctrl)
{}

static const struct v4l2_ctrl_ops sd_ctrl_ops =;

static int sd_init_controls(struct gspca_dev *gspca_dev)
{}

static int sd_set_jcomp(struct gspca_dev *gspca_dev,
			const struct v4l2_jpegcompression *jcomp)
{}

static int sd_get_jcomp(struct gspca_dev *gspca_dev,
			struct v4l2_jpegcompression *jcomp)
{}


/* sub-driver description */
static const struct sd_desc sd_desc_sakar_57379 =;

/* sub-driver description */
static const struct sd_desc sd_desc_sportscam_dv15 =;

static const struct sd_desc *sd_desc[2] =;

/* -- device connect -- */
static int sd_probe(struct usb_interface *intf,
		const struct usb_device_id *id)
{}

static struct usb_driver sd_driver =;

module_usb_driver();