All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane
@ 2020-01-10 18:32 Ville Syrjala
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 2/6] drm/i915: Clear old hw.fb & co. from slave plane's state Ville Syrjala
                   ` (8 more replies)
  0 siblings, 9 replies; 17+ messages in thread
From: Ville Syrjala @ 2020-01-10 18:32 UTC (permalink / raw)
  To: intel-gfx

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

intel_prepare_plane_fb() will always pin plane_state->hw.fb whenever
it is present. We copy that from the master plane to the slave plane,
but we fail to copy the corresponding ggtt view. Thus when it comes time
to pin the slave plane's fb we use some stale ggtt view left over from
the last time the plane was used as a non-slave plane. If that previous
use involved 90/270 degree rotation or remapping we'll try to shuffle
the pages of the new fb around accordingingly. However the new
fb may be backed by a bo with less pages than what the ggtt view
rotation/remapped info requires, and so we we trip a GEM_BUG().

Steps to reproduce on icl:
1. plane 1: whatever
   plane 6: largish !NV12 fb + 90 degree rotation
2. plane 1: smallish NV12 fb
   plane 6: make invisible so it gets slaved to plane 1
3. GEM_BUG()

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Closes: https://gitlab.freedesktop.org/drm/intel/issues/951
Fixes: 1f594b209fe1 ("drm/i915: Remove special case slave handling during hw programming, v3.")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 59c375879186..fafb67689dee 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -12366,6 +12366,7 @@ static int icl_check_nv12_planes(struct intel_crtc_state *crtc_state)
 		/* Copy parameters to slave plane */
 		linked_state->ctl = plane_state->ctl | PLANE_CTL_YUV420_Y_PLANE;
 		linked_state->color_ctl = plane_state->color_ctl;
+		linked_state->view = plane_state->view;
 		memcpy(linked_state->color_plane, plane_state->color_plane,
 		       sizeof(linked_state->color_plane));
 
-- 
2.24.1

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

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Intel-gfx] [PATCH 2/6] drm/i915: Clear old hw.fb & co. from slave plane's state
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
@ 2020-01-10 18:32 ` Ville Syrjala
  2020-01-22 14:44   ` Maarten Lankhorst
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 3/6] drm/i915: Stop looking at plane->state in intel_prepare_plane_fb() Ville Syrjala
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjala @ 2020-01-10 18:32 UTC (permalink / raw)
  To: intel-gfx

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

Let's do the intel_plane_copy_uapi_to_hw_state() before we bail out
due to both old and new uapi.crtc being NULL. This will drop the
reference to the old hw.fb for planes that are transitioning from
being a slave plane to simply being disabled.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_atomic_plane.c | 6 ++----
 drivers/gpu/drm/i915/display/intel_display.c      | 2 ++
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 3e97af682b1b..7c69b053005b 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -225,12 +225,9 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
 					struct intel_plane_state *new_plane_state)
 {
 	struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
-	const struct drm_framebuffer *fb;
+	const struct drm_framebuffer *fb = new_plane_state->hw.fb;
 	int ret;
 
-	intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state);
-	fb = new_plane_state->hw.fb;
-
 	new_crtc_state->active_planes &= ~BIT(plane->id);
 	new_crtc_state->nv12_planes &= ~BIT(plane->id);
 	new_crtc_state->c8_planes &= ~BIT(plane->id);
@@ -292,6 +289,7 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
 	const struct intel_crtc_state *old_crtc_state;
 	struct intel_crtc_state *new_crtc_state;
 
+	intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state);
 	new_plane_state->uapi.visible = false;
 	if (!crtc)
 		return 0;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index fafb67689dee..0a1f2564dea0 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16038,6 +16038,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
 	new_plane_state->uapi.crtc_w = crtc_w;
 	new_plane_state->uapi.crtc_h = crtc_h;
 
+	intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state);
+
 	ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state,
 						  old_plane_state, new_plane_state);
 	if (ret)
-- 
2.24.1

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

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Intel-gfx] [PATCH 3/6] drm/i915: Stop looking at plane->state in intel_prepare_plane_fb()
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 2/6] drm/i915: Clear old hw.fb & co. from slave plane's state Ville Syrjala
@ 2020-01-10 18:32 ` Ville Syrjala
  2020-01-10 20:10   ` Chris Wilson
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 4/6] drm/i915: s/intel_state/state/ in intel_{prepare, cleanup}_plane_fb() Ville Syrjala
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjala @ 2020-01-10 18:32 UTC (permalink / raw)
  To: intel-gfx

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

Switch over to using explicit old/new planes states instead of
digging the old state out via plane->state. The main issue is that
plane->state will point to the uapi state which we generally don't
even want to look at.

Also it sets a bad example as using plane->state during commit_tail()
would be a bug. Here we're still holding the modeset locks so it's
actually safe, but best not give people bad ideas.

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

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 0a1f2564dea0..0df0719b0ac3 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -15749,23 +15749,25 @@ static void fb_obj_bump_render_priority(struct drm_i915_gem_object *obj)
  * Returns 0 on success, negative error code on failure.
  */
 int
-intel_prepare_plane_fb(struct drm_plane *plane,
+intel_prepare_plane_fb(struct drm_plane *_plane,
 		       struct drm_plane_state *_new_plane_state)
 {
+	struct intel_plane *plane = to_intel_plane(_plane);
 	struct intel_plane_state *new_plane_state =
 		to_intel_plane_state(_new_plane_state);
 	struct intel_atomic_state *intel_state =
 		to_intel_atomic_state(new_plane_state->uapi.state);
-	struct drm_i915_private *dev_priv = to_i915(plane->dev);
-	struct drm_framebuffer *fb = new_plane_state->hw.fb;
-	struct drm_i915_gem_object *obj = intel_fb_obj(fb);
-	struct drm_i915_gem_object *old_obj = intel_fb_obj(plane->state->fb);
+	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
+	const struct intel_plane_state *old_plane_state =
+		intel_atomic_get_old_plane_state(intel_state, plane);
+	struct drm_i915_gem_object *obj = intel_fb_obj(new_plane_state->hw.fb);
+	struct drm_i915_gem_object *old_obj = intel_fb_obj(old_plane_state->hw.fb);
 	int ret;
 
 	if (old_obj) {
-		struct intel_crtc_state *crtc_state =
+		const struct intel_crtc_state *crtc_state =
 			intel_atomic_get_new_crtc_state(intel_state,
-							to_intel_crtc(plane->state->crtc));
+							to_intel_crtc(old_plane_state->hw.crtc));
 
 		/* Big Hammer, we also need to ensure that any pending
 		 * MI_WAIT_FOR_EVENT inside a user batch buffer on the
-- 
2.24.1

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

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Intel-gfx] [PATCH 4/6] drm/i915: s/intel_state/state/ in intel_{prepare, cleanup}_plane_fb()
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 2/6] drm/i915: Clear old hw.fb & co. from slave plane's state Ville Syrjala
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 3/6] drm/i915: Stop looking at plane->state in intel_prepare_plane_fb() Ville Syrjala
@ 2020-01-10 18:32 ` Ville Syrjala
  2020-01-10 20:12   ` Chris Wilson
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 5/6] drm/i915: Balance prepare_fb/cleanup_fb Ville Syrjala
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjala @ 2020-01-10 18:32 UTC (permalink / raw)
  To: intel-gfx

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

Drop the redundant intel_ prefix from our atomic state variable.

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

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 0df0719b0ac3..27b43822344b 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -15755,18 +15755,18 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
 	struct intel_plane *plane = to_intel_plane(_plane);
 	struct intel_plane_state *new_plane_state =
 		to_intel_plane_state(_new_plane_state);
-	struct intel_atomic_state *intel_state =
+	struct intel_atomic_state *state =
 		to_intel_atomic_state(new_plane_state->uapi.state);
 	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
 	const struct intel_plane_state *old_plane_state =
-		intel_atomic_get_old_plane_state(intel_state, plane);
+		intel_atomic_get_old_plane_state(state, plane);
 	struct drm_i915_gem_object *obj = intel_fb_obj(new_plane_state->hw.fb);
 	struct drm_i915_gem_object *old_obj = intel_fb_obj(old_plane_state->hw.fb);
 	int ret;
 
 	if (old_obj) {
 		const struct intel_crtc_state *crtc_state =
-			intel_atomic_get_new_crtc_state(intel_state,
+			intel_atomic_get_new_crtc_state(state,
 							to_intel_crtc(old_plane_state->hw.crtc));
 
 		/* Big Hammer, we also need to ensure that any pending
@@ -15781,7 +15781,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
 		 * can safely continue.
 		 */
 		if (needs_modeset(crtc_state)) {
-			ret = i915_sw_fence_await_reservation(&intel_state->commit_ready,
+			ret = i915_sw_fence_await_reservation(&state->commit_ready,
 							      old_obj->base.resv, NULL,
 							      false, 0,
 							      GFP_KERNEL);
@@ -15791,7 +15791,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
 	}
 
 	if (new_plane_state->uapi.fence) { /* explicit fencing */
-		ret = i915_sw_fence_await_dma_fence(&intel_state->commit_ready,
+		ret = i915_sw_fence_await_dma_fence(&state->commit_ready,
 						    new_plane_state->uapi.fence,
 						    I915_FENCE_TIMEOUT,
 						    GFP_KERNEL);
@@ -15818,7 +15818,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
 	if (!new_plane_state->uapi.fence) { /* implicit fencing */
 		struct dma_fence *fence;
 
-		ret = i915_sw_fence_await_reservation(&intel_state->commit_ready,
+		ret = i915_sw_fence_await_reservation(&state->commit_ready,
 						      obj->base.resv, NULL,
 						      false, I915_FENCE_TIMEOUT,
 						      GFP_KERNEL);
@@ -15844,9 +15844,9 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
 	 * that are not quite steady state without resorting to forcing
 	 * maximum clocks following a vblank miss (see do_rps_boost()).
 	 */
-	if (!intel_state->rps_interactive) {
+	if (!state->rps_interactive) {
 		intel_rps_mark_interactive(&dev_priv->gt.rps, true);
-		intel_state->rps_interactive = true;
+		state->rps_interactive = true;
 	}
 
 	return 0;
@@ -15865,13 +15865,13 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
 {
 	struct intel_plane_state *old_plane_state =
 		to_intel_plane_state(_old_plane_state);
-	struct intel_atomic_state *intel_state =
+	struct intel_atomic_state *state =
 		to_intel_atomic_state(old_plane_state->uapi.state);
 	struct drm_i915_private *dev_priv = to_i915(plane->dev);
 
-	if (intel_state->rps_interactive) {
+	if (state->rps_interactive) {
 		intel_rps_mark_interactive(&dev_priv->gt.rps, false);
-		intel_state->rps_interactive = false;
+		state->rps_interactive = false;
 	}
 
 	/* Should only be called after a successful intel_prepare_plane_fb()! */
-- 
2.24.1

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

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Intel-gfx] [PATCH 5/6] drm/i915: Balance prepare_fb/cleanup_fb
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
                   ` (2 preceding siblings ...)
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 4/6] drm/i915: s/intel_state/state/ in intel_{prepare, cleanup}_plane_fb() Ville Syrjala
@ 2020-01-10 18:32 ` Ville Syrjala
  2020-01-10 18:42   ` Chris Wilson
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 6/6] drm/i915: Cleanup properly if the implicit fence setup fails Ville Syrjala
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjala @ 2020-01-10 18:32 UTC (permalink / raw)
  To: intel-gfx

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

