* [Intel-xe] [PATCH 0/4] xe&i915 display pxp cleanup
@ 2023-11-09 16:17 Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 1/4] Revert "FIXME: drm/i915/pxp: some hack to bypass pxp" Jani Nikula
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Jani Nikula @ 2023-11-09 16:17 UTC (permalink / raw)
To: intel-xe; +Cc: jani.nikula
Add slightly cleaner abstractions for plane protection.
Not to be merged before patches 2&3 have been merged to i915 upstream.
Jani Nikula (4):
Revert "FIXME: drm/i915/pxp: some hack to bypass pxp"
drm/i915: abstract plane protection check
drm/i915: remove excess functions from plane protection check
fixup! drm/xe/display: Implement display support
.../drm/i915/display/skl_universal_plane.c | 31 +++++++------------
.../xe/compat-i915-headers/pxp/intel_pxp.h | 28 +++++++++++++++++
drivers/gpu/drm/xe/xe_device_types.h | 2 ++
3 files changed, 41 insertions(+), 20 deletions(-)
create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
--
2.39.2
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Intel-xe] [PATCH 1/4] Revert "FIXME: drm/i915/pxp: some hack to bypass pxp"
2023-11-09 16:17 [Intel-xe] [PATCH 0/4] xe&i915 display pxp cleanup Jani Nikula
@ 2023-11-09 16:17 ` Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 2/4] drm/i915: abstract plane protection check Jani Nikula
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Jani Nikula @ 2023-11-09 16:17 UTC (permalink / raw)
To: intel-xe; +Cc: jani.nikula
This reverts commit 7c700778c3b455c853c9ada8b85e83a550171c03.
To be replaced with a slightly cleaner abstraction.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/i915/display/skl_universal_plane.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 68eabe089aaf..a4d0e2ede2f7 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -21,11 +21,7 @@
#include "skl_scaler.h"
#include "skl_universal_plane.h"
#include "skl_watermark.h"
-#ifdef I915
#include "pxp/intel_pxp.h"
-#else
-// TODO: pxp?
-#endif
static const u32 skl_plane_formats[] = {
DRM_FORMAT_C8,
@@ -1864,14 +1860,9 @@ static bool skl_fb_scalable(const struct drm_framebuffer *fb)
static bool bo_has_valid_encryption(struct drm_i915_gem_object *obj)
{
-#ifdef I915
struct drm_i915_private *i915 = to_i915(obj->base.dev);
return intel_pxp_key_check(i915->pxp, obj, false) == 0;
-#else
-#define i915_gem_object_is_protected(x) ((x) && 0)
- return false;
-#endif
}
static bool pxp_is_borked(struct drm_i915_gem_object *obj)
--
2.39.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Intel-xe] [PATCH 2/4] drm/i915: abstract plane protection check
2023-11-09 16:17 [Intel-xe] [PATCH 0/4] xe&i915 display pxp cleanup Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 1/4] Revert "FIXME: drm/i915/pxp: some hack to bypass pxp" Jani Nikula
@ 2023-11-09 16:17 ` Jani Nikula
2023-11-09 19:08 ` Rodrigo Vivi
2023-11-09 16:17 ` [Intel-xe] [PATCH 3/4] drm/i915: remove excess functions from " Jani Nikula
` (2 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Jani Nikula @ 2023-11-09 16:17 UTC (permalink / raw)
To: intel-xe; +Cc: jani.nikula
Centralize the conditions in a function.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231109160722.3372379-1-jani.nikula@intel.com
---
.../gpu/drm/i915/display/skl_universal_plane.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index a4d0e2ede2f7..c1d426dbcc62 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1870,6 +1870,19 @@ static bool pxp_is_borked(struct drm_i915_gem_object *obj)
return i915_gem_object_is_protected(obj) && !bo_has_valid_encryption(obj);
}
+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;
+
+ if (DISPLAY_VER(i915) < 11)
+ return;
+
+ plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
+ plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
+}
+
static int skl_plane_check(struct intel_crtc_state *crtc_state,
struct intel_plane_state *plane_state)
{
@@ -1914,10 +1927,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
if (ret)
return ret;
- if (DISPLAY_VER(dev_priv) >= 11) {
- plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
- plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
- }
+ check_protection(plane_state);
/* HW only has 8 bits pixel precision, disable plane if invisible */
if (!(plane_state->hw.alpha >> 8))
--
2.39.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Intel-xe] [PATCH 3/4] drm/i915: remove excess functions from plane protection check
2023-11-09 16:17 [Intel-xe] [PATCH 0/4] xe&i915 display pxp cleanup Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 1/4] Revert "FIXME: drm/i915/pxp: some hack to bypass pxp" Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 2/4] drm/i915: abstract plane protection check Jani Nikula
@ 2023-11-09 16:17 ` Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 4/4] fixup! drm/xe/display: Implement display support Jani Nikula
2023-11-09 16:21 ` [Intel-xe] ✗ CI.Patch_applied: failure for xe&i915 display pxp cleanup Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Jani Nikula @ 2023-11-09 16:17 UTC (permalink / raw)
To: intel-xe; +Cc: jani.nikula
Reduce the function calls by reusing ->decrypt.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231109160722.3372379-2-jani.nikula@intel.com
---
.../gpu/drm/i915/display/skl_universal_plane.c | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index c1d426dbcc62..301b3f2303ea 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1858,29 +1858,19 @@ static bool skl_fb_scalable(const struct drm_framebuffer *fb)
}
}
-static bool bo_has_valid_encryption(struct drm_i915_gem_object *obj)
-{
- struct drm_i915_private *i915 = to_i915(obj->base.dev);
-
- return intel_pxp_key_check(i915->pxp, obj, false) == 0;
-}
-
-static bool pxp_is_borked(struct drm_i915_gem_object *obj)
-{
- return i915_gem_object_is_protected(obj) && !bo_has_valid_encryption(obj);
-}
-
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);
if (DISPLAY_VER(i915) < 11)
return;
- plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
- plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
+ plane_state->decrypt = intel_pxp_key_check(i915->pxp, obj, false) == 0;
+ plane_state->force_black = i915_gem_object_is_protected(obj) &&
+ !plane_state->decrypt;
}
static int skl_plane_check(struct intel_crtc_state *crtc_state,
--
2.39.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Intel-xe] [PATCH 4/4] fixup! drm/xe/display: Implement display support
2023-11-09 16:17 [Intel-xe] [PATCH 0/4] xe&i915 display pxp cleanup Jani Nikula
` (2 preceding siblings ...)
2023-11-09 16:17 ` [Intel-xe] [PATCH 3/4] drm/i915: remove excess functions from " Jani Nikula
@ 2023-11-09 16:17 ` Jani Nikula
2023-11-09 16:21 ` [Intel-xe] ✗ CI.Patch_applied: failure for xe&i915 display pxp cleanup Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Jani Nikula @ 2023-11-09 16:17 UTC (permalink / raw)
To: intel-xe; +Cc: jani.nikula
Wrappers for pxp.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
| 28 +++++++++++++++++++
drivers/gpu/drm/xe/xe_device_types.h | 2 ++
2 files changed, 30 insertions(+)
create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
--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
new file mode 100644
index 000000000000..c2c30ece8f77
--- /dev/null
+++ b/drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#ifndef __INTEL_PXP_H__
+#define __INTEL_PXP_H__
+
+#include <linux/errno.h>
+#include <linux/types.h>
+
+struct drm_i915_gem_object;
+struct intel_pxp;
+
+static inline int intel_pxp_key_check(struct intel_pxp *pxp,
+ struct drm_i915_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/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 4119ef03fb7e..be11cadccbd4 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -480,6 +480,8 @@ struct xe_device {
struct {
const char *dmc_firmware_path;
} params;
+
+ void *pxp;
#endif
};
--
2.39.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Intel-xe] ✗ CI.Patch_applied: failure for xe&i915 display pxp cleanup
2023-11-09 16:17 [Intel-xe] [PATCH 0/4] xe&i915 display pxp cleanup Jani Nikula
` (3 preceding siblings ...)
2023-11-09 16:17 ` [Intel-xe] [PATCH 4/4] fixup! drm/xe/display: Implement display support Jani Nikula
@ 2023-11-09 16:21 ` Patchwork
4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2023-11-09 16:21 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
== Series Details ==
Series: xe&i915 display pxp cleanup
URL : https://patchwork.freedesktop.org/series/126208/
State : failure
== Summary ==
=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: 2096aea11 fixup! drm/xe/gsc: add gsc device support
=== git am output follows ===
Applying: Revert "FIXME: drm/i915/pxp: some hack to bypass pxp"
Applying: drm/i915: abstract plane protection check
Applying: drm/i915: remove excess functions from plane protection check
Applying: fixup! drm/xe/display: Implement display support
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Intel-xe] [PATCH 2/4] drm/i915: abstract plane protection check
2023-11-09 16:17 ` [Intel-xe] [PATCH 2/4] drm/i915: abstract plane protection check Jani Nikula
@ 2023-11-09 19:08 ` Rodrigo Vivi
0 siblings, 0 replies; 7+ messages in thread
From: Rodrigo Vivi @ 2023-11-09 19:08 UTC (permalink / raw)
To: Jani Nikula; +Cc: intel-xe
On Thu, Nov 09, 2023 at 06:17:56PM +0200, Jani Nikula wrote:
> Centralize the conditions in a function.
>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> Link: https://patchwork.freedesktop.org/patch/msgid/20231109160722.3372379-1-jani.nikula@intel.com
> ---
> .../gpu/drm/i915/display/skl_universal_plane.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index a4d0e2ede2f7..c1d426dbcc62 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -1870,6 +1870,19 @@ static bool pxp_is_borked(struct drm_i915_gem_object *obj)
> return i915_gem_object_is_protected(obj) && !bo_has_valid_encryption(obj);
> }
>
> +static void check_protection(struct intel_plane_state *plane_state)
only not sure about this function name. maybe something with content_protection on it?!
but on the lack of a better suggestion:
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
(for the series)
> +{
> + 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;
> +
> + if (DISPLAY_VER(i915) < 11)
> + return;
> +
> + plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
> + plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
> +}
> +
> static int skl_plane_check(struct intel_crtc_state *crtc_state,
> struct intel_plane_state *plane_state)
> {
> @@ -1914,10 +1927,7 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
> if (ret)
> return ret;
>
> - if (DISPLAY_VER(dev_priv) >= 11) {
> - plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
> - plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
> - }
> + check_protection(plane_state);
>
> /* HW only has 8 bits pixel precision, disable plane if invisible */
> if (!(plane_state->hw.alpha >> 8))
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-11-09 19:09 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-09 16:17 [Intel-xe] [PATCH 0/4] xe&i915 display pxp cleanup Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 1/4] Revert "FIXME: drm/i915/pxp: some hack to bypass pxp" Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 2/4] drm/i915: abstract plane protection check Jani Nikula
2023-11-09 19:08 ` Rodrigo Vivi
2023-11-09 16:17 ` [Intel-xe] [PATCH 3/4] drm/i915: remove excess functions from " Jani Nikula
2023-11-09 16:17 ` [Intel-xe] [PATCH 4/4] fixup! drm/xe/display: Implement display support Jani Nikula
2023-11-09 16:21 ` [Intel-xe] ✗ CI.Patch_applied: failure for xe&i915 display pxp cleanup Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.