drivers/gpu/drm/rockchip/rockchip_drm_vop2.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/rockchip/rockchip_drm_vop2.h- Extension
.h- Size
- 27455 bytes
- Lines
- 871
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/regmap.hdrm/drm_modes.hdt-bindings/soc/rockchip,vop2.hrockchip_drm_drv.hrockchip_drm_vop.h
Detected Declarations
struct vop2_regs_dumpstruct vop2_win_datastruct vop2_winstruct vop2_video_port_datastruct vop2_video_portstruct vop2_opsstruct vop2_datastruct vop2enum win_dly_modeenum vop2_dly_moduleenum vop2_scale_up_modeenum vop2_scale_down_modeenum vop2_win_regsenum vop_csc_formatenum src_factor_modeenum dst_factor_modeenum vop2_layer_phy_idfunction vop2_writelfunction vop2_vp_writefunction vop2_readlfunction vop2_vp_readfunction vop2_win_writefunction vop2_cluster_windowfunction vop2_cfg_done
Annotated Snippet
struct vop2_regs_dump {
const char *name;
u32 base;
u32 size;
u32 en_reg;
u32 en_val;
u32 en_mask;
};
struct vop2_win_data {
const char *name;
unsigned int phys_id;
u32 base;
u32 possible_vp_mask;
enum drm_plane_type type;
u32 nformats;
const u32 *formats;
const uint64_t *format_modifiers;
const unsigned int supported_rotations;
/**
* @layer_sel_id: defined by register OVERLAY_LAYER_SEL or PORTn_LAYER_SEL
*/
unsigned int layer_sel_id[ROCKCHIP_MAX_CRTC];
uint64_t feature;
uint8_t axi_bus_id;
uint8_t axi_yrgb_r_id;
uint8_t axi_uv_r_id;
unsigned int max_upscale_factor;
unsigned int max_downscale_factor;
const u8 dly[VOP2_DLY_MODE_MAX];
};
struct vop2_win {
struct vop2 *vop2;
struct drm_plane base;
const struct vop2_win_data *data;
struct regmap_field *reg[VOP2_WIN_MAX_REG];
/**
* @win_id: graphic window id, a cluster may be split into two
* graphics windows.
*/
u8 win_id;
u8 delay;
u32 offset;
enum drm_plane_type type;
};
struct vop2_video_port_data {
unsigned int id;
u32 feature;
u16 gamma_lut_len;
u16 cubic_lut_len;
struct vop_rect max_output;
const u8 pre_scan_max_dly[4];
unsigned int offset;
/**
* @pixel_rate: pixel per cycle
*/
u8 pixel_rate;
};
struct vop2_video_port {
struct drm_crtc crtc;
struct vop2 *vop2;
struct clk *dclk;
struct clk *dclk_src;
unsigned int id;
const struct vop2_video_port_data *data;
struct completion dsp_hold_completion;
/**
* @win_mask: Bitmask of windows attached to the video port;
*/
u32 win_mask;
struct vop2_win *primary_plane;
struct drm_pending_vblank_event *event;
unsigned int nlayers;
};
/**
Annotation
- Immediate include surface: `linux/regmap.h`, `drm/drm_modes.h`, `dt-bindings/soc/rockchip,vop2.h`, `rockchip_drm_drv.h`, `rockchip_drm_vop.h`.
- Detected declarations: `struct vop2_regs_dump`, `struct vop2_win_data`, `struct vop2_win`, `struct vop2_video_port_data`, `struct vop2_video_port`, `struct vop2_ops`, `struct vop2_data`, `struct vop2`, `enum win_dly_mode`, `enum vop2_dly_module`.
- Atlas domain: Driver Families / drivers/gpu.
- 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.