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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
gspca.h
Detected Declarations
struct sdenum bridgesenum webcamsfunction reg_wfunction reg_rfunction i2c_wfunction reg_w_buffunction swap_bitsfunction setgainfunction setexposurefunction setautogainfunction nw802_test_regfunction sd_configfunction et31x110function sd_initfunction sd_startfunction sd_stopNfunction sd_pkt_scanfunction do_autogainfunction sd_s_ctrlfunction sd_init_controlsfunction sd_probe
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
- Immediate include surface: `gspca.h`.
- Detected declarations: `struct sd`, `enum bridges`, `enum webcams`, `function reg_w`, `function reg_r`, `function i2c_w`, `function reg_w_buf`, `function swap_bits`, `function setgain`, `function setexposure`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.