drivers/media/pci/ivtv/ivtv-cards.h

Source file repositories/reference/linux-study-clean/drivers/media/pci/ivtv/ivtv-cards.h

File Facts

System
Linux kernel
Corpus path
drivers/media/pci/ivtv/ivtv-cards.h
Extension
.h
Size
11137 bytes
Lines
315
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 ivtv_card_video_input {
	u8  video_type;		/* video input type */
	u8  audio_index;	/* index in ivtv_card_audio_input array */
	u16 video_input;	/* hardware video input */
};

struct ivtv_card_audio_input {
	u8  audio_type;		/* audio input type */
	u32 audio_input;	/* hardware audio input */
	u16 muxer_input;	/* hardware muxer input for boards with a
				   multiplexer chip */
};

struct ivtv_card_output {
	u8  name[32];
	u16 video_output;  /* hardware video output */
};

struct ivtv_card_pci_info {
	u16 device;
	u16 subsystem_vendor;
	u16 subsystem_device;
};

/* GPIO definitions */

/* The mask is the set of bits used by the operation */

struct ivtv_gpio_init {		/* set initial GPIO DIR and OUT values */
	u16 direction;		/* DIR setting. Leave to 0 if no init is needed */
	u16 initial_value;
};

struct ivtv_gpio_video_input {	/* select tuner/line in input */
	u16 mask;		/* leave to 0 if not supported */
	u16 tuner;
	u16 composite;
	u16 svideo;
};

struct ivtv_gpio_audio_input {	/* select tuner/line in input */
	u16 mask;		/* leave to 0 if not supported */
	u16 tuner;
	u16 linein;
	u16 radio;
};

struct ivtv_gpio_audio_mute {
	u16 mask;		/* leave to 0 if not supported */
	u16 mute;		/* set this value to mute, 0 to unmute */
};

struct ivtv_gpio_audio_mode {
	u16 mask;		/* leave to 0 if not supported */
	u16 mono;		/* set audio to mono */
	u16 stereo;		/* set audio to stereo */
	u16 lang1;		/* set audio to the first language */
	u16 lang2;		/* set audio to the second language */
	u16 both;		/* both languages are output */
};

struct ivtv_gpio_audio_freq {
	u16 mask;		/* leave to 0 if not supported */
	u16 f32000;
	u16 f44100;
	u16 f48000;
};

struct ivtv_gpio_audio_detect {
	u16 mask;		/* leave to 0 if not supported */
	u16 stereo;		/* if the input matches this value then
				   stereo is detected */
};

struct ivtv_card_tuner {
	v4l2_std_id std;	/* standard for which the tuner is suitable */
	int	    tuner;	/* tuner ID (from tuner.h) */
};

struct ivtv_card_tuner_i2c {
	unsigned short radio[2];/* radio tuner i2c address to probe */
	unsigned short demod[2];/* demodulator i2c address to probe */
	unsigned short tv[4];	/* tv tuner i2c addresses to probe */
};

/* for card information/parameters */
struct ivtv_card {
	int type;
	char *name;
	char *comment;

Annotation

Implementation Notes