drivers/gpu/drm/i915/display/intel_display_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/display/intel_display_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/i915/display/intel_display_types.h- Extension
.h- Size
- 62133 bytes
- Lines
- 2316
- 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/pm_qos.hlinux/pwm.hdrm/display/drm_dp_dual_mode_helper.hdrm/display/drm_dp_mst_helper.hdrm/display/drm_dp_tunnel.hdrm/display/drm_dsc.hdrm/drm_atomic.hdrm/drm_colorop.hdrm/drm_crtc.hdrm/drm_encoder.hdrm/drm_framebuffer.hdrm/drm_panel.hdrm/drm_rect.hdrm/drm_vblank_work.hdrm/intel/i915_hdcp_interface.huapi/drm/i915_drm.hi915_gtt_view_types.hintel_bios.hintel_display.hintel_display_conversion.hintel_display_limits.hintel_display_power.hintel_dpll_mgr.hintel_dsi_vbt_defs.hintel_wm_types.h
Detected Declarations
struct cec_notifierstruct drm_printerstruct intel_connectorstruct intel_ddi_buf_transstruct intel_fbcstruct intel_global_objs_statestruct intel_hdcp_shimstruct intel_panicstruct intel_tc_portstruct intel_fb_viewstruct i915_color_plane_viewstruct intel_framebufferstruct intel_encoderstruct intel_panel_bl_funcsstruct intel_pps_delaysstruct intel_vbt_panel_datastruct intel_panelstruct intel_digital_portstruct intel_hdcpstruct intel_connectorstruct intel_digital_connector_statestruct dpllstruct intel_atomic_statestruct intel_plane_statestruct intel_initial_plane_configstruct intel_scalerstruct intel_crtc_scaler_statestruct intel_wm_levelstruct intel_pipe_wmstruct skl_wm_levelstruct skl_plane_wmstruct skl_pipe_wmstruct vlv_wm_statestruct vlv_fifo_statestruct g4x_wm_statestruct intel_crtc_wm_statestruct intel_link_m_nstruct intel_csc_matrixstruct scaler_filter_coeffstruct intel_casfstruct intel_crtc_statestruct icl_port_dpllstruct intel_dsc_slice_configstruct intel_pipe_crcstruct intel_flipqstruct intel_crtcstruct intel_plane_errorstruct intel_plane
Annotated Snippet
struct intel_fb_view {
/*
* The remap information used in the remapped and rotated views to
* create the DMA scatter-gather list for each FB color plane. This sg
* list is created along with the view type (gtt.type) specific
* i915_vma object and contains the list of FB object pages (reordered
* in the rotated view) that are visible in the view.
* In the normal view the FB object's backing store sg list is used
* directly and hence the remap information here is not used.
*/
struct i915_gtt_view gtt;
/*
* The GTT view (gtt.type) specific information for each FB color
* plane. In the normal GTT view all formats (up to 4 color planes),
* in the rotated and remapped GTT view all no-CCS formats (up to 2
* color planes) are supported.
*
* The view information shared by all FB color planes in the FB,
* like dst x/y and src/dst width, is stored separately in
* intel_plane_state.
*/
struct i915_color_plane_view {
u32 offset;
unsigned int x, y;
/*
* Plane stride in:
* bytes for 0/180 degree rotation
* pixels for 90/270 degree rotation
*/
unsigned int mapping_stride;
unsigned int scanout_stride;
} color_plane[4];
};
struct intel_framebuffer {
struct drm_framebuffer base;
struct intel_frontbuffer *frontbuffer;
/* Params to remap the FB pages and program the plane registers in each view. */
struct intel_fb_view normal_view;
union {
struct intel_fb_view rotated_view;
struct intel_fb_view remapped_view;
};
struct intel_dpt *dpt;
unsigned int min_alignment;
unsigned int vtd_guard;
unsigned int (*panic_tiling)(unsigned int x, unsigned int y, unsigned int width);
struct intel_panic *panic;
};
enum intel_hotplug_state {
INTEL_HOTPLUG_UNCHANGED,
INTEL_HOTPLUG_CHANGED,
INTEL_HOTPLUG_RETRY,
};
struct intel_encoder {
struct drm_encoder base;
enum intel_output_type type;
enum port port;
u16 cloneable;
u8 pipe_mask;
/* Check and recover a bad link state. */
struct delayed_work link_check_work;
void (*link_check)(struct intel_encoder *encoder);
enum intel_hotplug_state (*hotplug)(struct intel_encoder *encoder,
struct intel_connector *connector);
enum intel_output_type (*compute_output_type)(struct intel_encoder *,
struct intel_crtc_state *,
struct drm_connector_state *);
int (*compute_config)(struct intel_encoder *,
struct intel_crtc_state *,
struct drm_connector_state *);
int (*compute_config_late)(struct intel_encoder *,
struct intel_crtc_state *,
struct drm_connector_state *);
void (*pre_pll_enable)(struct intel_atomic_state *,
struct intel_encoder *,
const struct intel_crtc_state *,
const struct drm_connector_state *);
void (*pre_enable)(struct intel_atomic_state *,
struct intel_encoder *,
Annotation
- Immediate include surface: `linux/pm_qos.h`, `linux/pwm.h`, `drm/display/drm_dp_dual_mode_helper.h`, `drm/display/drm_dp_mst_helper.h`, `drm/display/drm_dp_tunnel.h`, `drm/display/drm_dsc.h`, `drm/drm_atomic.h`, `drm/drm_colorop.h`.
- Detected declarations: `struct cec_notifier`, `struct drm_printer`, `struct intel_connector`, `struct intel_ddi_buf_trans`, `struct intel_fbc`, `struct intel_global_objs_state`, `struct intel_hdcp_shim`, `struct intel_panic`, `struct intel_tc_port`, `struct intel_fb_view`.
- 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.