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.

Dependency Surface

Detected Declarations

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

Implementation Notes