From: emersion <cont...@emersion.fr>

This adds basic immutable support for the zpos property. The zpos increases
from bottom to top: primary, sprites, cursor.

Signed-off-by: Simon Ser <cont...@emersion.fr>
---

This is based on a previous patch by Ville [1] that I wanted to review.
Unfortunately the patch no longer applies, so here is a new one.

[1]: https://patchwork.freedesktop.org/patch/225887/?series=43902&rev=1

 drivers/gpu/drm/i915/intel_display.c | 10 ++++++++--
 drivers/gpu/drm/i915/intel_sprite.c  |  5 ++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 8576a7f799..f0a85a75bd 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14323,7 +14323,7 @@ intel_primary_plane_create(struct drm_i915_private 
*dev_priv, enum pipe pipe)
        const u64 *modifiers;
        const u32 *formats;
        int num_formats;
-       int ret;
+       int ret, zpos;
 
        if (INTEL_GEN(dev_priv) >= 9)
                return skl_universal_plane_create(dev_priv, pipe,
@@ -14412,6 +14412,9 @@ intel_primary_plane_create(struct drm_i915_private 
*dev_priv, enum pipe pipe)
                                                   DRM_MODE_ROTATE_0,
                                                   supported_rotations);
 
+       zpos = 0;
+       drm_plane_create_zpos_immutable_property(&plane->base, zpos);
+
        drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
 
        return plane;
@@ -14428,7 +14431,7 @@ intel_cursor_plane_create(struct drm_i915_private 
*dev_priv,
 {
        unsigned int possible_crtcs;
        struct intel_plane *cursor;
-       int ret;
+       int ret, zpos;
 
        cursor = intel_plane_alloc();
        if (IS_ERR(cursor))
@@ -14477,6 +14480,9 @@ intel_cursor_plane_create(struct drm_i915_private 
*dev_priv,
                                                   DRM_MODE_ROTATE_0 |
                                                   DRM_MODE_ROTATE_180);
 
+       zpos = RUNTIME_INFO(dev_priv)->num_sprites[pipe] + 1;
+       drm_plane_create_zpos_immutable_property(&cursor->base, zpos);
+
        drm_plane_helper_add(&cursor->base, &intel_plane_helper_funcs);
 
        return cursor;
diff --git a/drivers/gpu/drm/i915/intel_sprite.c 
b/drivers/gpu/drm/i915/intel_sprite.c
index 65de7387bf..48bd8f9079 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -2354,7 +2354,7 @@ intel_sprite_plane_create(struct drm_i915_private 
*dev_priv,
        const u64 *modifiers;
        const u32 *formats;
        int num_formats;
-       int ret;
+       int ret, zpos;
 
        if (INTEL_GEN(dev_priv) >= 9)
                return skl_universal_plane_create(dev_priv, pipe,
@@ -2444,6 +2444,9 @@ intel_sprite_plane_create(struct drm_i915_private 
*dev_priv,
                                          DRM_COLOR_YCBCR_BT709,
                                          DRM_COLOR_YCBCR_LIMITED_RANGE);
 
+       zpos = sprite + 1;
+       drm_plane_create_zpos_immutable_property(&plane->base, zpos);
+
        drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
 
        return plane;
-- 
2.21.0


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to