drivers/gpu/drm/amd/display/dc/dio/dcn20/dcn20_link_encoder.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/dio/dcn20/dcn20_link_encoder.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/dc/dio/dcn20/dcn20_link_encoder.h- Extension
.h- Size
- 17475 bytes
- Lines
- 368
- 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
dcn10/dcn10_link_encoder.h
Detected Declarations
struct mpll_cfgstruct dpcssys_phy_seq_cfgstruct dcn20_link_encoder
Annotated Snippet
struct mpll_cfg {
uint32_t mpllb_ana_v2i;
uint32_t mpllb_ana_freq_vco;
uint32_t mpllb_ana_cp_int;
uint32_t mpllb_ana_cp_prop;
uint32_t mpllb_multiplier;
uint32_t ref_clk_mpllb_div;
bool mpllb_word_div2_en;
bool mpllb_ssc_en;
bool mpllb_div5_clk_en;
bool mpllb_div_clk_en;
bool mpllb_fracn_en;
bool mpllb_pmix_en;
uint32_t mpllb_div_multiplier;
uint32_t mpllb_tx_clk_div;
uint32_t mpllb_fracn_quot;
uint32_t mpllb_fracn_den;
uint32_t mpllb_ssc_peak;
uint32_t mpllb_ssc_stepsize;
uint32_t mpllb_ssc_up_spread;
uint32_t mpllb_fracn_rem;
uint32_t mpllb_hdmi_div;
// TODO: May not mpll params, need to figure out.
uint32_t tx_vboost_lvl;
uint32_t hdmi_pixel_clk_div;
uint32_t ref_range;
uint32_t ref_clk;
bool hdmimode_enable;
bool sup_pre_hp;
bool dp_tx0_vergdrv_byp;
bool dp_tx1_vergdrv_byp;
bool dp_tx2_vergdrv_byp;
bool dp_tx3_vergdrv_byp;
uint32_t tx_peaking_lvl;
uint32_t ctr_reqs_pll;
};
struct dpcssys_phy_seq_cfg {
bool program_fuse;
bool bypass_sram;
bool lane_en[4];
bool use_calibration_setting;
struct mpll_cfg mpll_cfg;
bool load_sram_fw;
bool tx_hdmi_frl_mode;
#if 0
bool hdmimode_enable;
bool silver2;
bool ext_refclk_en;
uint32_t dp_tx0_term_ctrl;
uint32_t dp_tx1_term_ctrl;
uint32_t dp_tx2_term_ctrl;
uint32_t dp_tx3_term_ctrl;
uint32_t fw_data[0x1000];
uint32_t dp_tx0_width;
uint32_t dp_tx1_width;
uint32_t dp_tx2_width;
uint32_t dp_tx3_width;
uint32_t dp_tx0_rate;
uint32_t dp_tx1_rate;
uint32_t dp_tx2_rate;
uint32_t dp_tx3_rate;
uint32_t dp_tx0_eq_main;
uint32_t dp_tx0_eq_pre;
uint32_t dp_tx0_eq_post;
uint32_t dp_tx1_eq_main;
uint32_t dp_tx1_eq_pre;
uint32_t dp_tx1_eq_post;
uint32_t dp_tx2_eq_main;
uint32_t dp_tx2_eq_pre;
uint32_t dp_tx2_eq_post;
uint32_t dp_tx3_eq_main;
uint32_t dp_tx3_eq_pre;
uint32_t dp_tx3_eq_post;
bool data_swap_en;
bool data_order_invert_en;
uint32_t ldpcs_fifo_start_delay;
uint32_t rdpcs_fifo_start_delay;
bool rdpcs_reg_fifo_error_mask;
bool rdpcs_tx_fifo_error_mask;
bool rdpcs_dpalt_disable_mask;
bool rdpcs_dpalt_4lane_mask;
#endif
};
struct dcn20_link_encoder {
struct dcn10_link_encoder enc10;
struct dpcssys_phy_seq_cfg phy_seq_cfg;
Annotation
- Immediate include surface: `dcn10/dcn10_link_encoder.h`.
- Detected declarations: `struct mpll_cfg`, `struct dpcssys_phy_seq_cfg`, `struct dcn20_link_encoder`.
- 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.