drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h- Extension
.h- Size
- 16550 bytes
- Lines
- 503
- Domain
- Driver Families
- Bucket
- drivers/gpu
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/regmap.hdrm/drm_plane.h
Detected Declarations
struct atmel_hlcdc_layer_cfg_layoutstruct atmel_hlcdc_dma_channel_dscrstruct atmel_hlcdc_formatsstruct atmel_hlcdc_layer_descstruct atmel_hlcdc_layerstruct atmel_hlcdc_planestruct atmel_hlcdc_dcstruct atmel_hlcdc_plane_statestruct atmel_lcdc_dc_opsstruct atmel_hlcdc_dc_descenum atmel_hlcdc_layer_typefunction drm_plane_to_atmel_hlcdc_planefunction atmel_hlcdc_layer_to_planefunction atmel_hlcdc_layer_write_regfunction atmel_hlcdc_layer_read_regfunction atmel_hlcdc_layer_write_cfgfunction atmel_hlcdc_layer_read_cfgfunction atmel_hlcdc_layer_write_clutfunction atmel_hlcdc_layer_init
Annotated Snippet
struct atmel_hlcdc_layer_cfg_layout {
int xstride[ATMEL_HLCDC_LAYER_MAX_PLANES];
int pstride[ATMEL_HLCDC_LAYER_MAX_PLANES];
int pos;
int size;
int memsize;
int default_color;
int chroma_key;
int chroma_key_mask;
int general_config;
int scaler_config;
struct {
int x;
int y;
} phicoeffs;
int disc_pos;
int disc_size;
int csc;
int vxs_config;
int hxs_config;
};
/**
* Atmel HLCDC DMA descriptor structure
*
* This structure is used by the HLCDC DMA engine to schedule a DMA transfer.
*
* The structure fields must remain in this specific order, because they're
* used by the HLCDC DMA engine, which expect them in this order.
* HLCDC DMA descriptors must be aligned on 64 bits.
*
* @addr: buffer DMA address
* @ctrl: DMA transfer options
* @next: next DMA descriptor to fetch
* @self: descriptor DMA address
*/
struct atmel_hlcdc_dma_channel_dscr {
dma_addr_t addr;
u32 ctrl;
dma_addr_t next;
dma_addr_t self;
} __aligned(sizeof(u64));
/**
* Atmel HLCDC layer types
*/
enum atmel_hlcdc_layer_type {
ATMEL_HLCDC_NO_LAYER,
ATMEL_HLCDC_BASE_LAYER,
ATMEL_HLCDC_OVERLAY_LAYER,
ATMEL_HLCDC_CURSOR_LAYER,
ATMEL_HLCDC_PP_LAYER,
};
/**
* Atmel HLCDC Supported formats structure
*
* This structure list all the formats supported by a given layer.
*
* @nformats: number of supported formats
* @formats: supported formats
*/
struct atmel_hlcdc_formats {
int nformats;
u32 *formats;
};
/**
* Atmel HLCDC Layer description structure
*
* This structure describes the capabilities provided by a given layer.
*
* @name: layer name
* @type: layer type
* @id: layer id
* @regs_offset: offset of the layer registers from the HLCDC registers base
* @cfgs_offset: CFGX registers offset from the layer registers base
* @formats: supported formats
* @layout: config registers layout
* @max_width: maximum width supported by this layer (0 means unlimited)
* @max_height: maximum height supported by this layer (0 means unlimited)
*/
struct atmel_hlcdc_layer_desc {
const char *name;
enum atmel_hlcdc_layer_type type;
int id;
int regs_offset;
int cfgs_offset;
int clut_offset;
struct atmel_hlcdc_formats *formats;
Annotation
- Immediate include surface: `linux/regmap.h`, `drm/drm_plane.h`.
- Detected declarations: `struct atmel_hlcdc_layer_cfg_layout`, `struct atmel_hlcdc_dma_channel_dscr`, `struct atmel_hlcdc_formats`, `struct atmel_hlcdc_layer_desc`, `struct atmel_hlcdc_layer`, `struct atmel_hlcdc_plane`, `struct atmel_hlcdc_dc`, `struct atmel_hlcdc_plane_state`, `struct atmel_lcdc_dc_ops`, `struct atmel_hlcdc_dc_desc`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.