intel_prepare_plane_fb() bails early if there is no fb (or rather
no obj, which is the same thing). intel_cleanup_plane_fb() does not.
This means the steps performed by intel_cleanup_plane_fb() aren't
balanced with with what was done intel_prepare_plane_fb() if there
is no fb for the plane. These hooks get called for every plane in
the state regardless of whether they have an fb or not.

Add a matching null obj check to intel_cleanup_plane_fb() to restore
the balance.

Note that intel_cleanup_plane_fb() has sufficient protections
already in place that the imbalance doesn't cause any real problems.
But having things be in balance seems nicer anyway, and might help
avoid some surprises in the future.

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

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 27b43822344b..f79a6376bbf0 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -15868,6 +15868,10 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
 	struct intel_atomic_state *state =
 		to_intel_atomic_state(old_plane_state->uapi.state);
 	struct drm_i915_private *dev_priv = to_i915(plane->dev);
+	struct drm_i915_gem_object *obj = intel_fb_obj(old_plane_state->hw.fb);
+
+	if (!obj)
+		return;
 
 	if (state->rps_interactive) {
 		intel_rps_mark_interactive(&dev_priv->gt.rps, false);
-- 
2.24.1

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

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Intel-gfx] [PATCH 6/6] drm/i915: Cleanup properly if the implicit fence setup fails
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
                   ` (3 preceding siblings ...)
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 5/6] drm/i915: Balance prepare_fb/cleanup_fb Ville Syrjala
@ 2020-01-10 18:32 ` Ville Syrjala
  2020-01-10 18:39   ` Chris Wilson
  2020-01-10 18:54 ` [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Chris Wilson
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjala @ 2020-01-10 18:32 UTC (permalink / raw)
  To: intel-gfx

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

We've already pinned the vma and fence by the time we try to
deal with implicit fencing. Properly unpin the vma and fence
if the fence setup fails instead of just bailing straight out
from .prepare_fb(). As can be expected
drm_atomic_helper_prepare_planes() will not call .cleanup_fb()
for the plane whose .prepare_fb() failed so we must do the
cleanup ourself.

v2: Rebase

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index f79a6376bbf0..96e71204b86f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -15823,7 +15823,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
 						      false, I915_FENCE_TIMEOUT,
 						      GFP_KERNEL);
 		if (ret < 0)
