drivers/media/i2c/ccs/ccs-data.h
Source file repositories/reference/linux-study-clean/drivers/media/i2c/ccs/ccs-data.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/i2c/ccs/ccs-data.h- Extension
.h- Size
- 6717 bytes
- Lines
- 231
- 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/types.h
Detected Declarations
struct devicestruct ccs_data_block_versionstruct ccs_regstruct ccs_if_rulestruct ccs_frame_format_descstruct ccs_frame_format_descsstruct ccs_pdaf_readoutstruct ccs_rulestruct ccs_pdaf_pix_loc_block_descstruct ccs_pdaf_pix_loc_block_desc_groupstruct ccs_pdaf_pix_loc_pixel_descstruct ccs_pdaf_pix_loc_pixel_desc_groupstruct ccs_pdaf_pix_locstruct ccs_data_container
Annotated Snippet
struct ccs_data_block_version {
u16 version_major;
u16 version_minor;
u16 date_year;
u8 date_month;
u8 date_day;
};
/**
* struct ccs_reg - CCS register value
* @addr: The 16-bit address of the register
* @len: Length of the data
* @value: Data
*/
struct ccs_reg {
u16 addr;
u16 len;
u8 *value;
};
/**
* struct ccs_if_rule - CCS static data if rule
* @addr: Register address
* @value: Register value
* @mask: Value applied to both actual register value and @value
*/
struct ccs_if_rule {
u16 addr;
u8 value;
u8 mask;
};
/**
* struct ccs_frame_format_desc - CCS frame format descriptor
* @pixelcode: The pixelcode; CCS_DATA_BLOCK_FFD_PIXELCODE_*
* @value: Value related to the pixelcode
*/
struct ccs_frame_format_desc {
u8 pixelcode;
u16 value;
};
/**
* struct ccs_frame_format_descs - A series of CCS frame format descriptors
* @num_column_descs: Number of column descriptors
* @num_row_descs: Number of row descriptors
* @column_descs: Column descriptors
* @row_descs: Row descriptors
*/
struct ccs_frame_format_descs {
u8 num_column_descs;
u8 num_row_descs;
struct ccs_frame_format_desc *column_descs;
struct ccs_frame_format_desc *row_descs;
};
/**
* struct ccs_pdaf_readout - CCS PDAF data readout descriptor
* @pdaf_readout_info_order: PDAF readout order
* @ffd: Frame format of PDAF data
*/
struct ccs_pdaf_readout {
u8 pdaf_readout_info_order;
struct ccs_frame_format_descs *ffd;
};
/**
* struct ccs_rule - A CCS static data rule
* @num_if_rules: Number of if rules
* @if_rules: If rules
* @num_read_only_regs: Number of read-only registers
* @read_only_regs: Read-only registers
* @num_manufacturer_regs: Number of manufacturer-specific registers
* @manufacturer_regs: Manufacturer-specific registers
* @frame_format: Frame format
* @pdaf_readout: PDAF readout
*/
struct ccs_rule {
size_t num_if_rules;
struct ccs_if_rule *if_rules;
size_t num_read_only_regs;
struct ccs_reg *read_only_regs;
size_t num_manufacturer_regs;
struct ccs_reg *manufacturer_regs;
struct ccs_frame_format_descs *frame_format;
struct ccs_pdaf_readout *pdaf_readout;
};
/**
* struct ccs_pdaf_pix_loc_block_desc - PDAF pixel location block descriptor
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct device`, `struct ccs_data_block_version`, `struct ccs_reg`, `struct ccs_if_rule`, `struct ccs_frame_format_desc`, `struct ccs_frame_format_descs`, `struct ccs_pdaf_readout`, `struct ccs_rule`, `struct ccs_pdaf_pix_loc_block_desc`, `struct ccs_pdaf_pix_loc_block_desc_group`.
- 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.