include/media/drv-intf/saa7146_vv.h
Source file repositories/reference/linux-study-clean/include/media/drv-intf/saa7146_vv.h
File Facts
- System
- Linux kernel
- Corpus path
include/media/drv-intf/saa7146_vv.h- Extension
.h- Size
- 6597 bytes
- Lines
- 223
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
media/v4l2-common.hmedia/v4l2-ioctl.hmedia/v4l2-fh.hmedia/drv-intf/saa7146.hmedia/videobuf2-dma-sg.h
Detected Declarations
struct saa7146_video_dmastruct saa7146_formatstruct saa7146_standardstruct saa7146_bufstruct saa7146_dmaqueuestruct saa7146_vvstruct saa7146_ext_vvstruct saa7146_use_ops
Annotated Snippet
struct saa7146_video_dma {
u32 base_odd;
u32 base_even;
u32 prot_addr;
u32 pitch;
u32 base_page;
u32 num_line_byte;
};
#define FORMAT_BYTE_SWAP 0x1
#define FORMAT_IS_PLANAR 0x2
struct saa7146_format {
u32 pixelformat;
u32 trans;
u8 depth;
u8 flags;
u8 swap;
};
struct saa7146_standard
{
char *name;
v4l2_std_id id;
int v_offset; /* number of lines of vertical offset before processing */
int v_field; /* number of lines in a field for HPS to process */
int h_offset; /* horizontal offset of processing window */
int h_pixels; /* number of horizontal pixels to process */
int v_max_out;
int h_max_out;
};
/* buffer for one video/vbi frame */
struct saa7146_buf {
/* common v4l buffer stuff -- must be first */
struct vb2_v4l2_buffer vb;
struct list_head list;
/* saa7146 specific */
int (*activate)(struct saa7146_dev *dev,
struct saa7146_buf *buf,
struct saa7146_buf *next);
/* page tables */
struct saa7146_pgtable pt[3];
};
struct saa7146_dmaqueue {
struct saa7146_dev *dev;
struct saa7146_buf *curr;
struct list_head queue;
struct timer_list timeout;
struct vb2_queue q;
};
struct saa7146_vv
{
/* vbi capture */
struct saa7146_dmaqueue vbi_dmaq;
struct v4l2_vbi_format vbi_fmt;
struct timer_list vbi_read_timeout;
/* vbi workaround interrupt queue */
wait_queue_head_t vbi_wq;
/* video capture */
struct saa7146_dmaqueue video_dmaq;
struct v4l2_pix_format video_fmt;
enum v4l2_field last_field;
u32 seqnr;
/* common: fixme? shouldn't this be in saa7146_fh?
(this leads to a more complicated question: shall the driver
store the different settings (for example S_INPUT) for every open
and restore it appropriately, or should all settings be common for
all opens? currently, we do the latter, like all other
drivers do... */
struct saa7146_standard *standard;
int vflip;
int hflip;
int current_hps_source;
int current_hps_sync;
unsigned int resources; /* resource management for device */
};
/* flags */
Annotation
- Immediate include surface: `media/v4l2-common.h`, `media/v4l2-ioctl.h`, `media/v4l2-fh.h`, `media/drv-intf/saa7146.h`, `media/videobuf2-dma-sg.h`.
- Detected declarations: `struct saa7146_video_dma`, `struct saa7146_format`, `struct saa7146_standard`, `struct saa7146_buf`, `struct saa7146_dmaqueue`, `struct saa7146_vv`, `struct saa7146_ext_vv`, `struct saa7146_use_ops`.
- Atlas domain: Repository Root And Misc / include.
- 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.