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

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * DivIO nw80x subdriver
 *
 * Copyright (C) 2011 Jean-François Moine (http://moinejf.free.fr)
 * Copyright (C) 2003 Sylvain Munaut <[email protected]>
 *			Kjell Claesson <[email protected]>
 */

#define pr_fmt(fmt)

#define MODULE_NAME

#include "gspca.h"

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

static int webcam;

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

enum bridges {};
enum webcams {};

static const u8 webcam_chip[NWEBCAMS] =;
/*
 * other webcams:
 *	- nw801 046d:d001
 *		Logitech QuickCam Pro (dark focus ring)
 *	- nw801 0728:d001
 *		AVerMedia Camguard
 *	- nw??? 06a5:d001
 *		D-Link NetQam Pro 250plus
 *	- nw800 065a:d800
 *		Showcam NGS webcam
 *	- nw??? ????:????
 *		Sceptre svc300
 */

/*
 * registers
 *    nw800/et31x110	  nw801		  nw802
 *	0000..009e	0000..00a1	0000..009e
 *	0200..0211	   id		   id
 *	0300..0302	   id		   id
 *	0400..0406	  (inex)	0400..0406
 *	0500..0505	0500..0506	  (inex)
 *	0600..061a	0600..0601	0600..0601
 *	0800..0814	   id		   id
 *	1000..109c	1000..10a1	1000..109a
 */

/* resolutions
 *	nw800: 320x240, 352x288
 *	nw801/802: 320x240, 640x480
 */
static const struct v4l2_pix_format cif_mode[] =;
static const struct v4l2_pix_format vga_mode[] =;

/*
 * The sequences below contain:
 *	- 1st and 2nd bytes: either
 *		- register number (BE)
 *		- I2C0 + i2c address
 *	- 3rd byte: data length (=0 for end of sequence)
 *	- n bytes: data
 */
#define I2C0

static const u8 nw800_init[] =;
static const u8 nw800_start[] =;

/* 06a5:d001 - nw801 - Panasonic
 *		P35u */
static const u8 nw801_start_1[] =;
static const u8 nw801_start_qvga[] =;
static const u8 nw801_start_vga[] =;
static const u8 nw801_start_2[] =;

/* nw802 (sharp IR3Y38M?) */
static const u8 nw802_start[] =;
/* et31x110 - Trust 120 SpaceCam */
static const u8 spacecam_init[] =;
static const u8 spacecam_start[] =;
/* et31x110 - pas106 - other Trust SpaceCam120 */
static const u8 spacecam2_start[] =;

/* nw802 - Conceptronic Video Pro */
static const u8 cvideopro_start[] =;

/* nw802 - D-link dru-350c cam */
static const u8 dlink_start[] =;

/* 06a5:d001 - nw801 - Sony
 *		Plustek Opticam 500U or ProLink DS3303u (Hitachi HD49322BF) */
/*fixme: 320x240 only*/
static const u8 ds3303_start[] =;

/* 06a5:d001 - nw802 - Panasonic
 *		GP-KR651US (Philips TDA8786) */
static const u8 kr651_start_1[] =;
static const u8 kr651_start_qvga[] =;
static const u8 kr651_start_vga[] =;
static const u8 kr651_start_2[] =;

/* nw802 - iRez Kritter cam */
static const u8 kritter_start[] =;

/* nw802 - Mustek Wcam 300 mini */
static const u8 mustek_start[] =;

/* nw802 - Scope USB Microscope M2 (ProScope) (Hitachi HD49322BF) */
static const u8 proscope_init[] =;
static const u8 proscope_start_1[] =;
static const u8 proscope_start_qvga[] =;
static const u8 proscope_start_vga[] =;
static const u8 proscope_start_2[] =;

/* nw800 - hv7121b? (seems pas106) - Divio Chicony TwinkleCam */
static const u8 twinkle_start[] =;

/* nw802 dvc-v6 */
static const u8 dvcv6_start[] =;

static const u8 *webcam_start[] =;

/* -- write a register -- */
static void reg_w(struct gspca_dev *gspca_dev,
			u16 index,
			const u8 *data,
			int len)
{}

/* -- read registers in usb_buf -- */
static void reg_r(struct gspca_dev *gspca_dev,
			u16 index,
			int len)
{}

static void i2c_w(struct gspca_dev *gspca_dev,
			u8 i2c_addr,
			const u8 *data,
			int len)
{}

static void reg_w_buf(struct gspca_dev *gspca_dev,
			const u8 *cmd)
{}

static int swap_bits(int v)
{}

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

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

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

static int nw802_test_reg(struct gspca_dev *gspca_dev,
			u16 index,
			u8 value)
{}

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

/* -- start the camera -- */
static int sd_start(struct gspca_dev *gspca_dev)
{}

static void sd_stopN(struct gspca_dev *gspca_dev)
{}

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

static void do_autogain(struct gspca_dev *gspca_dev)
{}


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

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

module_param(webcam, int, 0644);
MODULE_PARM_DESC();