[Intel-xe] [PATCH v9 6/6] FIXME: drm/i915: xe intel_fb.c framebuffer init and destroy xe changes
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Mon Nov 13 19:56:33 UTC 2023
intel_framebuffer_init and intel_user_framebuffer_destroy_vm
xe changes.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
---
drivers/gpu/drm/i915/display/intel_fb.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index f7675284907f..16c37a508552 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -1891,6 +1891,17 @@ static void intel_user_framebuffer_destroy_vm(struct drm_framebuffer *fb)
if (intel_fb_uses_dpt(fb))
intel_dpt_destroy(intel_fb->dpt_vm);
+#ifndef I915
+ if (intel_fb_obj(fb)->flags & XE_BO_CREATE_PINNED_BIT) {
+ struct xe_bo *bo = intel_fb_obj(fb);
+
+ /* Unpin our kernel fb first */
+ xe_bo_lock(bo, false);
+ xe_bo_unpin(bo);
+ xe_bo_unlock(bo);
+ }
+ xe_bo_put(intel_fb_obj(fb));
+#endif
}
static void intel_user_framebuffer_destroy(struct drm_framebuffer *fb)
@@ -2163,6 +2174,10 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
intel_fb->dpt_vm = vm;
}
+#ifndef I915
+ /* Hold a reference to object while fb is alive */
+ xe_bo_get(obj);
+#endif
ret = drm_framebuffer_init(&dev_priv->drm, fb, &intel_fb_funcs);
if (ret) {
--
2.25.1
More information about the Intel-xe
mailing list