drivers/media/usb/go7007/go7007-priv.h
Source file repositories/reference/linux-study-clean/drivers/media/usb/go7007/go7007-priv.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/usb/go7007/go7007-priv.h- Extension
.h- Size
- 8757 bytes
- Lines
- 299
- 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
media/v4l2-device.hmedia/v4l2-ctrls.hmedia/v4l2-fh.hmedia/videobuf2-v4l2.h
Detected Declarations
struct go7007struct go7007_board_infostruct go_i2cstruct go7007_hpi_opsstruct go7007_bufferstruct go7007enum go7007_parser_state
Annotated Snippet
struct go7007_board_info {
unsigned int flags;
int hpi_buffer_cap;
unsigned int sensor_flags;
int sensor_width;
int sensor_height;
int sensor_framerate;
int sensor_h_offset;
int sensor_v_offset;
unsigned int audio_flags;
int audio_rate;
int audio_bclk_div;
int audio_main_div;
int num_i2c_devs;
struct go_i2c {
const char *type;
unsigned int is_video:1;
unsigned int is_audio:1;
int addr;
u32 flags;
} i2c_devs[5];
int num_inputs;
struct {
int video_input;
int audio_index;
char *name;
} inputs[4];
int video_config;
int num_aud_inputs;
struct {
int audio_input;
char *name;
} aud_inputs[3];
};
struct go7007_hpi_ops {
int (*interface_reset)(struct go7007 *go);
int (*write_interrupt)(struct go7007 *go, int addr, int data);
int (*read_interrupt)(struct go7007 *go);
int (*stream_start)(struct go7007 *go);
int (*stream_stop)(struct go7007 *go);
int (*send_firmware)(struct go7007 *go, u8 *data, int len);
int (*send_command)(struct go7007 *go, unsigned int cmd, void *arg);
void (*release)(struct go7007 *go);
};
/* The video buffer size must be a multiple of PAGE_SIZE */
#define GO7007_BUF_PAGES (128 * 1024 / PAGE_SIZE)
#define GO7007_BUF_SIZE (GO7007_BUF_PAGES << PAGE_SHIFT)
struct go7007_buffer {
struct vb2_v4l2_buffer vb;
struct list_head list;
unsigned int frame_offset;
u32 modet_active;
};
#define GO7007_RATIO_1_1 0
#define GO7007_RATIO_4_3 1
#define GO7007_RATIO_16_9 2
enum go7007_parser_state {
STATE_DATA,
STATE_00,
STATE_00_00,
STATE_00_00_01,
STATE_FF,
STATE_VBI_LEN_A,
STATE_VBI_LEN_B,
STATE_MODET_MAP,
STATE_UNPARSED,
};
struct go7007 {
struct device *dev;
u8 bus_info[32];
const struct go7007_board_info *board_info;
unsigned int board_id;
int tuner_type;
int channel_number; /* for multi-channel boards like Adlink PCI-MPG24 */
char name[64];
struct video_device vdev;
void *boot_fw;
unsigned boot_fw_len;
struct v4l2_device v4l2_dev;
struct v4l2_ctrl_handler hdl;
struct v4l2_ctrl *mpeg_video_encoding;
struct v4l2_ctrl *mpeg_video_gop_size;
struct v4l2_ctrl *mpeg_video_gop_closure;
struct v4l2_ctrl *mpeg_video_bitrate;
Annotation
- Immediate include surface: `media/v4l2-device.h`, `media/v4l2-ctrls.h`, `media/v4l2-fh.h`, `media/videobuf2-v4l2.h`.
- Detected declarations: `struct go7007`, `struct go7007_board_info`, `struct go_i2c`, `struct go7007_hpi_ops`, `struct go7007_buffer`, `struct go7007`, `enum go7007_parser_state`.
- 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.