-			return ret;
+			goto unpin_fb;
 
 		fence = dma_resv_get_excl_rcu(obj->base.resv);
 		if (fence) {
@@ -15850,6 +15850,11 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
 	}
 
 	return 0;
+
+unpin_fb:
+	intel_plane_unpin_fb(new_plane_state);
+
+	return ret;
 }
 
 /**
-- 
2.24.1

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

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 6/6] drm/i915: Cleanup properly if the implicit fence setup fails
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 6/6] drm/i915: Cleanup properly if the implicit fence setup fails Ville Syrjala
@ 2020-01-10 18:39   ` Chris Wilson
  0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2020-01-10 18:39 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Quoting Ville Syrjala (2020-01-10 18:32:28)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We've already pinned the vma and fence by the time we try to
> deal with implicit fencing. Properly unpin the vma and fence
> if the fence setup fails instead of just bailing straight out
> from .prepare_fb(). As can be expected
> drm_atomic_helper_prepare_planes() will not call .cleanup_fb()
> for the plane whose .prepare_fb() failed so we must do the
> cleanup ourself.
> 
> v2: Rebase
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 5/6] drm/i915: Balance prepare_fb/cleanup_fb
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 5/6] drm/i915: Balance prepare_fb/cleanup_fb Ville Syrjala
@ 2020-01-10 18:42   ` Chris Wilson
  0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2020-01-10 18:42 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Quoting Ville Syrjala (2020-01-10 18:32:27)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> intel_prepare_plane_fb() bails early if there is no fb (or rather
> no obj, which is the same thing). intel_cleanup_plane_fb() does not.
> This means the steps performed by intel_cleanup_plane_fb() aren't
> balanced with with what was done intel_prepare_plane_fb() if there
> is no fb for the plane. These hooks get called for every plane in
> the state regardless of whether they have an fb or not.
> 
> Add a matching null obj check to intel_cleanup_plane_fb() to restore
> the balance.
> 
> Note that intel_cleanup_plane_fb() has sufficient protections
> already in place that the imbalance doesn't cause any real problems.
> But having things be in balance seems nicer anyway, and might help
> avoid some surprises in the future.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 27b43822344b..f79a6376bbf0 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -15868,6 +15868,10 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
>         struct intel_atomic_state *state =
>                 to_intel_atomic_state(old_plane_state->uapi.state);
>         struct drm_i915_private *dev_priv = to_i915(plane->dev);
> +       struct drm_i915_gem_object *obj = intel_fb_obj(old_plane_state->hw.fb);
> +
> +       if (!obj)
> +               return;
>  
>         if (state->rps_interactive) {
>                 intel_rps_mark_interactive(&dev_priv->gt.rps, false);

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
                   ` (4 preceding siblings ...)
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 6/6] drm/i915: Cleanup properly if the implicit fence setup fails Ville Syrjala
@ 2020-01-10 18:54 ` Chris Wilson
  2020-01-13 13:15   ` Ville Syrjälä
  2020-01-10 21:55 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/6] " Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Chris Wilson @ 2020-01-10 18:54 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Quoting Ville Syrjala (2020-01-10 18:32:23)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> intel_prepare_plane_fb() will always pin plane_state->hw.fb whenever
> it is present. We copy that from the master plane to the slave plane,
> but we fail to copy the corresponding ggtt view. Thus when it comes time
> to pin the slave plane's fb we use some stale ggtt view left over from
> the last time the plane was used as a non-slave plane. If that previous
> use involved 90/270 degree rotation or remapping we'll try to shuffle
> the pages of the new fb around accordingingly. However the new
> fb may be backed by a bo with less pages than what the ggtt view
> rotation/remapped info requires, and so we we trip a GEM_BUG().
> 
> Steps to reproduce on icl:
> 1. plane 1: whatever
>    plane 6: largish !NV12 fb + 90 degree rotation
> 2. plane 1: smallish NV12 fb
>    plane 6: make invisible so it gets slaved to plane 1
> 3. GEM_BUG()
> 
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Closes: https://gitlab.freedesktop.org/drm/intel/issues/951
> Fixes: 1f594b209fe1 ("drm/i915: Remove special case slave handling during hw programming, v3.")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 59c375879186..fafb67689dee 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -12366,6 +12366,7 @@ static int icl_check_nv12_planes(struct intel_crtc_state *crtc_state)
>                 /* Copy parameters to slave plane */
>                 linked_state->ctl = plane_state->ctl | PLANE_CTL_YUV420_Y_PLANE;
>                 linked_state->color_ctl = plane_state->color_ctl;
> +               linked_state->view = plane_state->view;
>                 memcpy(linked_state->color_plane, plane_state->color_plane,
>                        sizeof(linked_state->color_plane));

So this bit is just copying across the results of
intel_plane_compute_gtt()?

