drivers/media/usb/gspca/nw80x.c

Source file repositories/reference/linux-study-clean/drivers/media/usb/gspca/nw80x.c

File Facts

System
Linux kernel
Corpus path
drivers/media/usb/gspca/nw80x.c
Extension
.c
Size
76968 bytes
Lines
2106
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct sd {
	struct gspca_dev gspca_dev;	/* !! must be the first item */

	u32 ae_res;
	s8 ag_cnt;
#define AG_CNT_START 13
	u8 exp_too_low_cnt;
	u8 exp_too_high_cnt;

	u8 bridge;
	u8 webcam;
};

enum bridges {
	BRIDGE_NW800,	/* and et31x110 */
	BRIDGE_NW801,
	BRIDGE_NW802,
};
enum webcams {
	Generic800,
	SpaceCam,	/* Trust 120 SpaceCam */
	SpaceCam2,	/* other Trust 120 SpaceCam */
	Cvideopro,	/* Conceptronic Video Pro */
	Dlink350c,
	DS3303u,
	Kr651us,
	Kritter,
	Mustek300,
	Proscope,
	Twinkle,
	DvcV6,
	P35u,
	Generic802,
	NWEBCAMS	/* number of webcams */
};

static const u8 webcam_chip[NWEBCAMS] = {
	[Generic800]	= BRIDGE_NW800,	/* 06a5:0000
					 * Typhoon Webcam 100 USB */

	[SpaceCam]	= BRIDGE_NW800,	/* 06a5:d800
				* Trust SpaceCam120 or SpaceCam100 PORTABLE */

	[SpaceCam2]	= BRIDGE_NW800,	/* 06a5:d800 - pas106
			* other Trust SpaceCam120 or SpaceCam100 PORTABLE */

	[Cvideopro]	= BRIDGE_NW802,	/* 06a5:d001
			* Conceptronic Video Pro 'CVIDEOPRO USB Webcam CCD' */

	[Dlink350c]	= BRIDGE_NW802,	/* 06a5:d001
					 * D-Link NetQam Pro 250plus */

	[DS3303u]	= BRIDGE_NW801,	/* 06a5:d001
				* Plustek Opticam 500U or ProLink DS3303u */

	[Kr651us]	= BRIDGE_NW802,	/* 06a5:d001
					 * Panasonic GP-KR651US */

	[Kritter]	= BRIDGE_NW802,	/* 06a5:d001
					 * iRez Kritter cam */

	[Mustek300]	= BRIDGE_NW802,	/* 055f:d001
					 * Mustek Wcam 300 mini */

	[Proscope]	= BRIDGE_NW802,	/* 06a5:d001
					 * Scalar USB Microscope (ProScope) */

	[Twinkle]	= BRIDGE_NW800,	/* 06a5:d800 - hv7121b? (seems pas106)
					 * Divio Chicony TwinkleCam
					 * DSB-C110 */

	[DvcV6]		= BRIDGE_NW802,	/* 0502:d001
					 * DVC V6 */

	[P35u]		= BRIDGE_NW801,	/* 052b:d001, 06a5:d001 and 06be:d001
					 * EZCam Pro p35u */

	[Generic802]	= BRIDGE_NW802,
};
/*
 * 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??? ????:????

Annotation

Implementation Notes