From: Ville Syrjälä <ville.syrj...@linux.intel.com>

The zpos magic sorting uses the object ID to solve conflicting zpos
values. Let's initialize our planes in an order that makes the object
IDs agree with the normal primary->sprites->cursor z order.

Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 2a5a7c2868de..244a0f59d8f7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15272,7 +15272,7 @@ static void intel_crtc_init(struct drm_device *dev, int 
pipe)
        struct intel_crtc_state *crtc_state = NULL;
        struct drm_plane *primary = NULL;
        struct drm_plane *cursor = NULL;
-       int ret;
+       int sprite, ret;
 
        intel_crtc = kzalloc(sizeof(*intel_crtc), GFP_KERNEL);
        if (intel_crtc == NULL)
@@ -15299,6 +15299,13 @@ static void intel_crtc_init(struct drm_device *dev, 
int pipe)
        if (!primary)
                goto fail;
 
+       for_each_sprite(dev_priv, pipe, sprite) {
+               ret = intel_plane_init(dev, pipe, sprite);
+               if (ret)
+                       DRM_DEBUG_KMS("pipe %c sprite %c init failed: %d\n",
+                                     pipe_name(pipe), sprite_name(pipe, 
sprite), ret);
+       }
+
        cursor = intel_cursor_plane_create(dev, pipe);
        if (!cursor)
                goto fail;
@@ -16423,7 +16430,6 @@ void intel_modeset_init(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct i915_ggtt *ggtt = &dev_priv->ggtt;
-       int sprite, ret;
        enum pipe pipe;
        struct intel_crtc *crtc;
 
@@ -16494,12 +16500,6 @@ void intel_modeset_init(struct drm_device *dev)
 
        for_each_pipe(dev_priv, pipe) {
                intel_crtc_init(dev, pipe);
-               for_each_sprite(dev_priv, pipe, sprite) {
-                       ret = intel_plane_init(dev, pipe, sprite);
-                       if (ret)
-                               DRM_DEBUG_KMS("pipe %c sprite %c init failed: 
%d\n",
-                                             pipe_name(pipe), 
sprite_name(pipe, sprite), ret);
-               }
        }
 
        intel_update_czclk(dev_priv);
-- 
2.7.4

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

Reply via email to