]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/frontbuffer: Turn intel_bo_flush_if_display() into a frontbuffer operation
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 16 Oct 2025 18:54:02 +0000 (21:54 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 7 Nov 2025 15:37:21 +0000 (17:37 +0200)
Convert intel_bo_flush_if_display() to be an operation on the
frontbuffer object rather than the underlying gem bo. This
will help with cleaning up the frontbuffer xe/i915 vs. display
split.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/20251016185408.22735-5-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_bo.c
drivers/gpu/drm/i915/display/intel_bo.h
drivers/gpu/drm/i915/display/intel_fb.c
drivers/gpu/drm/i915/display/intel_frontbuffer.c
drivers/gpu/drm/xe/display/intel_bo.c

index 6ae1374d5c2b4d3c4a3b52d731e9443ccdc2daac..2792aca7bc22ca1346b73989aaaae1aa8cf98fad 100644 (file)
@@ -29,11 +29,6 @@ bool intel_bo_is_protected(struct drm_gem_object *obj)
        return i915_gem_object_is_protected(to_intel_bo(obj));
 }
 
-void intel_bo_flush_if_display(struct drm_gem_object *obj)
-{
-       i915_gem_object_flush_if_display(to_intel_bo(obj));
-}
-
 int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
 {
        return i915_gem_fb_mmap(to_intel_bo(obj), vma);
@@ -55,6 +50,11 @@ struct intel_frontbuffer *intel_bo_set_frontbuffer(struct drm_gem_object *obj,
        return i915_gem_object_set_frontbuffer(to_intel_bo(obj), front);
 }
 
+void intel_bo_frontbuffer_flush_for_display(struct intel_frontbuffer *front)
+{
+       i915_gem_object_flush_if_display(to_intel_bo(front->obj));
+}
+
 void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj)
 {
        i915_debugfs_describe_obj(m, to_intel_bo(obj));
index 48d87019e48a135f5259008542144ba7d8130ab4..08247bf36d40457e64f36853ecc1cc6d88833488 100644 (file)
@@ -16,13 +16,13 @@ bool intel_bo_is_tiled(struct drm_gem_object *obj);
 bool intel_bo_is_userptr(struct drm_gem_object *obj);
 bool intel_bo_is_shmem(struct drm_gem_object *obj);
 bool intel_bo_is_protected(struct drm_gem_object *obj);
-void intel_bo_flush_if_display(struct drm_gem_object *obj);
 int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
 int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size);
 
 struct intel_frontbuffer *intel_bo_get_frontbuffer(struct drm_gem_object *obj);
 struct intel_frontbuffer *intel_bo_set_frontbuffer(struct drm_gem_object *obj,
                                                   struct intel_frontbuffer *front);
+void intel_bo_frontbuffer_flush_for_display(struct intel_frontbuffer *front);
 
 void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj);
 
index 705fcd42d3587f421f4195d2161a8d78abb6c1c2..3f185709cd3727446233a89a5fa9b1ad8e0abe41 100644 (file)
@@ -2193,7 +2193,7 @@ static int intel_user_framebuffer_dirty(struct drm_framebuffer *fb,
        return ret;
 
 flush:
-       intel_bo_flush_if_display(obj);
+       intel_bo_frontbuffer_flush_for_display(front);
        intel_frontbuffer_flush(front, ORIGIN_DIRTYFB);
        return ret;
 }
index 53e93985c7d4c1c43332e02a7376cee3ddee729e..5562801d2ea381f70b6f8f44c4c3ef60281f82ac 100644 (file)
@@ -167,7 +167,7 @@ static void intel_frontbuffer_flush_work(struct work_struct *work)
        struct intel_frontbuffer *front =
                container_of(work, struct intel_frontbuffer, flush_work);
 
-       intel_bo_flush_if_display(front->obj);
+       intel_bo_frontbuffer_flush_for_display(front);
        intel_frontbuffer_flush(front, ORIGIN_DIRTYFB);
        intel_frontbuffer_put(front);
 }
index 27437c22bd703a46f86c578e846b7cdcda7b32a5..2437c00a2d3ea66cd592b76e7299c2d33eb45604 100644 (file)
@@ -28,10 +28,6 @@ bool intel_bo_is_protected(struct drm_gem_object *obj)
        return xe_bo_is_protected(gem_to_xe_bo(obj));
 }
 
-void intel_bo_flush_if_display(struct drm_gem_object *obj)
-{
-}
-
 int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
 {
        return drm_gem_prime_mmap(obj, vma);
@@ -55,6 +51,10 @@ struct intel_frontbuffer *intel_bo_set_frontbuffer(struct drm_gem_object *obj,
        return front;
 }
 
+void intel_bo_frontbuffer_flush_for_display(struct intel_frontbuffer *front)
+{
+}
+
 void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj)
 {
        /* FIXME */