drivers/media/i2c/ccs/ccs-data-defs.h
Source file repositories/reference/linux-study-clean/drivers/media/i2c/ccs/ccs-data-defs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/i2c/ccs/ccs-data-defs.h- Extension
.h- Size
- 5888 bytes
- Lines
- 222
- 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
ccs-data.h
Detected Declarations
struct __ccs_data_length_specifierstruct __ccs_data_length_specifier2struct __ccs_data_length_specifier3struct __ccs_data_blockstruct __ccs_data_block3struct __ccs_data_block4struct __ccs_data_block_versionstruct __ccs_data_block_regsstruct __ccs_data_block_regs2struct __ccs_data_block_regs3struct __ccs_data_block_ffd_entrystruct __ccs_data_block_ffdstruct __ccs_data_block_rule_ifstruct __ccs_data_block_pdaf_readoutstruct __ccs_data_block_pdaf_pix_loc_block_descstruct __ccs_data_block_pdaf_pix_loc_block_desc_groupstruct __ccs_data_block_pdaf_pix_loc_pixel_descstruct __ccs_data_block_pdaf_pix_locstruct __ccs_data_block_endenum __ccs_data_length_specifier_idenum __ccs_data_block_idenum ccs_data_block_regs_selenum __ccs_data_ffd_pixelcodeenum __ccs_data_block_rule_idenum __ccs_data_block_pdaf_readout_orderenum __ccs_data_block_pdaf_pix_loc_pixel_type
Annotated Snippet
struct __ccs_data_length_specifier {
u8 length;
} __packed;
struct __ccs_data_length_specifier2 {
u8 length[2];
} __packed;
struct __ccs_data_length_specifier3 {
u8 length[3];
} __packed;
struct __ccs_data_block {
u8 id;
struct __ccs_data_length_specifier length;
} __packed;
#define CCS_DATA_BLOCK_HEADER_ID_VERSION_SHIFT 5
struct __ccs_data_block3 {
u8 id;
struct __ccs_data_length_specifier2 length;
} __packed;
struct __ccs_data_block4 {
u8 id;
struct __ccs_data_length_specifier3 length;
} __packed;
enum __ccs_data_block_id {
CCS_DATA_BLOCK_ID_DUMMY = 1,
CCS_DATA_BLOCK_ID_DATA_VERSION = 2,
CCS_DATA_BLOCK_ID_SENSOR_READ_ONLY_REGS = 3,
CCS_DATA_BLOCK_ID_MODULE_READ_ONLY_REGS = 4,
CCS_DATA_BLOCK_ID_SENSOR_MANUFACTURER_REGS = 5,
CCS_DATA_BLOCK_ID_MODULE_MANUFACTURER_REGS = 6,
CCS_DATA_BLOCK_ID_SENSOR_RULE_BASED_BLOCK = 32,
CCS_DATA_BLOCK_ID_MODULE_RULE_BASED_BLOCK = 33,
CCS_DATA_BLOCK_ID_SENSOR_PDAF_PIXEL_LOCATION = 36,
CCS_DATA_BLOCK_ID_MODULE_PDAF_PIXEL_LOCATION = 37,
CCS_DATA_BLOCK_ID_LICENSE = 40,
CCS_DATA_BLOCK_ID_END = 127,
};
struct __ccs_data_block_version {
u8 static_data_version_major[2];
u8 static_data_version_minor[2];
u8 year[2];
u8 month;
u8 day;
} __packed;
struct __ccs_data_block_regs {
u8 reg_len;
} __packed;
#define CCS_DATA_BLOCK_REGS_ADDR_MASK 0x07
#define CCS_DATA_BLOCK_REGS_LEN_SHIFT 3
#define CCS_DATA_BLOCK_REGS_LEN_MASK 0x38
#define CCS_DATA_BLOCK_REGS_SEL_SHIFT 6
enum ccs_data_block_regs_sel {
CCS_DATA_BLOCK_REGS_SEL_REGS = 0,
CCS_DATA_BLOCK_REGS_SEL_REGS2 = 1,
CCS_DATA_BLOCK_REGS_SEL_REGS3 = 2,
};
struct __ccs_data_block_regs2 {
u8 reg_len;
u8 addr;
} __packed;
#define CCS_DATA_BLOCK_REGS_2_ADDR_MASK 0x01
#define CCS_DATA_BLOCK_REGS_2_LEN_SHIFT 1
#define CCS_DATA_BLOCK_REGS_2_LEN_MASK 0x3e
struct __ccs_data_block_regs3 {
u8 reg_len;
u8 addr[2];
} __packed;
#define CCS_DATA_BLOCK_REGS_3_LEN_MASK 0x3f
enum __ccs_data_ffd_pixelcode {
CCS_DATA_BLOCK_FFD_PIXELCODE_EMBEDDED = 1,
CCS_DATA_BLOCK_FFD_PIXELCODE_DUMMY = 2,
CCS_DATA_BLOCK_FFD_PIXELCODE_BLACK = 3,
CCS_DATA_BLOCK_FFD_PIXELCODE_DARK = 4,
CCS_DATA_BLOCK_FFD_PIXELCODE_VISIBLE = 5,
CCS_DATA_BLOCK_FFD_PIXELCODE_MS_0 = 8,
Annotation
- Immediate include surface: `ccs-data.h`.
- Detected declarations: `struct __ccs_data_length_specifier`, `struct __ccs_data_length_specifier2`, `struct __ccs_data_length_specifier3`, `struct __ccs_data_block`, `struct __ccs_data_block3`, `struct __ccs_data_block4`, `struct __ccs_data_block_version`, `struct __ccs_data_block_regs`, `struct __ccs_data_block_regs2`, `struct __ccs_data_block_regs3`.
- 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.