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.
- 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
dc/dc_hw_types.h
Detected Declarations
struct dcn_hubbub_wm_setstruct dcn_hubbub_wmstruct dcn_hubbub_phys_addr_configstruct dcn_hubbub_virt_addr_configstruct hubbub_addr_configstruct dcn_hubbub_statestruct dcn_hubbub_reg_statestruct hubbub_system_latenciesstruct hubbub_urgent_latency_paramsstruct hubbub_funcsstruct hubbub_perfmon_funcsstruct hubbub_qos_funcsstruct hubbubenum dcc_controlenum segment_orderenum dcn_hubbub_page_table_depthenum dcn_hubbub_page_table_block_size
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
- Immediate include surface: `dc/dc_hw_types.h`.
- Detected declarations: `struct dcn_hubbub_wm_set`, `struct dcn_hubbub_wm`, `struct dcn_hubbub_phys_addr_config`, `struct dcn_hubbub_virt_addr_config`, `struct hubbub_addr_config`, `struct dcn_hubbub_state`, `struct dcn_hubbub_reg_state`, `struct hubbub_system_latencies`, `struct hubbub_urgent_latency_params`, `struct hubbub_funcs`.
- 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.