What happens for equivalent of intel_plane_needs_remap()?
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 3/6] drm/i915: Stop looking at plane->state in intel_prepare_plane_fb()
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 3/6] drm/i915: Stop looking at plane->state in intel_prepare_plane_fb() Ville Syrjala
@ 2020-01-10 20:10   ` Chris Wilson
  0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2020-01-10 20:10 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Quoting Ville Syrjala (2020-01-10 18:32:25)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Switch over to using explicit old/new planes states instead of
> digging the old state out via plane->state. The main issue is that
> plane->state will point to the uapi state which we generally don't
> even want to look at.
> 
> Also it sets a bad example as using plane->state during commit_tail()
> would be a bug. Here we're still holding the modeset locks so it's
> actually safe, but best not give people bad ideas.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 0a1f2564dea0..0df0719b0ac3 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -15749,23 +15749,25 @@ static void fb_obj_bump_render_priority(struct drm_i915_gem_object *obj)
>   * Returns 0 on success, negative error code on failure.
>   */
>  int
> -intel_prepare_plane_fb(struct drm_plane *plane,
> +intel_prepare_plane_fb(struct drm_plane *_plane,
>                        struct drm_plane_state *_new_plane_state)
>  {
> +       struct intel_plane *plane = to_intel_plane(_plane);
>         struct intel_plane_state *new_plane_state =
>                 to_intel_plane_state(_new_plane_state);
>         struct intel_atomic_state *intel_state =
>                 to_intel_atomic_state(new_plane_state->uapi.state);
> -       struct drm_i915_private *dev_priv = to_i915(plane->dev);
> -       struct drm_framebuffer *fb = new_plane_state->hw.fb;
> -       struct drm_i915_gem_object *obj = intel_fb_obj(fb);
> -       struct drm_i915_gem_object *old_obj = intel_fb_obj(plane->state->fb);
> +       struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
> +       const struct intel_plane_state *old_plane_state =
> +               intel_atomic_get_old_plane_state(intel_state, plane);
> +       struct drm_i915_gem_object *obj = intel_fb_obj(new_plane_state->hw.fb);
> +       struct drm_i915_gem_object *old_obj = intel_fb_obj(old_plane_state->hw.fb);

intel_state being the old one out. Often called just state in other
functions?
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 4/6] drm/i915: s/intel_state/state/ in intel_{prepare, cleanup}_plane_fb()
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 4/6] drm/i915: s/intel_state/state/ in intel_{prepare, cleanup}_plane_fb() Ville Syrjala
@ 2020-01-10 20:12   ` Chris Wilson
  0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2020-01-10 20:12 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Quoting Ville Syrjala (2020-01-10 18:32:26)
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Drop the redundant intel_ prefix from our atomic state variable.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 22 ++++++++++----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 0df0719b0ac3..27b43822344b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -15755,18 +15755,18 @@ intel_prepare_plane_fb(struct drm_plane *_plane,
>         struct intel_plane *plane = to_intel_plane(_plane);
>         struct intel_plane_state *new_plane_state =
>                 to_intel_plane_state(_new_plane_state);
> -       struct intel_atomic_state *intel_state =
> +       struct intel_atomic_state *state =

Ah, 3&4
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/6] drm/i915: Make a copy of the ggtt view for slave plane
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
                   ` (5 preceding siblings ...)
  2020-01-10 18:54 ` [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Chris Wilson
@ 2020-01-10 21:55 ` Patchwork
  2020-01-13 14:54 ` [Intel-gfx] [PATCH 1/6] " Juha-Pekka Heikkila
  2020-01-14 17:07 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/6] " Patchwork
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2020-01-10 21:55 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/6] drm/i915: Make a copy of the ggtt view for slave plane
URL   : https://patchwork.freedesktop.org/series/71896/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7721 -> Patchwork_16058
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/index.html

