From: Jani Nikula Date: Mon, 2 Mar 2026 18:17:35 +0000 (+0200) Subject: drm/i915/overlay: convert from struct intel_frontbuffer to i915_frontbuffer X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=df88ba8904ce23483889e3397814e91366e729b0;p=thirdparty%2Flinux.git drm/i915/overlay: convert from struct intel_frontbuffer to i915_frontbuffer The intel_frontbuffer_get() and intel_frontbuffer_put() calls are routed through intel_frontbuffer.c to i915_gem_object_frontbuffer.c. We might as well call the functions directly, instead of going through display code. This would only get worse with get/put being moved to the parent interface. To make this easier, convert overlay code from struct intel_frontbuffer to struct i915_frontbuffer, and add a i915_gem_object_frontbuffer_track() wrapper for clarity. Reviewed-by: Jouni Högander Link: https://patch.msgid.link/829b304a6451e80fbce554bdc7788077245e803a.1772475391.git.jani.nikula@intel.com Signed-off-by: Jani Nikula --- diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.h b/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.h index 1c250ce4ca66c..46124048a59fb 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.h @@ -45,6 +45,16 @@ struct i915_frontbuffer *i915_gem_object_frontbuffer_get(struct drm_i915_gem_obj void i915_gem_object_frontbuffer_ref(struct i915_frontbuffer *front); void i915_gem_object_frontbuffer_put(struct i915_frontbuffer *front); +static inline void i915_gem_object_frontbuffer_track(struct i915_frontbuffer *_old, + struct i915_frontbuffer *_new, + unsigned int frontbuffer_bits) +{ + struct intel_frontbuffer *old = _old ? &_old->base : NULL; + struct intel_frontbuffer *new = _new ? &_new->base : NULL; + + intel_frontbuffer_track(old, new, frontbuffer_bits); +} + /** * i915_gem_object_frontbuffer_lookup - Look up the object's frontbuffer * @obj: The object whose frontbuffer to look up. diff --git a/drivers/gpu/drm/i915/i915_overlay.c b/drivers/gpu/drm/i915/i915_overlay.c index 04d5ad6aba5ab..c2d712bd2b0da 100644 --- a/drivers/gpu/drm/i915/i915_overlay.c +++ b/drivers/gpu/drm/i915/i915_overlay.c @@ -30,7 +30,7 @@ struct i915_overlay { struct intel_context *context; struct i915_vma *vma; struct i915_vma *old_vma; - struct intel_frontbuffer *frontbuffer; + struct i915_frontbuffer *frontbuffer; /* register access */ struct drm_i915_gem_object *reg_bo; void __iomem *regs; @@ -138,18 +138,18 @@ static void i915_overlay_flip_prepare(struct i915_overlay *overlay, struct i915_vma *vma) { struct drm_i915_private *i915 = overlay->i915; - struct intel_frontbuffer *frontbuffer = NULL; + struct i915_frontbuffer *frontbuffer = NULL; drm_WARN_ON(&i915->drm, overlay->old_vma); if (vma) - frontbuffer = intel_frontbuffer_get(intel_bo_to_drm_bo(vma->obj)); + frontbuffer = i915_gem_object_frontbuffer_get(vma->obj); - intel_frontbuffer_track(overlay->frontbuffer, frontbuffer, - overlay->frontbuffer_bits); + i915_gem_object_frontbuffer_track(overlay->frontbuffer, frontbuffer, + overlay->frontbuffer_bits); if (overlay->frontbuffer) - intel_frontbuffer_put(overlay->frontbuffer); + i915_gem_object_frontbuffer_put(overlay->frontbuffer); overlay->frontbuffer = frontbuffer; overlay->old_vma = overlay->vma;