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

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Mars MR97310A library
 *
 * The original mr97310a driver, which supported the Aiptek Pencam VGA+, is
 * Copyright (C) 2009 Kyle Guinn <[email protected]>
 *
 * Support for the MR97310A cameras in addition to the Aiptek Pencam VGA+
 * and for the routines for detecting and classifying these various cameras,
 * is Copyright (C) 2009 Theodore Kilgore <[email protected]>
 *
 * Support for the control settings for the CIF cameras is
 * Copyright (C) 2009 Hans de Goede <[email protected]> and
 * Thomas Kaiser <[email protected]>
 *
 * Support for the control settings for the VGA cameras is
 * Copyright (C) 2009 Theodore Kilgore <[email protected]>
 *
 * Several previously unsupported cameras are owned and have been tested by
 * Hans de Goede <[email protected]> and
 * Thomas Kaiser <[email protected]> and
 * Theodore Kilgore <[email protected]> and
 * Edmond Rodriguez <[email protected]> and
 * Aurelien Jacobs <[email protected]>
 *
 * The MR97311A support in gspca/mars.c has been helpful in understanding some
 * of the registers in these cameras.
 */

#define pr_fmt(fmt)

#define MODULE_NAME

#include "gspca.h"

#define CAM_TYPE_CIF
#define CAM_TYPE_VGA

#define MR97310A_BRIGHTNESS_DEFAULT

#define MR97310A_EXPOSURE_MIN
#define MR97310A_EXPOSURE_MAX
#define MR97310A_EXPOSURE_DEFAULT

#define MR97310A_GAIN_MIN
#define MR97310A_GAIN_MAX
#define MR97310A_GAIN_DEFAULT

#define MR97310A_CONTRAST_MIN
#define MR97310A_CONTRAST_MAX
#define MR97310A_CONTRAST_DEFAULT

#define MR97310A_CS_GAIN_MIN
#define MR97310A_CS_GAIN_MAX
#define MR97310A_CS_GAIN_DEFAULT

#define MR97310A_CID_CLOCKDIV
#define MR97310A_MIN_CLOCKDIV_MIN
#define MR97310A_MIN_CLOCKDIV_MAX
#define MR97310A_MIN_CLOCKDIV_DEFAULT

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

/* global parameters */
static int force_sensor_type =;
module_param(force_sensor_type, int, 0644);
MODULE_PARM_DESC();

/* specific webcam descriptor */
struct sd {};

struct sensor_w_data {};

static void sd_stopN(struct gspca_dev *gspca_dev);

static const struct v4l2_pix_format vga_mode[] =;

/* the bytes to write are in gspca_dev->usb_buf */
static int mr_write(struct gspca_dev *gspca_dev, int len)
{}

/* the bytes are read into gspca_dev->usb_buf */
static int mr_read(struct gspca_dev *gspca_dev, int len)
{}

static int sensor_write_reg(struct gspca_dev *gspca_dev, u8 reg, u8 flags,
	const u8 *data, int len)
{}

static int sensor_write_regs(struct gspca_dev *gspca_dev,
	const struct sensor_w_data *data, int len)
{}

static int sensor_write1(struct gspca_dev *gspca_dev, u8 reg, u8 data)
{}

static int cam_get_response16(struct gspca_dev *gspca_dev, u8 reg, int verbose)
{}

static int zero_the_pointer(struct gspca_dev *gspca_dev)
{}

static int stream_start(struct gspca_dev *gspca_dev)
{}

static void stream_stop(struct gspca_dev *gspca_dev)
{}

static void lcd_stop(struct gspca_dev *gspca_dev)
{}

static int isoc_enable(struct gspca_dev *gspca_dev)
{}

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

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

static int start_cif_cam(struct gspca_dev *gspca_dev)
{}

static int start_vga_cam(struct gspca_dev *gspca_dev)
{}

static int sd_start(struct gspca_dev *gspca_dev)
{}

static void sd_stopN(struct gspca_dev *gspca_dev)
{}

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

static void setexposure(struct gspca_dev *gspca_dev, s32 expo, s32 min_clockdiv)
{}

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

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

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)
{}

/* Include pac common sof detection functions */
#include "pac_common.h"

static void sd_pkt_scan(struct gspca_dev *gspca_dev,
			u8 *data,		/* isoc packet */
			int len)		/* iso packet length */
{}

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

/* -- module initialisation -- */
static const struct usb_device_id device_table[] =;
MODULE_DEVICE_TABLE(usb, device_table);

/* -- 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();