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.

Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_bo.c                |  5 +++++
 drivers/gpu/drm/i915/display/intel_bo.h                |  1 +
 drivers/gpu/drm/i915/display/skl_universal_plane.c     |  5 +++--
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c         |  2 +-
 drivers/gpu/drm/i915/pxp/intel_pxp.c                   |  4 +++-
 drivers/gpu/drm/i915/pxp/intel_pxp.h                   |  4 ++--
 drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h | 10 ++--------
 drivers/gpu/drm/xe/display/intel_bo.c                  |  5 +++++
 8 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bo.c 
b/drivers/gpu/drm/i915/display/intel_bo.c
index c0d050cec4ad..681970cf8701 100644
--- a/drivers/gpu/drm/i915/display/intel_bo.c
+++ b/drivers/gpu/drm/i915/display/intel_bo.c
@@ -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));
diff --git a/drivers/gpu/drm/i915/display/intel_bo.h 
b/drivers/gpu/drm/i915/display/intel_bo.h
index 410f285d2ea1..222a12283a5a 100644
--- a/drivers/gpu/drm/i915/display/intel_bo.h
+++ b/drivers/gpu/drm/i915/display/intel_bo.h
@@ -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);
 
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c 
b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 17d4c880ecc4..fdb141cfa427 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -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;
 }
 
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index a3b83cfe1726..f151640c1d13 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -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);
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c 
b/drivers/gpu/drm/i915/pxp/intel_pxp.c
index 75278e78ca90..3a40e4ece925 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c
@@ -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;
 
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.h 
b/drivers/gpu/drm/i915/pxp/intel_pxp.h
index d9372f6f7797..4ed97db5e7c6 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp.h
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.h
@@ -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);
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h 
b/drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
index c2c30ece8f77..5dfc587c8237 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
@@ -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
diff --git a/drivers/gpu/drm/xe/display/intel_bo.c 
b/drivers/gpu/drm/xe/display/intel_bo.c
index 2549f88115df..0b4dfa6a0344 100644
--- a/drivers/gpu/drm/xe/display/intel_bo.c
+++ b/drivers/gpu/drm/xe/display/intel_bo.c
@@ -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)
 {
 }
-- 
2.39.2

Reply via email to