Known issues
------------

  Here are the changes found in Patchwork_16058 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_mmap_gtt@basic:
    - fi-glk-dsi:         [PASS][1] -> [INCOMPLETE][2] ([i915#58] / [k.org#198133])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-glk-dsi/igt@gem_mmap_gtt@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-glk-dsi/igt@gem_mmap_gtt@basic.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-kbl-7500u:       [PASS][3] -> [FAIL][4] ([i915#217])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-kbl-7500u/igt@kms_chamelium@hdmi-edid-read.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][5] -> [FAIL][6] ([fdo#111096] / [i915#323])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Possible fixes ####

  * igt@gem_close_race@basic-threads:
    - fi-byt-j1900:       [TIMEOUT][7] ([i915#816]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-byt-j1900/igt@gem_close_race@basic-threads.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-byt-j1900/igt@gem_close_race@basic-threads.html

  * igt@gem_exec_gttfill@basic:
    - {fi-ehl-1}:         [INCOMPLETE][9] ([i915#937]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-ehl-1/igt@gem_exec_gttfill@basic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-ehl-1/igt@gem_exec_gttfill@basic.html

  * igt@gem_render_linear_blits@basic:
    - fi-icl-dsi:         [DMESG-WARN][11] ([i915#109]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-icl-dsi/igt@gem_render_linear_blits@basic.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-icl-dsi/igt@gem_render_linear_blits@basic.html

  * igt@gem_sync@basic-each:
    - fi-tgl-y:           [INCOMPLETE][13] ([i915#472] / [i915#707]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-tgl-y/igt@gem_sync@basic-each.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-tgl-y/igt@gem_sync@basic-each.html

  * igt@kms_chamelium@dp-edid-read:
    - fi-kbl-7500u:       [FAIL][15] -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html

  
#### Warnings ####

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770:        [DMESG-FAIL][17] ([i915#553] / [i915#725]) -> [DMESG-FAIL][18] ([i915#725])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/fi-hsw-4770/igt@i915_selftest@live_blt.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58
  [i915#707]: https://gitlab.freedesktop.org/drm/intel/issues/707
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816
  [i915#937]: https://gitlab.freedesktop.org/drm/intel/issues/937
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (47 -> 47)
------------------------------

  Additional (5): fi-hsw-4770r fi-bdw-5557u fi-ilk-650 fi-snb-2520m fi-byt-n2820 
  Missing    (5): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7721 -> Patchwork_16058

  CI-20190529: 20190529
  CI_DRM_7721: 3a2436c56fcf2d133d701a112eb1e0dfce0b846d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5364: b7cb6ffdb65cbd233f5ddee2f2dabf97b34fa640 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16058: c7678cf49f853d38faae7a7de3e2ee7837fbb689 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

c7678cf49f85 drm/i915: Cleanup properly if the implicit fence setup fails
2530b5d014d9 drm/i915: Balance prepare_fb/cleanup_fb
e1095ec1c9ea drm/i915: s/intel_state/state/ in intel_{prepare, cleanup}_plane_fb()
c5a97800fcfc drm/i915: Stop looking at plane->state in intel_prepare_plane_fb()
c6903d26cdf9 drm/i915: Clear old hw.fb & co. from slave plane's state
e704fd821b0f drm/i915: Make a copy of the ggtt view for slave plane

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane
  2020-01-10 18:54 ` [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Chris Wilson
@ 2020-01-13 13:15   ` Ville Syrjälä
  2020-01-13 13:22     ` Chris Wilson
  0 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjälä @ 2020-01-13 13:15 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

On Fri, Jan 10, 2020 at 06:54:13PM +0000, Chris Wilson wrote:
> Quoting Ville Syrjala (2020-01-10 18:32:23)
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > intel_prepare_plane_fb() will always pin plane_state->hw.fb whenever
> > it is present. We copy that from the master plane to the slave plane,
> > but we fail to copy the corresponding ggtt view. Thus when it comes time
> > to pin the slave plane's fb we use some stale ggtt view left over from
> > the last time the plane was used as a non-slave plane. If that previous
> > use involved 90/270 degree rotation or remapping we'll try to shuffle
> > the pages of the new fb around accordingingly. However the new
> > fb may be backed by a bo with less pages than what the ggtt view
> > rotation/remapped info requires, and so we we trip a GEM_BUG().
> > 
> > Steps to reproduce on icl:
> > 1. plane 1: whatever
> >    plane 6: largish !NV12 fb + 90 degree rotation
> > 2. plane 1: smallish NV12 fb
> >    plane 6: make invisible so it gets slaved to plane 1
> > 3. GEM_BUG()
> > 
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Closes: https://gitlab.freedesktop.org/drm/intel/issues/951
> > Fixes: 1f594b209fe1 ("drm/i915: Remove special case slave handling during hw programming, v3.")
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_display.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> > index 59c375879186..fafb67689dee 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -12366,6 +12366,7 @@ static int icl_check_nv12_planes(struct intel_crtc_state *crtc_state)
> >                 /* Copy parameters to slave plane */
> >                 linked_state->ctl = plane_state->ctl | PLANE_CTL_YUV420_Y_PLANE;
> >                 linked_state->color_ctl = plane_state->color_ctl;
> > +               linked_state->view = plane_state->view;
> >                 memcpy(linked_state->color_plane, plane_state->color_plane,
> >                        sizeof(linked_state->color_plane));
> 
> So this bit is just copying across the results of
> intel_plane_compute_gtt()?

Yep. Actually we copied some of it already (.color_plane[])
but this part was missing.

> 
> What happens for equivalent of intel_plane_needs_remap()?

The master plane makes the remap vs. not decision and fills
.color_plane[] and .view accordingly for both chroma and luma.
Though at the moment intel_plane_needs_remap() is a bit
incomplete as it only considers the luma stride limit. The
chroma stride limit is not really documented (at least on
pre-icl) and I've been too lazy to reverse engineer it.

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane
  2020-01-13 13:15   ` Ville Syrjälä
@ 2020-01-13 13:22     ` Chris Wilson
  0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2020-01-13 13:22 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

Quoting Ville Syrjälä (2020-01-13 13:15:16)
> On Fri, Jan 10, 2020 at 06:54:13PM +0000, Chris Wilson wrote:
> > Quoting Ville Syrjala (2020-01-10 18:32:23)
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > intel_prepare_plane_fb() will always pin plane_state->hw.fb whenever
> > > it is present. We copy that from the master plane to the slave plane,
> > > but we fail to copy the corresponding ggtt view. Thus when it comes time
> > > to pin the slave plane's fb we use some stale ggtt view left over from
> > > the last time the plane was used as a non-slave plane. If that previous
> > > use involved 90/270 degree rotation or remapping we'll try to shuffle
> > > the pages of the new fb around accordingingly. However the new
> > > fb may be backed by a bo with less pages than what the ggtt view
> > > rotation/remapped info requires, and so we we trip a GEM_BUG().
> > > 
> > > Steps to reproduce on icl:
> > > 1. plane 1: whatever
> > >    plane 6: largish !NV12 fb + 90 degree rotation
> > > 2. plane 1: smallish NV12 fb
> > >    plane 6: make invisible so it gets slaved to plane 1
> > > 3. GEM_BUG()
> > > 
> > > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > Closes: https://gitlab.freedesktop.org/drm/intel/issues/951
> > > Fixes: 1f594b209fe1 ("drm/i915: Remove special case slave handling during hw programming, v3.")
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_display.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> > > index 59c375879186..fafb67689dee 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -12366,6 +12366,7 @@ static int icl_check_nv12_planes(struct intel_crtc_state *crtc_state)
> > >                 /* Copy parameters to slave plane */
> > >                 linked_state->ctl = plane_state->ctl | PLANE_CTL_YUV420_Y_PLANE;
> > >                 linked_state->color_ctl = plane_state->color_ctl;
> > > +               linked_state->view = plane_state->view;
> > >                 memcpy(linked_state->color_plane, plane_state->color_plane,
> > >                        sizeof(linked_state->color_plane));
> > 
> > So this bit is just copying across the results of
> > intel_plane_compute_gtt()?
> 
> Yep. Actually we copied some of it already (.color_plane[])
> but this part was missing.
> 
> > 
> > What happens for equivalent of intel_plane_needs_remap()?
> 
> The master plane makes the remap vs. not decision and fills
> .color_plane[] and .view accordingly for both chroma and luma.
> Though at the moment intel_plane_needs_remap() is a bit
> incomplete as it only considers the luma stride limit. The
> chroma stride limit is not really documented (at least on
> pre-icl) and I've been too lazy to reverse engineer it.

I trust you know what you are doing copying the remapped view from
plane_state to linked_state, so

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
                   ` (6 preceding siblings ...)
  2020-01-10 21:55 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/6] " Patchwork
@ 2020-01-13 14:54 ` Juha-Pekka Heikkila
  2020-01-14 17:07 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/6] " Patchwork
  8 siblings, 0 replies; 17+ messages in thread
From: Juha-Pekka Heikkila @ 2020-01-13 14:54 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

On 10.1.2020 20.32, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> intel_prepare_plane_fb() will always pin plane_state->hw.fb whenever
> it is present. We copy that from the master plane to the slave plane,
> but we fail to copy the corresponding ggtt view. Thus when it comes time
> to pin the slave plane's fb we use some stale ggtt view left over from
> the last time the plane was used as a non-slave plane. If that previous
> use involved 90/270 degree rotation or remapping we'll try to shuffle
> the pages of the new fb around accordingingly. However the new
> fb may be backed by a bo with less pages than what the ggtt view
> rotation/remapped info requires, and so we we trip a GEM_BUG().
> 
> Steps to reproduce on icl:
> 1. plane 1: whatever
>     plane 6: largish !NV12 fb + 90 degree rotation
> 2. plane 1: smallish NV12 fb
>     plane 6: make invisible so it gets slaved to plane 1
> 3. GEM_BUG()
> 
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Closes: https://gitlab.freedesktop.org/drm/intel/issues/951
> Fixes: 1f594b209fe1 ("drm/i915: Remove special case slave handling during hw programming, v3.")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_display.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 59c375879186..fafb67689dee 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -12366,6 +12366,7 @@ static int icl_check_nv12_planes(struct intel_crtc_state *crtc_state)
>   		/* Copy parameters to slave plane */
>   		linked_state->ctl = plane_state->ctl | PLANE_CTL_YUV420_Y_PLANE;
>   		linked_state->color_ctl = plane_state->color_ctl;
> +		linked_state->view = plane_state->view;
>   		memcpy(linked_state->color_plane, plane_state->color_plane,
>   		       sizeof(linked_state->color_plane));
>   
> 

This fixes also https://gitlab.freedesktop.org/drm/intel/issues/199

Though, that is listed also for older platforms but I see it happening 
only on icl/tgl.

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/6] drm/i915: Make a copy of the ggtt view for slave plane
  2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
                   ` (7 preceding siblings ...)
  2020-01-13 14:54 ` [Intel-gfx] [PATCH 1/6] " Juha-Pekka Heikkila
@ 2020-01-14 17:07 ` Patchwork
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2020-01-14 17:07 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/6] drm/i915: Make a copy of the ggtt view for slave plane
URL   : https://patchwork.freedesktop.org/series/71896/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7721_full -> Patchwork_16058_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_16058_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_16058_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_16058_full:

### IGT changes ###

#### Possible regressions ####

  * igt@runner@aborted:
    - shard-hsw:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-hsw7/igt@runner@aborted.html

  
Known issues
------------

  Here are the changes found in Patchwork_16058_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@vcs1-dirty-switch:
    - shard-iclb:         [PASS][2] -> [SKIP][3] ([fdo#109276] / [fdo#112080]) +1 similar issue
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb2/igt@gem_ctx_isolation@vcs1-dirty-switch.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb8/igt@gem_ctx_isolation@vcs1-dirty-switch.html

  * igt@gem_ctx_persistence@vcs0-mixed-process:
    - shard-apl:          [PASS][4] -> [FAIL][5] ([i915#679])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-apl4/igt@gem_ctx_persistence@vcs0-mixed-process.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-apl7/igt@gem_ctx_persistence@vcs0-mixed-process.html

  * igt@gem_ctx_shared@exec-single-timeline-bsd:
    - shard-iclb:         [PASS][6] -> [SKIP][7] ([fdo#110841])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb5/igt@gem_ctx_shared@exec-single-timeline-bsd.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb1/igt@gem_ctx_shared@exec-single-timeline-bsd.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][8] -> [SKIP][9] ([fdo#110854])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb4/igt@gem_exec_balancer@smoke.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb6/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_gttfill@basic:
    - shard-tglb:         [PASS][10] -> [INCOMPLETE][11] ([fdo#111593] / [i915#472])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb1/igt@gem_exec_gttfill@basic.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb4/igt@gem_exec_gttfill@basic.html

  * igt@gem_exec_schedule@pi-shared-iova-bsd:
    - shard-iclb:         [PASS][12] -> [SKIP][13] ([i915#677])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb5/igt@gem_exec_schedule@pi-shared-iova-bsd.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb1/igt@gem_exec_schedule@pi-shared-iova-bsd.html

  * igt@gem_exec_schedule@preempt-queue-bsd:
    - shard-iclb:         [PASS][14] -> [SKIP][15] ([fdo#112146]) +3 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb5/igt@gem_exec_schedule@preempt-queue-bsd.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd.html

  * igt@gem_exec_schedule@preempt-queue-bsd1:
    - shard-iclb:         [PASS][16] -> [SKIP][17] ([fdo#109276]) +12 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb2/igt@gem_exec_schedule@preempt-queue-bsd1.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb7/igt@gem_exec_schedule@preempt-queue-bsd1.html

  * igt@gem_exec_schedule@preempt-queue-chain-vebox:
    - shard-tglb:         [PASS][18] -> [INCOMPLETE][19] ([fdo#111677] / [i915#472])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb8/igt@gem_exec_schedule@preempt-queue-chain-vebox.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb8/igt@gem_exec_schedule@preempt-queue-chain-vebox.html

  * igt@gem_exec_schedule@preempt-queue-contexts-bsd1:
    - shard-tglb:         [PASS][20] -> [INCOMPLETE][21] ([fdo#111606] / [fdo#111677] / [i915#472])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb7/igt@gem_exec_schedule@preempt-queue-contexts-bsd1.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb3/igt@gem_exec_schedule@preempt-queue-contexts-bsd1.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
    - shard-iclb:         [PASS][22] -> [TIMEOUT][23] ([fdo#112271])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb7/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb2/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-hsw:          [PASS][24] -> [FAIL][25] ([i915#520])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-hsw5/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-hsw2/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_sync@basic-many-each:
    - shard-tglb:         [PASS][26] -> [INCOMPLETE][27] ([i915#472] / [i915#707])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb4/igt@gem_sync@basic-many-each.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb4/igt@gem_sync@basic-many-each.html

  * igt@gem_sync@basic-store-all:
    - shard-tglb:         [PASS][28] -> [INCOMPLETE][29] ([i915#472]) +1 similar issue
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb4/igt@gem_sync@basic-store-all.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb6/igt@gem_sync@basic-store-all.html

  * igt@kms_color@pipe-b-ctm-negative:
    - shard-skl:          [PASS][30] -> [DMESG-WARN][31] ([i915#109])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl8/igt@kms_color@pipe-b-ctm-negative.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl3/igt@kms_color@pipe-b-ctm-negative.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-glk:          [PASS][32] -> [FAIL][33] ([i915#79])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-glk3/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt:
    - shard-tglb:         [PASS][34] -> [FAIL][35] ([i915#49]) +5 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][36] -> [DMESG-WARN][37] ([i915#180]) +5 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@psr-suspend:
    - shard-skl:          [PASS][38] -> [INCOMPLETE][39] ([i915#123] / [i915#69])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl9/igt@kms_frontbuffer_tracking@psr-suspend.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl10/igt@kms_frontbuffer_tracking@psr-suspend.html

  * igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:
    - shard-skl:          [PASS][40] -> [FAIL][41] ([fdo#108145])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl4/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl10/igt@kms_plane_alpha_blend@pipe-a-coverage-7efc.html

  * igt@kms_psr@psr2_primary_mmap_gtt:
    - shard-iclb:         [PASS][42] -> [SKIP][43] ([fdo#109441])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb7/igt@kms_psr@psr2_primary_mmap_gtt.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-tglb:         [PASS][44] -> [INCOMPLETE][45] ([i915#460])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb6/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb7/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-apl:          [PASS][46] -> [DMESG-WARN][47] ([i915#180]) +3 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-apl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-apl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@perf_pmu@busy-vcs1:
    - shard-iclb:         [PASS][48] -> [SKIP][49] ([fdo#112080]) +13 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb2/igt@perf_pmu@busy-vcs1.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb7/igt@perf_pmu@busy-vcs1.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-apl:          [DMESG-WARN][50] ([i915#180]) -> [PASS][51] +2 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-apl1/igt@gem_ctx_isolation@rcs0-s3.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-apl6/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_ctx_isolation@vcs1-dirty-create:
    - shard-iclb:         [SKIP][52] ([fdo#109276] / [fdo#112080]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb5/igt@gem_ctx_isolation@vcs1-dirty-create.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb1/igt@gem_ctx_isolation@vcs1-dirty-create.html

  * igt@gem_eio@in-flight-contexts-1us:
    - shard-snb:          [FAIL][54] ([i915#490]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-snb1/igt@gem_eio@in-flight-contexts-1us.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-snb6/igt@gem_eio@in-flight-contexts-1us.html

  * igt@gem_exec_await@wide-contexts:
    - shard-tglb:         [INCOMPLETE][56] ([fdo#111736] / [i915#472]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb3/igt@gem_exec_await@wide-contexts.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb9/igt@gem_exec_await@wide-contexts.html

  * igt@gem_exec_reuse@single:
    - shard-tglb:         [INCOMPLETE][58] ([i915#472]) -> [PASS][59]
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb5/igt@gem_exec_reuse@single.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb7/igt@gem_exec_reuse@single.html

  * igt@gem_exec_schedule@pi-distinct-iova-bsd:
    - shard-iclb:         [SKIP][60] ([i915#677]) -> [PASS][61] +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb2/igt@gem_exec_schedule@pi-distinct-iova-bsd.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb7/igt@gem_exec_schedule@pi-distinct-iova-bsd.html

  * igt@gem_exec_schedule@preempt-queue-contexts-bsd2:
    - shard-tglb:         [INCOMPLETE][62] ([fdo#111606] / [fdo#111677] / [i915#472]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb8/igt@gem_exec_schedule@preempt-queue-contexts-bsd2.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb2/igt@gem_exec_schedule@preempt-queue-contexts-bsd2.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
    - shard-iclb:         [SKIP][64] ([fdo#112146]) -> [PASS][65] +3 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb4/igt@gem_exec_schedule@reorder-wide-bsd.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb3/igt@gem_exec_schedule@reorder-wide-bsd.html

  * igt@gem_exec_schedule@smoketest-bsd1:
    - shard-tglb:         [INCOMPLETE][66] ([i915#463] / [i915#472]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb2/igt@gem_exec_schedule@smoketest-bsd1.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb1/igt@gem_exec_schedule@smoketest-bsd1.html

  * igt@gem_exec_suspend@basic-s3:
    - shard-tglb:         [INCOMPLETE][68] ([fdo#111736] / [i915#460] / [i915#472]) -> [PASS][69]
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb6/igt@gem_exec_suspend@basic-s3.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb5/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-apl:          [TIMEOUT][70] ([fdo#112271] / [i915#530]) -> [PASS][71]
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-apl3/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-apl7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-iclb:         [FAIL][72] ([i915#520]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb8/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb3/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_sync@basic-all:
    - shard-tglb:         [INCOMPLETE][74] ([i915#470] / [i915#472]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb3/igt@gem_sync@basic-all.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb7/igt@gem_sync@basic-all.html

  * igt@gem_sync@basic-each:
    - shard-tglb:         [INCOMPLETE][76] ([i915#472] / [i915#707]) -> [PASS][77]
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb3/igt@gem_sync@basic-each.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb2/igt@gem_sync@basic-each.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-kbl:          [DMESG-WARN][78] ([i915#716]) -> [PASS][79]
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-kbl4/igt@gen9_exec_parse@allowed-single.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-kbl2/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-apl:          [FAIL][80] ([i915#39]) -> [PASS][81]
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-apl1/igt@i915_pm_rps@min-max-config-loaded.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-apl6/igt@i915_pm_rps@min-max-config-loaded.html

  * igt@kms_color@pipe-b-ctm-green-to-red:
    - shard-skl:          [DMESG-WARN][82] ([i915#109]) -> [PASS][83]
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl2/igt@kms_color@pipe-b-ctm-green-to-red.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl6/igt@kms_color@pipe-b-ctm-green-to-red.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-kbl:          [DMESG-WARN][84] ([i915#180]) -> [PASS][85] +5 similar issues
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-skl:          [INCOMPLETE][86] ([i915#221]) -> [PASS][87]
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl1/igt@kms_flip@flip-vs-suspend-interruptible.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl6/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-tglb:         [INCOMPLETE][88] ([i915#456] / [i915#460] / [i915#474]) -> [PASS][89]
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite:
    - shard-tglb:         [FAIL][90] ([i915#49]) -> [PASS][91] +1 similar issue
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
    - shard-skl:          [FAIL][92] ([fdo#108145]) -> [PASS][93]
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [FAIL][94] ([fdo#108145] / [i915#265]) -> [PASS][95]
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_suspend:
    - shard-iclb:         [SKIP][96] ([fdo#109441]) -> [PASS][97]
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb1/igt@kms_psr@psr2_suspend.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb2/igt@kms_psr@psr2_suspend.html

  * igt@kms_rotation_crc@multiplane-rotation:
    - shard-tglb:         [FAIL][98] ([i915#199]) -> [PASS][99] +2 similar issues
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb3/igt@kms_rotation_crc@multiplane-rotation.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb7/igt@kms_rotation_crc@multiplane-rotation.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-iclb:         [FAIL][100] ([i915#199]) -> [PASS][101] +2 similar issues
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb1/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb4/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@kms_setmode@basic:
    - shard-skl:          [FAIL][102] ([i915#31]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-skl10/igt@kms_setmode@basic.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-skl9/igt@kms_setmode@basic.html

  * igt@perf_pmu@busy-no-semaphores-vcs1:
    - shard-iclb:         [SKIP][104] ([fdo#112080]) -> [PASS][105] +11 similar issues
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb5/igt@perf_pmu@busy-no-semaphores-vcs1.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb1/igt@perf_pmu@busy-no-semaphores-vcs1.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [SKIP][106] ([fdo#109276]) -> [PASS][107] +14 similar issues
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb6/igt@prime_busy@hang-bsd2.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb1/igt@prime_busy@hang-bsd2.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv-switch:
    - shard-iclb:         [SKIP][108] ([fdo#109276] / [fdo#112080]) -> [FAIL][109] ([IGT#28])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-iclb5/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-iclb1/igt@gem_ctx_isolation@vcs1-nonpriv-switch.html

  * igt@gem_exec_create@forked:
    - shard-tglb:         [INCOMPLETE][110] ([fdo#108838] / [i915#472]) -> [INCOMPLETE][111] ([i915#472])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-tglb3/igt@gem_exec_create@forked.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-tglb9/igt@gem_exec_create@forked.html

  * igt@gem_tiled_blits@interruptible:
    - shard-hsw:          [FAIL][112] ([i915#818]) -> [FAIL][113] ([i915#694])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-hsw7/igt@gem_tiled_blits@interruptible.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-hsw7/igt@gem_tiled_blits@interruptible.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][114], [FAIL][115]) ([i915#716] / [i915#974]) -> [FAIL][116] ([i915#974])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-kbl2/igt@runner@aborted.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7721/shard-kbl4/igt@runner@aborted.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/shard-kbl2/igt@runner@aborted.html

  
  [IGT#28]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108838]: https://bugs.freedesktop.org/show_bug.cgi?id=108838
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [fdo#111606]: https://bugs.freedesktop.org/show_bug.cgi?id=111606
  [fdo#111677]: https://bugs.freedesktop.org/show_bug.cgi?id=111677
  [fdo#111736]: https://bugs.freedesktop.org/show_bug.cgi?id=111736
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#199]: https://gitlab.freedesktop.org/drm/intel/issues/199
  [i915#221]: https://gitlab.freedesktop.org/drm/intel/issues/221
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#39]: https://gitlab.freedesktop.org/drm/intel/issues/39
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#463]: https://gitlab.freedesktop.org/drm/intel/issues/463
  [i915#470]: https://gitlab.freedesktop.org/drm/intel/issues/470
  [i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472
  [i915#474]: https://gitlab.freedesktop.org/drm/intel/issues/474
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#490]: https://gitlab.freedesktop.org/drm/intel/issues/490
  [i915#520]: https://gitlab.freedesktop.org/drm/intel/issues/520
  [i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#707]: https://gitlab.freedesktop.org/drm/intel/issues/707
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818
  [i915#974]: https://gitlab.freedesktop.org/drm/intel/issues/974


Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7721 -> Patchwork_16058

  CI-20190529: 20190529
  CI_DRM_7721: 3a2436c56fcf2d133d701a112eb1e0dfce0b846d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5364: b7cb6ffdb65cbd233f5ddee2f2dabf97b34fa640 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_16058: c7678cf49f853d38faae7a7de3e2ee7837fbb689 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_16058/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Intel-gfx] [PATCH 2/6] drm/i915: Clear old hw.fb & co. from slave plane's state
  2020-01-10 18:32 ` [Intel-gfx] [PATCH 2/6] drm/i915: Clear old hw.fb & co. from slave plane's state Ville Syrjala
@ 2020-01-22 14:44   ` Maarten Lankhorst
  0 siblings, 0 replies; 17+ messages in thread
From: Maarten Lankhorst @ 2020-01-22 14:44 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Op 10-01-2020 om 19:32 schreef Ville Syrjala:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Let's do the intel_plane_copy_uapi_to_hw_state() before we bail out
> due to both old and new uapi.crtc being NULL. This will drop the
> reference to the old hw.fb for planes that are transitioning from
> being a slave plane to simply being disabled.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_atomic_plane.c | 6 ++----
>  drivers/gpu/drm/i915/display/intel_display.c      | 2 ++
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> index 3e97af682b1b..7c69b053005b 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> @@ -225,12 +225,9 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
>  					struct intel_plane_state *new_plane_state)
>  {
>  	struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
> -	const struct drm_framebuffer *fb;
> +	const struct drm_framebuffer *fb = new_plane_state->hw.fb;
>  	int ret;
>  
> -	intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state);
> -	fb = new_plane_state->hw.fb;
> -
>  	new_crtc_state->active_planes &= ~BIT(plane->id);
>  	new_crtc_state->nv12_planes &= ~BIT(plane->id);
>  	new_crtc_state->c8_planes &= ~BIT(plane->id);
> @@ -292,6 +289,7 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
>  	const struct intel_crtc_state *old_crtc_state;
>  	struct intel_crtc_state *new_crtc_state;
>  
> +	intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state);
>  	new_plane_state->uapi.visible = false;
>  	if (!crtc)
>  		return 0;
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index fafb67689dee..0a1f2564dea0 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16038,6 +16038,8 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
>  	new_plane_state->uapi.crtc_w = crtc_w;
>  	new_plane_state->uapi.crtc_h = crtc_h;
>  
> +	intel_plane_copy_uapi_to_hw_state(new_plane_state, new_plane_state);
> +
>  	ret = intel_plane_atomic_check_with_state(crtc_state, new_crtc_state,
>  						  old_plane_state, new_plane_state);
>  	if (ret)

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-01-22 14:44 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-10 18:32 [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Ville Syrjala
2020-01-10 18:32 ` [Intel-gfx] [PATCH 2/6] drm/i915: Clear old hw.fb & co. from slave plane's state Ville Syrjala
2020-01-22 14:44   ` Maarten Lankhorst
2020-01-10 18:32 ` [Intel-gfx] [PATCH 3/6] drm/i915: Stop looking at plane->state in intel_prepare_plane_fb() Ville Syrjala
2020-01-10 20:10   ` Chris Wilson
2020-01-10 18:32 ` [Intel-gfx] [PATCH 4/6] drm/i915: s/intel_state/state/ in intel_{prepare, cleanup}_plane_fb() Ville Syrjala
2020-01-10 20:12   ` Chris Wilson
2020-01-10 18:32 ` [Intel-gfx] [PATCH 5/6] drm/i915: Balance prepare_fb/cleanup_fb Ville Syrjala
2020-01-10 18:42   ` Chris Wilson
2020-01-10 18:32 ` [Intel-gfx] [PATCH 6/6] drm/i915: Cleanup properly if the implicit fence setup fails Ville Syrjala
2020-01-10 18:39   ` Chris Wilson
2020-01-10 18:54 ` [Intel-gfx] [PATCH 1/6] drm/i915: Make a copy of the ggtt view for slave plane Chris Wilson
2020-01-13 13:15   ` Ville Syrjälä
2020-01-13 13:22     ` Chris Wilson
2020-01-10 21:55 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/6] " Patchwork
2020-01-13 14:54 ` [Intel-gfx] [PATCH 1/6] " Juha-Pekka Heikkila
2020-01-14 17:07 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [1/6] " 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.