drivers/gpu/drm/i915/display/intel_dpll_mgr.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/display/intel_dpll_mgr.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/i915/display/intel_dpll_mgr.h- Extension
.h- Size
- 11036 bytes
- Lines
- 459
- 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.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hintel_display_power.h
Detected Declarations
struct drm_printerstruct intel_atomic_statestruct intel_crtcstruct intel_crtc_statestruct intel_dpll_funcsstruct intel_encoderstruct intel_shared_dpllstruct ref_trackerstruct i9xx_dpll_hw_statestruct hsw_dpll_hw_statestruct skl_dpll_hw_statestruct bxt_dpll_hw_statestruct icl_dpll_hw_statestruct intel_mpllb_statestruct intel_c10pll_statestruct intel_c20pll_statestruct intel_c20pll_vdr_statestruct intel_cx0pll_statestruct intel_lt_phy_pll_statestruct intel_dpll_hw_statestruct intel_dpll_statestruct dpll_infostruct intel_dpllenum tc_portenum intel_dpll_idenum icl_port_dpll_id
Annotated Snippet
struct i9xx_dpll_hw_state {
u32 dpll;
u32 dpll_md;
u32 fp0;
u32 fp1;
};
struct hsw_dpll_hw_state {
u32 wrpll;
u32 spll;
};
struct skl_dpll_hw_state {
/*
* DPLL_CTRL1 has 6 bits for each each this DPLL. We store those in
* lower part of ctrl1 and they get shifted into position when writing
* the register. This allows us to easily compare the state to share
* the DPLL.
*/
u32 ctrl1;
/* HDMI only, 0 when used for DP */
u32 cfgcr1, cfgcr2;
};
struct bxt_dpll_hw_state {
u32 ebb0, ebb4, pll0, pll1, pll2, pll3, pll6, pll8, pll9, pll10, pcsdw12;
};
struct icl_dpll_hw_state {
u32 cfgcr0, cfgcr1;
/* tgl */
u32 div0;
u32 mg_refclkin_ctl;
u32 mg_clktop2_coreclkctl1;
u32 mg_clktop2_hsclkctl;
u32 mg_pll_div0;
u32 mg_pll_div1;
u32 mg_pll_lf;
u32 mg_pll_frac_lock;
u32 mg_pll_ssc;
u32 mg_pll_bias;
u32 mg_pll_tdc_coldst_bias;
u32 mg_pll_bias_mask;
u32 mg_pll_tdc_coldst_bias_mask;
};
struct intel_mpllb_state {
u32 clock; /* in KHz */
u32 ref_control;
u32 mpllb_cp;
u32 mpllb_div;
u32 mpllb_div2;
u32 mpllb_fracn1;
u32 mpllb_fracn2;
u32 mpllb_sscen;
u32 mpllb_sscstep;
};
struct intel_c10pll_state {
u8 tx;
u8 cmn;
u8 pll[20];
};
struct intel_c20pll_state {
u16 tx[3];
u16 cmn[4];
union {
u16 mplla[10];
u16 mpllb[11];
};
struct intel_c20pll_vdr_state {
u8 custom_width;
u8 serdes_rate;
u8 hdmi_rate;
} vdr;
};
struct intel_cx0pll_state {
union {
struct intel_c10pll_state c10;
struct intel_c20pll_state c20;
};
int lane_count;
bool ssc_enabled;
bool use_c10;
bool tbt_mode;
};
Annotation
- Immediate include surface: `linux/types.h`, `intel_display_power.h`.
- Detected declarations: `struct drm_printer`, `struct intel_atomic_state`, `struct intel_crtc`, `struct intel_crtc_state`, `struct intel_dpll_funcs`, `struct intel_encoder`, `struct intel_shared_dpll`, `struct ref_tracker`, `struct i9xx_dpll_hw_state`, `struct hsw_dpll_hw_state`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.