]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/display: convert skl_universal_plane.c to struct drm_gem_object
authorJani Nikula <jani.nikula@intel.com>
Tue, 17 Sep 2024 16:13:44 +0000 (19:13 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 19 Sep 2024 13:19:42 +0000 (16:19 +0300)
Prefer the driver agnostic struct drm_gem_object over i915 specific
struct drm_i915_gem_object. Add new intel_bo_* functions as
needed. Convert intel_pxp_key_check() to struct drm_gem_object.

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/0a6d2bec50764efaae4322c9cfa33eefbfe1c054.1726589119.git.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/skl_universal_plane.c
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
drivers/gpu/drm/i915/pxp/intel_pxp.c
drivers/gpu/drm/i915/pxp/intel_pxp.h
drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
drivers/gpu/drm/xe/display/intel_bo.c

index c0d050cec4ad5fa793cb89319ae001125245c9d2..681970cf870132f804245c683f4e68bc9c584b00 100644 (file)
@@ -20,6 +20,11 @@ bool intel_bo_is_shmem(struct drm_gem_object *obj)
        return i915_gem_object_is_shmem(to_intel_bo(obj));
 }
 
+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));
index 410f285d2ea1c4d37a70f31b974eb6ac0ae08d2f..222a12283a5ac2726ee74e21ac0a9dc622c3bbff 100644 (file)
@@ -12,6 +12,7 @@ struct vm_area_struct;
 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);
 
index 17d4c880ecc402a9aca80355c09bc49295c1862a..fdb141cfa4274aa96b28fac1d94371eb89258255 100644 (file)
@@ -11,6 +11,7 @@
 #include "i915_drv.h"
 #include "i915_reg.h"
 #include "intel_atomic_plane.h"
+#include "intel_bo.h"
 #include "intel_de.h"
 #include "intel_display_irq.h"
 #include "intel_display_types.h"
@@ -2084,13 +2085,13 @@ static void check_protection(struct intel_plane_state *plane_state)
        struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
        struct drm_i915_private *i915 = to_i915(plane->base.dev);
        const struct drm_framebuffer *fb = plane_state->hw.fb;
-       struct drm_i915_gem_object *obj = intel_fb_obj(fb);
+       struct drm_gem_object *obj = intel_fb_bo(fb);
 
        if (DISPLAY_VER(i915) < 11)
                return;
 
        plane_state->decrypt = intel_pxp_key_check(i915->pxp, obj, false) == 0;
-       plane_state->force_black = i915_gem_object_is_protected(obj) &&
+       plane_state->force_black = intel_bo_is_protected(obj) &&
                !plane_state->decrypt;
 }
 
index a3b83cfe1726774b849ff93bf5828ad63d7499e5..f151640c1d13ccffa87c5577b8bf6e0f9edba192 100644 (file)
@@ -915,7 +915,7 @@ static struct i915_vma *eb_lookup_vma(struct i915_execbuffer *eb, u32 handle)
                 */
                if (i915_gem_context_uses_protected_content(eb->gem_context) &&
                    i915_gem_object_is_protected(obj)) {
-                       err = intel_pxp_key_check(eb->i915->pxp, obj, true);
+                       err = intel_pxp_key_check(eb->i915->pxp, intel_bo_to_drm_bo(obj), true);
                        if (err) {
                                i915_gem_object_put(obj);
                                return ERR_PTR(err);
index 75278e78ca90e68d6cbb7b4b72e2ab927529a029..3a40e4ece92573bfc70f41e897238724b868cc3f 100644 (file)
@@ -461,9 +461,11 @@ void intel_pxp_fini_hw(struct intel_pxp *pxp)
 }
 
 int intel_pxp_key_check(struct intel_pxp *pxp,
-                       struct drm_i915_gem_object *obj,
+                       struct drm_gem_object *_obj,
                        bool assign)
 {
+       struct drm_i915_gem_object *obj = to_intel_bo(_obj);
+
        if (!intel_pxp_is_active(pxp))
                return -ENODEV;
 
index d9372f6f7797ee4d05bdb4ac96414fd909fcebb1..4ed97db5e7c6f86e9d6b3098516c5581f6d23c8f 100644 (file)
@@ -9,7 +9,7 @@
 #include <linux/errno.h>
 #include <linux/types.h>
 
-struct drm_i915_gem_object;
+struct drm_gem_object;
 struct drm_i915_private;
 struct intel_pxp;
 
@@ -32,7 +32,7 @@ int intel_pxp_start(struct intel_pxp *pxp);
 void intel_pxp_end(struct intel_pxp *pxp);
 
 int intel_pxp_key_check(struct intel_pxp *pxp,
-                       struct drm_i915_gem_object *obj,
+                       struct drm_gem_object *obj,
                        bool assign);
 
 void intel_pxp_invalidate(struct intel_pxp *pxp);
index c2c30ece8f779bbe06945cbef703a77218d285a7..5dfc587c8237ec608a84fc7e7d3a435fc79abdb7 100644 (file)
@@ -9,20 +9,14 @@
 #include <linux/errno.h>
 #include <linux/types.h>
 
-struct drm_i915_gem_object;
+struct drm_gem_object;
 struct intel_pxp;
 
 static inline int intel_pxp_key_check(struct intel_pxp *pxp,
-                                     struct drm_i915_gem_object *obj,
+                                     struct drm_gem_object *obj,
                                      bool assign)
 {
        return -ENODEV;
 }
 
-static inline bool
-i915_gem_object_is_protected(const struct drm_i915_gem_object *obj)
-{
-       return false;
-}
-
 #endif
index 0c262313ecca3cfa83b2860a89e2988a8c2c91e4..7543915c970a99769f1b9769ac77eb63f3bd3043 100644 (file)
@@ -23,6 +23,11 @@ bool intel_bo_is_shmem(struct drm_gem_object *obj)
        return false;
 }
 
+bool intel_bo_is_protected(struct drm_gem_object *obj)
+{
+       return false;
+}
+
 void intel_bo_flush_if_display(struct drm_gem_object *obj)
 {
 }