drivers/gpu/drm/i915/display/intel_display_core.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/display/intel_display_core.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/i915/display/intel_display_core.h- Extension
.h- Size
- 15241 bytes
- Lines
- 651
- 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/list.hlinux/llist.hlinux/mutex.hlinux/types.hlinux/wait.hlinux/workqueue.hdrm/drm_connector.hdrm/drm_modeset_lock.hintel_cdclk.hintel_display_device.hintel_display_limits.hintel_display_params.hintel_display_power.hintel_dmc_wl.hintel_dpll_mgr.hintel_fbc.hintel_global_state.hintel_gmbus.hintel_opregion.hintel_pch.hintel_wm_types.h
Detected Declarations
struct drm_propertystruct drm_property_blobstruct i915_audio_componentstruct i915_hdcp_arbiterstruct intel_atomic_statestruct intel_audio_funcsstruct intel_cdclk_funcsstruct intel_cdclk_valsstruct intel_color_funcsstruct intel_crtcstruct intel_crtc_statestruct intel_display_parent_interfacestruct intel_dmcstruct intel_dpll_global_funcsstruct intel_dpll_mgrstruct intel_fbdevstruct intel_fdi_funcsstruct intel_hotplug_irq_funcsstruct intel_initial_plane_configstruct intel_opregionstruct intel_overlaystruct task_structstruct intel_modeset_funcsstruct intel_wm_funcsstruct intel_audio_statestruct intel_audiostruct intel_dpll_globalstruct intel_frontbuffer_trackingstruct intel_hotplugstruct intel_vbt_datastruct sdvo_device_mappingstruct intel_wmstruct intel_displaystruct intel_bw_infostruct sys_cache_cfg
Annotated Snippet
struct intel_modeset_funcs {
/*
* Returns the active state of the crtc, and if the crtc is active,
* fills out the pipe-config with the hw state.
*/
bool (*get_pipe_config)(struct intel_crtc *,
struct intel_crtc_state *);
void (*get_initial_plane_config)(struct intel_crtc *,
struct intel_initial_plane_config *);
bool (*fixup_initial_plane_config)(struct intel_crtc *crtc,
const struct intel_initial_plane_config *plane_config);
void (*crtc_enable)(struct intel_atomic_state *state,
struct intel_crtc *crtc);
void (*crtc_disable)(struct intel_atomic_state *state,
struct intel_crtc *crtc);
void (*commit_modeset_enables)(struct intel_atomic_state *state);
};
/* functions used for watermark calcs for display. */
struct intel_wm_funcs {
/* update_wm is for legacy wm management */
void (*update_wm)(struct intel_display *display);
int (*compute_watermarks)(struct intel_atomic_state *state,
struct intel_crtc *crtc);
void (*initial_watermarks)(struct intel_atomic_state *state,
struct intel_crtc *crtc);
void (*atomic_update_watermarks)(struct intel_atomic_state *state,
struct intel_crtc *crtc);
void (*optimize_watermarks)(struct intel_atomic_state *state,
struct intel_crtc *crtc);
int (*compute_global_watermarks)(struct intel_atomic_state *state);
void (*get_hw_state)(struct intel_display *display);
void (*sanitize)(struct intel_display *display);
};
struct intel_audio_state {
struct intel_encoder *encoder;
u8 eld[MAX_ELD_BYTES];
};
struct intel_audio {
/* internal display audio functions */
const struct intel_audio_funcs *funcs;
/* hda/i915 audio component */
struct i915_audio_component *component;
bool component_registered;
/* mutex for audio/video sync */
struct mutex mutex;
int power_refcount;
u32 freq_cntrl;
/* current audio state for the audio component hooks */
struct intel_audio_state state[I915_MAX_TRANSCODERS];
/* necessary resource sharing with HDMI LPE audio driver. */
struct {
struct platform_device *platdev;
int irq;
} lpe;
};
/*
* dpll and cdclk state is protected by connection_mutex dpll.lock serializes
* intel_{prepare,enable,disable}_shared_dpll. Must be global rather than per
* dpll, because on some platforms plls share registers.
*/
struct intel_dpll_global {
/* internal dpll functions */
const struct intel_dpll_global_funcs *funcs;
struct mutex lock;
int num_dpll;
struct intel_dpll dplls[I915_NUM_PLLS];
const struct intel_dpll_mgr *mgr;
struct {
int nssc;
int ssc;
} ref_clks;
/*
* Bitmask of PLLs using the PCH SSC, indexed using enum intel_dpll_id.
*/
u8 pch_ssc_use;
};
struct intel_frontbuffer_tracking {
/* protects busy_bits */
Annotation
- Immediate include surface: `linux/list.h`, `linux/llist.h`, `linux/mutex.h`, `linux/types.h`, `linux/wait.h`, `linux/workqueue.h`, `drm/drm_connector.h`, `drm/drm_modeset_lock.h`.
- Detected declarations: `struct drm_property`, `struct drm_property_blob`, `struct i915_audio_component`, `struct i915_hdcp_arbiter`, `struct intel_atomic_state`, `struct intel_audio_funcs`, `struct intel_cdclk_funcs`, `struct intel_cdclk_vals`, `struct intel_color_funcs`, `struct intel_crtc`.
- 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.