drivers/media/pci/saa7134/saa7134.h
Source file repositories/reference/linux-study-clean/drivers/media/pci/saa7134/saa7134.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/pci/saa7134/saa7134.h- Extension
.h- Size
- 31098 bytes
- Lines
- 908
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/pci.hlinux/i2c.hlinux/videodev2.hlinux/kdev_t.hlinux/input.hlinux/notifier.hlinux/delay.hlinux/mutex.hlinux/pm_qos.hasm/io.hmedia/v4l2-common.hmedia/v4l2-ioctl.hmedia/v4l2-device.hmedia/v4l2-fh.hmedia/v4l2-ctrls.hmedia/tuner.hmedia/rc-core.hmedia/i2c/ir-kbd-i2c.hmedia/videobuf2-dma-sg.hsound/core.hsound/pcm.hmedia/videobuf2-dvb.htda8290.h
Detected Declarations
struct saa7134_tvnormstruct saa7134_tvaudiostruct saa7134_formatstruct saa7134_card_irstruct saa7134_inputstruct saa7134_boardstruct saa7134_devstruct saa7134_dmastruct saa7134_pgtablestruct saa7134_threadstruct saa7134_bufstruct saa7134_dmaqueuestruct saa7134_dmasoundstruct saa7134_tsstruct saa7134_mpeg_opsstruct saa7134_devenum saa7134_tvaudio_modeenum saa7134_audio_inenum saa7134_video_outenum saa7134_input_typesenum saa7134_mpeg_typeenum saa7134_mpeg_ts_typeenum saa7134_padsfunction writebfunction is_empress
Annotated Snippet
struct saa7134_tvnorm {
char *name;
v4l2_std_id id;
/* video decoder */
unsigned int sync_control;
unsigned int luma_control;
unsigned int chroma_ctrl1;
unsigned int chroma_gain;
unsigned int chroma_ctrl2;
unsigned int vgate_misc;
/* video scaler */
unsigned int h_start;
unsigned int h_stop;
unsigned int video_v_start;
unsigned int video_v_stop;
unsigned int vbi_v_start_0;
unsigned int vbi_v_stop_0;
unsigned int src_timing;
unsigned int vbi_v_start_1;
};
struct saa7134_tvaudio {
char *name;
v4l2_std_id std;
enum saa7134_tvaudio_mode mode;
int carr1;
int carr2;
};
struct saa7134_format {
unsigned int fourcc;
unsigned int depth;
unsigned int pm;
unsigned int vshift; /* vertical downsampling (for planar yuv) */
unsigned int hshift; /* horizontal downsampling (for planar yuv) */
unsigned int bswap:1;
unsigned int wswap:1;
unsigned int yuv:1;
unsigned int planar:1;
unsigned int uvswap:1;
};
struct saa7134_card_ir {
struct rc_dev *dev;
char phys[32];
u32 polling;
u32 last_gpio;
u32 mask_keycode, mask_keydown, mask_keyup;
bool running;
struct timer_list timer;
/* IR core raw decoding */
u32 raw_decode;
};
/* ----------------------------------------------------------- */
/* card configuration */
#define SAA7134_BOARD_NOAUTO UNSET
#define SAA7134_BOARD_UNKNOWN 0
#define SAA7134_BOARD_PROTEUS_PRO 1
#define SAA7134_BOARD_FLYVIDEO3000 2
#define SAA7134_BOARD_FLYVIDEO2000 3
#define SAA7134_BOARD_EMPRESS 4
#define SAA7134_BOARD_MONSTERTV 5
#define SAA7134_BOARD_MD9717 6
#define SAA7134_BOARD_TVSTATION_RDS 7
#define SAA7134_BOARD_CINERGY400 8
#define SAA7134_BOARD_MD5044 9
#define SAA7134_BOARD_KWORLD 10
#define SAA7134_BOARD_CINERGY600 11
#define SAA7134_BOARD_MD7134 12
#define SAA7134_BOARD_TYPHOON_90031 13
#define SAA7134_BOARD_ELSA 14
#define SAA7134_BOARD_ELSA_500TV 15
#define SAA7134_BOARD_ASUSTeK_TVFM7134 16
#define SAA7134_BOARD_VA1000POWER 17
#define SAA7134_BOARD_BMK_MPEX_NOTUNER 18
#define SAA7134_BOARD_VIDEOMATE_TV 19
#define SAA7134_BOARD_CRONOS_PLUS 20
#define SAA7134_BOARD_10MOONSTVMASTER 21
#define SAA7134_BOARD_MD2819 22
#define SAA7134_BOARD_BMK_MPEX_TUNER 23
#define SAA7134_BOARD_TVSTATION_DVR 24
Annotation
- Immediate include surface: `linux/pci.h`, `linux/i2c.h`, `linux/videodev2.h`, `linux/kdev_t.h`, `linux/input.h`, `linux/notifier.h`, `linux/delay.h`, `linux/mutex.h`.
- Detected declarations: `struct saa7134_tvnorm`, `struct saa7134_tvaudio`, `struct saa7134_format`, `struct saa7134_card_ir`, `struct saa7134_input`, `struct saa7134_board`, `struct saa7134_dev`, `struct saa7134_dma`, `struct saa7134_pgtable`, `struct saa7134_thread`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.