summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2026-03-02 20:17:35 +0200
committerJani Nikula <jani.nikula@intel.com>2026-03-11 11:32:10 +0200
commitdf88ba8904ce23483889e3397814e91366e729b0 (patch)
tree46661775bddf19f78dd0af7d24e9f2384fe4dd6e
parente18eec6c299a194f3efaedc61f05d881697f07a8 (diff)
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 <jouni.hogander@intel.com> Link: https://patch.msgid.link/829b304a6451e80fbce554bdc7788077245e803a.1772475391.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r--drivers/gpu/drm/i915/gem/i915_gem_object_frontbuffer.h10
-rw-r--r--drivers/gpu/drm/i915/i915_overlay.c12
2 files changed, 16 insertions, 6 deletions
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 1c250ce4ca66..46124048a59f 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 04d5ad6aba5a..c2d712bd2b0d 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;