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

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

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
Extension
.h
Size
9671 bytes
Lines
305
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 dcn_hubbub_wm_set {
	uint32_t wm_set;
	uint32_t data_urgent;
	uint32_t pte_meta_urgent;
	uint32_t sr_enter;
	uint32_t sr_exit;
	uint32_t dram_clk_change;
	uint32_t usr_retrain;
	uint32_t fclk_pstate_change;
	uint32_t sr_enter_exit_Z8;
	uint32_t sr_enter_Z8;
};

struct dcn_hubbub_wm {
	struct dcn_hubbub_wm_set sets[4];
};

enum dcn_hubbub_page_table_depth {
	DCN_PAGE_TABLE_DEPTH_1_LEVEL,
	DCN_PAGE_TABLE_DEPTH_2_LEVEL,
	DCN_PAGE_TABLE_DEPTH_3_LEVEL,
	DCN_PAGE_TABLE_DEPTH_4_LEVEL
};

enum dcn_hubbub_page_table_block_size {
	DCN_PAGE_TABLE_BLOCK_SIZE_4KB = 0,
	DCN_PAGE_TABLE_BLOCK_SIZE_8KB = 1,
	DCN_PAGE_TABLE_BLOCK_SIZE_16KB = 2,
	DCN_PAGE_TABLE_BLOCK_SIZE_32KB = 3,
	DCN_PAGE_TABLE_BLOCK_SIZE_64KB = 4,
	DCN_PAGE_TABLE_BLOCK_SIZE_128KB = 5,
	DCN_PAGE_TABLE_BLOCK_SIZE_256KB = 6,
	DCN_PAGE_TABLE_BLOCK_SIZE_512KB = 7,
	DCN_PAGE_TABLE_BLOCK_SIZE_1024KB = 8,
	DCN_PAGE_TABLE_BLOCK_SIZE_2048KB = 9
};

struct dcn_hubbub_phys_addr_config {
	struct {
		uint64_t fb_top;
		uint64_t fb_offset;
		uint64_t fb_base;
		uint64_t agp_top;
		uint64_t agp_bot;
		uint64_t agp_base;
	} system_aperture;

	struct {
		uint64_t page_table_start_addr;
		uint64_t page_table_end_addr;
		uint64_t page_table_base_addr;
	} gart_config;

	uint64_t page_table_default_page_addr;
};

struct dcn_hubbub_virt_addr_config {
	uint64_t				page_table_start_addr;
	uint64_t				page_table_end_addr;
	enum dcn_hubbub_page_table_block_size	page_table_block_size;
	enum dcn_hubbub_page_table_depth	page_table_depth;
	uint64_t				page_table_base_addr;
};

struct hubbub_addr_config {
	struct dcn_hubbub_phys_addr_config pa_config;
	struct dcn_hubbub_virt_addr_config va_config;
	struct {
		uint64_t aperture_check_fault;
		uint64_t generic_fault;
	} default_addrs;
};

struct dcn_hubbub_state {
	uint32_t vm_fault_addr_msb;
	uint32_t vm_fault_addr_lsb;
	uint32_t vm_error_status;
	uint32_t vm_error_vmid;
	uint32_t vm_error_pipe;
	uint32_t vm_error_mode;
	uint32_t test_debug_data;
	uint32_t watermark_change_cntl;
	uint32_t dram_state_cntl;
};

struct dcn_hubbub_reg_state {
	uint32_t det0_ctrl;
	uint32_t det1_ctrl;
	uint32_t det2_ctrl;
	uint32_t det3_ctrl;

Annotation

Implementation Notes