drivers/gpu/drm/i915/display/intel_parent.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/i915/display/intel_parent.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/i915/display/intel_parent.h
Extension
.h
Size
7565 bytes
Lines
160
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.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __INTEL_PARENT_H__
#define __INTEL_PARENT_H__

#include <linux/types.h>

enum vlv_iosf_sb_unit;
struct dma_fence;
struct drm_file;
struct drm_gem_object;
struct drm_scanout_buffer;
struct i915_gtt_view;
struct i915_vma;
struct intel_display;
struct intel_dpt;
struct intel_fb_pin_params;
struct intel_frontbuffer;
struct intel_hdcp_gsc_context;
struct intel_panic;
struct intel_stolen_node;
struct iosys_map;

/* dpt */
struct intel_dpt *intel_parent_dpt_create(struct intel_display *display,
					  struct drm_gem_object *obj, size_t size);
void intel_parent_dpt_destroy(struct intel_display *display, struct intel_dpt *dpt);
void intel_parent_dpt_suspend(struct intel_display *display, struct intel_dpt *dpt);
void intel_parent_dpt_resume(struct intel_display *display, struct intel_dpt *dpt);

/* fb_pin */
int intel_parent_fb_pin_ggtt_pin(struct intel_display *display,
				 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 intel_parent_fb_pin_ggtt_unpin(struct intel_display *display,
				    struct i915_vma *ggtt_vma,
				    int fence_id);
int intel_parent_fb_pin_dpt_pin(struct intel_display *display,
				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 intel_parent_fb_pin_dpt_unpin(struct intel_display *display,
				   struct intel_dpt *dpt,
				   struct i915_vma *dpt_vma,
				   struct i915_vma *ggtt_vma);
struct i915_vma *intel_parent_fb_pin_reuse_vma(struct intel_display *display,
					       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 intel_parent_fb_pin_get_map(struct intel_display *display,
				 struct i915_vma *vma, struct iosys_map *map);

/* frontbuffer */
struct intel_frontbuffer *intel_parent_frontbuffer_get(struct intel_display *display, struct drm_gem_object *obj);
void intel_parent_frontbuffer_ref(struct intel_display *display, struct intel_frontbuffer *front);
void intel_parent_frontbuffer_put(struct intel_display *display, struct intel_frontbuffer *front);
void intel_parent_frontbuffer_flush_for_display(struct intel_display *display, struct intel_frontbuffer *front);

/* hdcp */
ssize_t intel_parent_hdcp_gsc_msg_send(struct intel_display *display,
				       struct intel_hdcp_gsc_context *gsc_context,
				       void *msg_in, size_t msg_in_len,
				       void *msg_out, size_t msg_out_len);
bool intel_parent_hdcp_gsc_check_status(struct intel_display *display);
struct intel_hdcp_gsc_context *intel_parent_hdcp_gsc_context_alloc(struct intel_display *display);
void intel_parent_hdcp_gsc_context_free(struct intel_display *display,
					struct intel_hdcp_gsc_context *gsc_context);

/* irq */
bool intel_parent_irq_enabled(struct intel_display *display);
void intel_parent_irq_synchronize(struct intel_display *display);

/* overlay */
bool intel_parent_overlay_is_active(struct intel_display *display);
int intel_parent_overlay_on(struct intel_display *display,
			    u32 frontbuffer_bits);
int intel_parent_overlay_continue(struct intel_display *display,
				  struct i915_vma *vma,
				  bool load_polyphase_filter);
int intel_parent_overlay_off(struct intel_display *display);
int intel_parent_overlay_recover_from_interrupt(struct intel_display *display);
int intel_parent_overlay_release_old_vid(struct intel_display *display);
void intel_parent_overlay_reset(struct intel_display *display);

Annotation

Implementation Notes