drivers/gpu/drm/exynos/exynos_drm_drv.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/exynos/exynos_drm_drv.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/exynos/exynos_drm_drv.h- Extension
.h- Size
- 7705 bytes
- Lines
- 264
- 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/module.hdrm/drm_crtc.hdrm/drm_device.hdrm/drm_plane.h
Detected Declarations
struct drm_crtc_statestruct drm_display_modestruct exynos_drm_rectstruct exynos_drm_plane_statestruct exynos_drm_planestruct exynos_drm_plane_configstruct exynos_drm_crtcstruct exynos_drm_crtc_opsstruct exynos_drm_clkstruct exynos_drm_crtcstruct drm_exynos_file_privatestruct exynos_drm_privateenum exynos_drm_output_typefunction to_exynos_plane_statefunction exynos_drm_pipe_clk_enablefunction is_drm_iommu_supportedfunction exynos_dpi_probefunction exynos_dpi_removefunction exynos_dpi_bindfunction exynos_drm_check_fimc_device
Annotated Snippet
struct exynos_drm_rect {
unsigned int x, y;
unsigned int w, h;
};
/*
* Exynos drm plane state structure.
*
* @base: plane_state object (contains drm_framebuffer pointer)
* @src: rectangle of the source image data to be displayed (clipped to
* visible part).
* @crtc: rectangle of the target image position on hardware screen
* (clipped to visible part).
* @h_ratio: horizontal scaling ratio, 16.16 fixed point
* @v_ratio: vertical scaling ratio, 16.16 fixed point
*
* this structure consists plane state data that will be applied to hardware
* specific overlay info.
*/
struct exynos_drm_plane_state {
struct drm_plane_state base;
struct exynos_drm_rect crtc;
struct exynos_drm_rect src;
unsigned int h_ratio;
unsigned int v_ratio;
};
static inline struct exynos_drm_plane_state *
to_exynos_plane_state(struct drm_plane_state *state)
{
return container_of(state, struct exynos_drm_plane_state, base);
}
/*
* Exynos drm common overlay structure.
*
* @base: plane object
* @index: hardware index of the overlay layer
*
* this structure is common to exynos SoC and its contents would be copied
* to hardware specific overlay info.
*/
struct exynos_drm_plane {
struct drm_plane base;
const struct exynos_drm_plane_config *config;
unsigned int index;
};
#define EXYNOS_DRM_PLANE_CAP_DOUBLE (1 << 0)
#define EXYNOS_DRM_PLANE_CAP_SCALE (1 << 1)
#define EXYNOS_DRM_PLANE_CAP_ZPOS (1 << 2)
#define EXYNOS_DRM_PLANE_CAP_TILE (1 << 3)
#define EXYNOS_DRM_PLANE_CAP_PIX_BLEND (1 << 4)
#define EXYNOS_DRM_PLANE_CAP_WIN_BLEND (1 << 5)
/*
* Exynos DRM plane configuration structure.
*
* @zpos: initial z-position of the plane.
* @type: type of the plane (primary, cursor or overlay).
* @pixel_formats: supported pixel formats.
* @num_pixel_formats: number of elements in 'pixel_formats'.
* @capabilities: supported features (see EXYNOS_DRM_PLANE_CAP_*)
*/
struct exynos_drm_plane_config {
unsigned int zpos;
enum drm_plane_type type;
const uint32_t *pixel_formats;
unsigned int num_pixel_formats;
unsigned int capabilities;
};
/*
* Exynos drm crtc ops
*
* @atomic_enable: enable the device
* @atomic_disable: disable the device
* @enable_vblank: specific driver callback for enabling vblank interrupt.
* @disable_vblank: specific driver callback for disabling vblank interrupt.
* @mode_valid: specific driver callback for mode validation
* @atomic_check: validate state
* @atomic_begin: prepare device to receive an update
* @atomic_flush: mark the end of device update
* @update_plane: apply hardware specific overlay data to registers.
* @disable_plane: disable hardware specific overlay.
* @te_handler: trigger to transfer video image at the tearing effect
* synchronization signal if there is a page flip request.
Annotation
- Immediate include surface: `linux/module.h`, `drm/drm_crtc.h`, `drm/drm_device.h`, `drm/drm_plane.h`.
- Detected declarations: `struct drm_crtc_state`, `struct drm_display_mode`, `struct exynos_drm_rect`, `struct exynos_drm_plane_state`, `struct exynos_drm_plane`, `struct exynos_drm_plane_config`, `struct exynos_drm_crtc`, `struct exynos_drm_crtc_ops`, `struct exynos_drm_clk`, `struct exynos_drm_crtc`.
- 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.