drivers/gpu/drm/amd/display/dc/clk_mgr/dcn42b/dcn42b_clk_mgr.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn42b/dcn42b_clk_mgr.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn42b/dcn42b_clk_mgr.h- Extension
.h- Size
- 1655 bytes
- Lines
- 49
- 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
clk_mgr_internal.hdcn42/dcn42_clk_mgr.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
// SPDX-License-Identifier: MIT
//
// Copyright 2026 Advanced Micro Devices, Inc.
#ifndef __DCN42B_CLK_MGR_H__
#define __DCN42B_CLK_MGR_H__
#include "clk_mgr_internal.h"
#include "dcn42/dcn42_clk_mgr.h"
/* DCN42B reuses the following from DCN42:
* - dcn42_update_clocks (dtbclk_en=false so all dtbclk branches are skipped)
* - dcn42_get_dispclk_from_dentist (DENTIST_DISPCLK_CNTL has same DCN offset)
* - dcn42_get_dpm_table_from_smu (identical, only SMU calls)
* - dcn42_are_clock_states_equal
* - dcn42_enable_pme_wa
* - dcn42_update_clocks_update_dpp_dto
* - dcn42_update_clocks_update_dtb_dto
* - dcn42_build_watermark_ranges
* - dcn42_is_spll_ssc_enabled
* - dcn42_has_active_display
* - dcn42_notify_wm_ranges
* - dcn42_set_low_power_state
* - dcn42_exit_low_power_state
* - dcn42_get_max_clock_khz
* - dcn42_is_smu_present
*
* CANNOT reuse from DCN42 (hardware register differences):
* - dcn42_read_ss_info_from_lut (CLK8 vs CLK5 registers)
* - dcn42_dump_clk_registers* (CLK8 vs CLK5 registers)
* - dcn42_get_clock_freq_from_clkip (CLK8 vs CLK5 registers)
* - dcn42_init_clocks (calls CLK8-specific functions, dtbclk logic)
* - init_clk_states (dtbclk_en difference: true for dcn42, false for dcn42b)
*
* See dcn42_clk_mgr.h for declarations
*/
#define NUM_CLOCK_SOURCES 5
void dcn42b_init_clocks(struct clk_mgr *clk_mgr);
void dcn42b_clk_mgr_construct(struct dc_context *ctx,
struct clk_mgr_dcn42 *clk_mgr,
struct pp_smu_funcs *pp_smu,
struct dccg *dccg);
uint32_t dcn42b_get_clock_freq_from_clkip(struct clk_mgr *clk_mgr_base,
enum clock_type clock);
#endif //__DCN42B_CLK_MGR_H__
Annotation
- Immediate include surface: `clk_mgr_internal.h`, `dcn42/dcn42_clk_mgr.h`.
- 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.