drivers/gpu/drm/amd/display/dc/inc/hw/cursor_reg_cache.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/inc/hw/cursor_reg_cache.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/inc/hw/cursor_reg_cache.h
Extension
.h
Size
2560 bytes
Lines
122
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 cursor_position_cache_hubp {
	union reg_cursor_control_cfg cur_ctl;
	union reg_position_cfg {
		struct {
			uint32_t x_pos: 16;
			uint32_t y_pos: 16;
		} bits;
		uint32_t raw;
	} position;
	union reg_hot_spot_cfg {
		struct {
			uint32_t x_hot: 16;
			uint32_t y_hot: 16;
		} bits;
		uint32_t raw;
	} hot_spot;
	union reg_dst_offset_cfg {
		struct {
			uint32_t dst_x_offset: 13;
			uint32_t     reserved: 19;
		} bits;
		uint32_t raw;
	} dst_offset;
};

struct cursor_attribute_cache_hubp {
	uint32_t SURFACE_ADDR_HIGH;
	uint32_t SURFACE_ADDR;
	union    reg_cursor_control_cfg  cur_ctl;
	union    reg_cursor_size_cfg {
		struct {
			uint32_t  width: 16;
			uint32_t height: 16;
		} bits;
		uint32_t raw;
	} size;
	union    reg_cursor_settings_cfg {
		struct {
			uint32_t              dst_y_offset: 8;
			uint32_t          chunk_hdl_adjust: 2;
			uint32_t                  reserved: 22;
		} bits;
		uint32_t raw;
	} settings;
};

struct cursor_rect {
	uint32_t x;
	uint32_t y;
	uint32_t w;
	uint32_t h;
};

union reg_cur0_control_cfg {
	struct {
		uint32_t     cur0_enable: 1;
		uint32_t  expansion_mode: 1;
		uint32_t          reser0: 1;
		uint32_t     cur0_rom_en: 1;
		uint32_t            mode: 3;
		uint32_t        reserved: 25;
	} bits;
	uint32_t raw;
};

struct cursor_position_cache_dpp {
	union reg_cur0_control_cfg cur0_ctl;
};

struct cursor_attribute_cache_dpp {
	union reg_cur0_control_cfg cur0_ctl;
	union reg_cur0_fp_scale_bias {
		struct {
			uint32_t  fp_bias: 16;
			uint32_t fp_scale: 16;
		} bits;
		uint32_t raw;
	} fp_scale_bias;
	union reg_cur0_fp_scale_bias_g_y {
		struct {
			uint32_t  fp_bias_g_y: 16;
			uint32_t fp_scale_g_y: 16;
		} bits;
		uint32_t raw;
	} fp_scale_bias_g_y;
	union reg_cur0_fp_scale_bias_rb_crcb {
		struct {
			uint32_t  fp_bias_rb_crcb: 16;
			uint32_t fp_scale_rb_crcb: 16;
		} bits;

Annotation

Implementation Notes