include/drm/intel/display_parent_interface.h
Source file repositories/reference/linux-study-clean/include/drm/intel/display_parent_interface.h
File Facts
- System
- Linux kernel
- Corpus path
include/drm/intel/display_parent_interface.h- Extension
.h- Size
- 11243 bytes
- Lines
- 309
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.h
Detected Declarations
struct dma_fencestruct drm_devicestruct drm_filestruct drm_framebufferstruct drm_gem_objectstruct drm_mode_fb_cmd2struct drm_plane_statestruct drm_scanout_bufferstruct fb_infostruct i915_gtt_viewstruct i915_vmastruct intel_dptstruct intel_dsb_bufferstruct intel_frontbufferstruct intel_hdcp_gsc_contextstruct intel_initial_plane_configstruct intel_panicstruct intel_stolen_nodestruct iosys_mapstruct ref_trackerstruct seq_filestruct vm_area_structstruct intel_fb_pin_paramsstruct intel_display_bo_interfacestruct intel_display_dpt_interfacestruct intel_display_dsb_interfacestruct intel_display_fb_pin_interfacestruct intel_display_frontbuffer_interfacestruct intel_display_hdcp_interfacestruct intel_display_initial_plane_interfacestruct intel_display_irq_interfacestruct intel_display_overlay_interfacestruct intel_display_panic_interfacestruct intel_display_pc8_interfacestruct intel_display_pcode_interfacestruct intel_display_rpm_interfacestruct intel_display_rps_interfacestruct intel_display_stolen_interfacestruct intel_display_vlv_iosf_interfacestruct intel_display_parent_interfaceenum vlv_iosf_sb_unit
Annotated Snippet
struct intel_fb_pin_params {
const struct i915_gtt_view *view;
unsigned int alignment;
unsigned int phys_alignment;
unsigned int vtd_guard;
bool needs_cpu_lmem_access;
bool needs_low_address;
bool needs_physical;
bool needs_fence;
};
/* Keep struct definitions sorted */
struct intel_display_bo_interface {
bool (*is_tiled)(struct drm_gem_object *obj); /* Optional */
bool (*is_userptr)(struct drm_gem_object *obj); /* Optional */
bool (*is_shmem)(struct drm_gem_object *obj); /* Optional */
bool (*is_protected)(struct drm_gem_object *obj);
int (*key_check)(struct drm_gem_object *obj);
int (*fb_mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma);
int (*read_from_page)(struct drm_gem_object *obj, u64 offset, void *dst, int size);
void (*describe)(struct seq_file *m, struct drm_gem_object *obj); /* Optional */
int (*framebuffer_init)(struct drm_gem_object *obj, struct drm_mode_fb_cmd2 *mode_cmd);
void (*framebuffer_fini)(struct drm_gem_object *obj);
struct drm_gem_object *(*framebuffer_lookup)(struct drm_device *drm,
struct drm_file *filp,
const struct drm_mode_fb_cmd2 *user_mode_cmd);
#if IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION)
struct drm_gem_object *(*fbdev_create)(struct drm_device *drm, int size);
void (*fbdev_destroy)(struct drm_gem_object *obj);
int (*fbdev_fill_info)(struct drm_gem_object *obj, struct fb_info *info, struct i915_vma *vma);
u32 (*fbdev_pitch_align)(u32 stride);
#endif
};
struct intel_display_dpt_interface {
struct intel_dpt *(*create)(struct drm_gem_object *obj, size_t size);
void (*destroy)(struct intel_dpt *dpt);
void (*suspend)(struct intel_dpt *dpt);
void (*resume)(struct intel_dpt *dpt);
};
struct intel_display_dsb_interface {
u32 (*ggtt_offset)(struct intel_dsb_buffer *dsb_buf);
void (*write)(struct intel_dsb_buffer *dsb_buf, u32 idx, u32 val);
u32 (*read)(struct intel_dsb_buffer *dsb_buf, u32 idx);
void (*fill)(struct intel_dsb_buffer *dsb_buf, u32 idx, u32 val, size_t size);
struct intel_dsb_buffer *(*create)(struct drm_device *drm, size_t size);
void (*cleanup)(struct intel_dsb_buffer *dsb_buf);
void (*flush_map)(struct intel_dsb_buffer *dsb_buf);
};
struct intel_display_fb_pin_interface {
int (*ggtt_pin)(struct drm_gem_object *obj,
const struct intel_fb_pin_params *pin_params,
struct i915_vma **out_ggtt_vma,
u32 *out_offset,
int *out_fence_id);
void (*ggtt_unpin)(struct i915_vma *ggtt_vma,
int fence_id);
int (*dpt_pin)(struct drm_gem_object *obj,
struct intel_dpt *dpt,
const struct intel_fb_pin_params *pin_params,
struct i915_vma **out_dpt_vma,
struct i915_vma **out_ggtt_vma,
u32 *out_offset);
void (*dpt_unpin)(struct intel_dpt *dpt,
struct i915_vma *dpt_vma,
struct i915_vma *ggtt_vma);
struct i915_vma *(*reuse_vma)(struct i915_vma *old_ggtt_vma,
struct drm_gem_object *old_obj,
const struct i915_gtt_view *old_view,
struct drm_gem_object *new_obj,
const struct i915_gtt_view *new_view,
u32 *out_offset);
void (*get_map)(struct i915_vma *vma, struct iosys_map *map);
};
struct intel_display_frontbuffer_interface {
struct intel_frontbuffer *(*get)(struct drm_gem_object *obj);
void (*ref)(struct intel_frontbuffer *front);
void (*put)(struct intel_frontbuffer *front);
void (*flush_for_display)(struct intel_frontbuffer *front);
};
struct intel_display_hdcp_interface {
ssize_t (*gsc_msg_send)(struct intel_hdcp_gsc_context *gsc_context,
void *msg_in, size_t msg_in_len,
void *msg_out, size_t msg_out_len);
bool (*gsc_check_status)(struct drm_device *drm);
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct dma_fence`, `struct drm_device`, `struct drm_file`, `struct drm_framebuffer`, `struct drm_gem_object`, `struct drm_mode_fb_cmd2`, `struct drm_plane_state`, `struct drm_scanout_buffer`, `struct fb_info`, `struct i915_gtt_view`.
- Atlas domain: Repository Root And Misc / include.
- 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.