drivers/media/i2c/et8ek8/et8ek8_reg.h
Source file repositories/reference/linux-study-clean/drivers/media/i2c/et8ek8/et8ek8_reg.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/i2c/et8ek8/et8ek8_reg.h- Extension
.h- Size
- 1986 bytes
- Lines
- 88
- 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
linux/i2c.hlinux/types.hlinux/videodev2.hlinux/v4l2-subdev.h
Detected Declarations
struct v4l2_mbus_framefmtstruct v4l2_subdev_pad_mbus_code_enumstruct et8ek8_modestruct et8ek8_regstruct et8ek8_regliststruct et8ek8_meta_reglist
Annotated Snippet
struct et8ek8_mode {
/* Physical sensor resolution and current image window */
u16 sensor_width;
u16 sensor_height;
u16 sensor_window_origin_x;
u16 sensor_window_origin_y;
u16 sensor_window_width;
u16 sensor_window_height;
/* Image data coming from sensor (after scaling) */
u16 width;
u16 height;
u16 window_origin_x;
u16 window_origin_y;
u16 window_width;
u16 window_height;
u32 pixel_clock; /* in Hz */
struct v4l2_fract timeperframe;
u32 max_exp; /* Maximum exposure value */
u32 bus_format; /* MEDIA_BUS_FMT_ */
u32 sensitivity; /* 16.16 fixed point */
};
#define ET8EK8_REG_8BIT 1
#define ET8EK8_REG_16BIT 2
#define ET8EK8_REG_DELAY 100
#define ET8EK8_REG_TERM 0xff
struct et8ek8_reg {
u16 type;
u16 reg; /* 16-bit offset */
u32 val; /* 8/16/32-bit value */
};
/* Possible struct smia_reglist types. */
#define ET8EK8_REGLIST_STANDBY 0
#define ET8EK8_REGLIST_POWERON 1
#define ET8EK8_REGLIST_RESUME 2
#define ET8EK8_REGLIST_STREAMON 3
#define ET8EK8_REGLIST_STREAMOFF 4
#define ET8EK8_REGLIST_DISABLED 5
#define ET8EK8_REGLIST_MODE 10
#define ET8EK8_REGLIST_LSC_ENABLE 100
#define ET8EK8_REGLIST_LSC_DISABLE 101
#define ET8EK8_REGLIST_ANR_ENABLE 102
#define ET8EK8_REGLIST_ANR_DISABLE 103
struct et8ek8_reglist {
u32 type;
struct et8ek8_mode mode;
struct et8ek8_reg regs[];
};
#define ET8EK8_MAX_LEN 32
struct et8ek8_meta_reglist {
char version[ET8EK8_MAX_LEN];
union {
struct et8ek8_reglist *ptr;
} reglist[];
};
extern struct et8ek8_meta_reglist meta_reglist;
#endif /* ET8EK8REGS */
Annotation
- Immediate include surface: `linux/i2c.h`, `linux/types.h`, `linux/videodev2.h`, `linux/v4l2-subdev.h`.
- Detected declarations: `struct v4l2_mbus_framefmt`, `struct v4l2_subdev_pad_mbus_code_enum`, `struct et8ek8_mode`, `struct et8ek8_reg`, `struct et8ek8_reglist`, `struct et8ek8_meta_reglist`.
- 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.