All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly()
@ 2019-12-13 19:52 Ville Syrjala
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 2/5] drm/i915: Nuke .post_pll_disable() for DDI platforms Ville Syrjala
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Ville Syrjala @ 2019-12-13 19:52 UTC (permalink / raw)
  To: intel-gfx

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

Remove the pointless vfunc detour for hsw_fdi_link_train()
and just call it directly. Also pass the encoder in so we
can nuke the silly encoder loop within.

Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_crt.c     |  2 +-
 drivers/gpu/drm/i915/display/intel_ddi.c     | 12 ++++--------
 drivers/gpu/drm/i915/display/intel_ddi.h     |  2 +-
 drivers/gpu/drm/i915/display/intel_display.c |  2 --
 4 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index 7a2d36905155..50624b8f064d 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -278,7 +278,7 @@ static void hsw_pre_enable_crt(struct intel_encoder *encoder,
 
 	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
 
-	dev_priv->display.fdi_link_train(crtc, crtc_state);
+	hsw_fdi_link_train(encoder, crtc_state);
 
 	intel_ddi_enable_pipe_clock(crtc_state);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 5b6f32517c75..94f8bc4cd335 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1107,18 +1107,14 @@ static u32 icl_pll_to_ddi_clk_sel(struct intel_encoder *encoder,
  * DDI A (which is used for eDP)
  */
 
-void hsw_fdi_link_train(struct intel_crtc *crtc,
+void hsw_fdi_link_train(struct intel_encoder *encoder,
 			const struct intel_crtc_state *crtc_state)
 {
-	struct drm_device *dev = crtc->base.dev;
-	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_encoder *encoder;
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
 	u32 temp, i, rx_ctl_val, ddi_pll_sel;
 
-	for_each_encoder_on_crtc(dev, &crtc->base, encoder) {
-		WARN_ON(encoder->type != INTEL_OUTPUT_ANALOG);
-		intel_prepare_dp_ddi_buffers(encoder, crtc_state);
-	}
+	intel_prepare_dp_ddi_buffers(encoder, crtc_state);
 
 	/* Set the FDI_RX_MISC pwrdn lanes and the 2 workarounds listed at the
 	 * mode set "sequence for CRT port" document:
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.h b/drivers/gpu/drm/i915/display/intel_ddi.h
index 19aeab1246ee..167c6579d972 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.h
+++ b/drivers/gpu/drm/i915/display/intel_ddi.h
@@ -22,7 +22,7 @@ struct intel_encoder;
 void intel_ddi_fdi_post_disable(struct intel_encoder *intel_encoder,
 				const struct intel_crtc_state *old_crtc_state,
 				const struct drm_connector_state *old_conn_state);
-void hsw_fdi_link_train(struct intel_crtc *crtc,
+void hsw_fdi_link_train(struct intel_encoder *encoder,
 			const struct intel_crtc_state *crtc_state);
 void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port);
 bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe *pipe);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 0f37f1d2026d..8aed67d2c105 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16673,8 +16673,6 @@ void intel_init_display_hooks(struct drm_i915_private *dev_priv)
 	} else if (IS_IVYBRIDGE(dev_priv)) {
 		/* FIXME: detect B0+ stepping and use auto training */
 		dev_priv->display.fdi_link_train = ivb_manual_fdi_link_train;
-	} else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
-		dev_priv->display.fdi_link_train = hsw_fdi_link_train;
 	}
 
 	if (INTEL_GEN(dev_priv) >= 9)
-- 
2.23.0

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

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

* [Intel-gfx] [PATCH 2/5] drm/i915: Nuke .post_pll_disable() for DDI platforms
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
@ 2019-12-13 19:52 ` Ville Syrjala
  2019-12-16 20:42   ` Souza, Jose
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 3/5] drm/i915: Pass old crtc state to skylake_scaler_disable() Ville Syrjala
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-12-13 19:52 UTC (permalink / raw)
  To: intel-gfx

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

HSW+ platforms call encoder .post_disable() and .post_pll_disable()
back to back. And since we don't even disable the PLL in between
let's just move everything into .post_disable().

intel_dp_mst does forward the .post_disable() call to intel_ddi at
the very end of its own .post_disable() hook, so this time MST
I shouldn't even break MST by accident.

Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_ddi.c     | 29 +++++++-------------
 drivers/gpu/drm/i915/display/intel_display.c |  2 --
 drivers/gpu/drm/i915/display/intel_dp_mst.c  | 15 ----------
 3 files changed, 10 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 94f8bc4cd335..cac0be47e500 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3856,6 +3856,9 @@ static void intel_ddi_post_disable(struct intel_encoder *encoder,
 				   const struct drm_connector_state *old_conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
+	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
 
 	/*
 	 * When called from DP MST code:
@@ -3879,6 +3882,13 @@ static void intel_ddi_post_disable(struct intel_encoder *encoder,
 
 	if (INTEL_GEN(dev_priv) >= 11)
 		icl_unmap_plls_to_ports(encoder);
+
+	if (intel_crtc_has_dp_encoder(old_crtc_state) || is_tc_port)
+		intel_display_power_put_unchecked(dev_priv,
+						  intel_ddi_main_link_aux_domain(dig_port));
+
+	if (is_tc_port)
+		intel_tc_port_put_link(dig_port);
 }
 
 void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
@@ -4191,24 +4201,6 @@ intel_ddi_pre_pll_enable(struct intel_encoder *encoder,
 						crtc_state->lane_lat_optim_mask);
 }
 
-static void
-intel_ddi_post_pll_disable(struct intel_encoder *encoder,
-			   const struct intel_crtc_state *crtc_state,
-			   const struct drm_connector_state *conn_state)
-{
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
-	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
-
-	if (intel_crtc_has_dp_encoder(crtc_state) || is_tc_port)
-		intel_display_power_put_unchecked(dev_priv,
-						  intel_ddi_main_link_aux_domain(dig_port));
-
-	if (is_tc_port)
-		intel_tc_port_put_link(dig_port);
-}
-
 static void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp)
 {
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
@@ -4795,7 +4787,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 	encoder->compute_config = intel_ddi_compute_config;
 	encoder->enable = intel_enable_ddi;
 	encoder->pre_pll_enable = intel_ddi_pre_pll_enable;
-	encoder->post_pll_disable = intel_ddi_post_pll_disable;
 	encoder->pre_enable = intel_ddi_pre_enable;
 	encoder->disable = intel_disable_ddi;
 	encoder->post_disable = intel_ddi_post_disable;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 8aed67d2c105..4adcd751384e 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -6767,8 +6767,6 @@ static void haswell_crtc_disable(struct intel_atomic_state *state,
 		ironlake_pfit_disable(old_crtc_state);
 
 	intel_encoders_post_disable(state, crtc);
-
-	intel_encoders_post_pll_disable(state, crtc);
 }
 
 static void i9xx_pfit_enable(const struct intel_crtc_state *crtc_state)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 926e49f449a6..8bdbb15799ee 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -286,20 +286,6 @@ static void intel_mst_pre_pll_enable_dp(struct intel_encoder *encoder,
 						    pipe_config, NULL);
 }
 
-static void intel_mst_post_pll_disable_dp(struct intel_encoder *encoder,
-					  const struct intel_crtc_state *old_crtc_state,
-					  const struct drm_connector_state *old_conn_state)
-{
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
-	struct intel_digital_port *intel_dig_port = intel_mst->primary;
-	struct intel_dp *intel_dp = &intel_dig_port->dp;
-
-	if (intel_dp->active_mst_links == 0)
-		intel_dig_port->base.post_pll_disable(&intel_dig_port->base,
-						      old_crtc_state,
-						      old_conn_state);
-}
-
 static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
 				    const struct intel_crtc_state *pipe_config,
 				    const struct drm_connector_state *conn_state)
@@ -656,7 +642,6 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
 	intel_encoder->disable = intel_mst_disable_dp;
 	intel_encoder->post_disable = intel_mst_post_disable_dp;
 	intel_encoder->pre_pll_enable = intel_mst_pre_pll_enable_dp;
-	intel_encoder->post_pll_disable = intel_mst_post_pll_disable_dp;
 	intel_encoder->pre_enable = intel_mst_pre_enable_dp;
 	intel_encoder->enable = intel_mst_enable_dp;
 	intel_encoder->get_hw_state = intel_dp_mst_enc_get_hw_state;
-- 
2.23.0

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

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

* [Intel-gfx] [PATCH 3/5] drm/i915: Pass old crtc state to skylake_scaler_disable()
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 2/5] drm/i915: Nuke .post_pll_disable() for DDI platforms Ville Syrjala
@ 2019-12-13 19:52 ` Ville Syrjala
  2019-12-16 22:01   ` Souza, Jose
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 4/5] drm/i915: Pass old crtc state to intel_crtc_vblank_off() Ville Syrjala
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-12-13 19:52 UTC (permalink / raw)
  To: intel-gfx

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

To make life easier in the future let's pass the old crtc state
to skylake_scaler_disable() just like we already do for
for its ancestor ironlake_pfit_disable().

Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 4adcd751384e..30f277aa228f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5769,8 +5769,9 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
 	return 0;
 }
 
-static void skylake_scaler_disable(struct intel_crtc *crtc)
+static void skylake_scaler_disable(const struct intel_crtc_state *old_crtc_state)
 {
+	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	int i;
 
 	for (i = 0; i < crtc->num_scalers; i++)
@@ -6762,7 +6763,7 @@ static void haswell_crtc_disable(struct intel_atomic_state *state,
 	intel_dsc_disable(old_crtc_state);
 
 	if (INTEL_GEN(dev_priv) >= 9)
-		skylake_scaler_disable(crtc);
+		skylake_scaler_disable(old_crtc_state);
 	else
 		ironlake_pfit_disable(old_crtc_state);
 
-- 
2.23.0

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

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

* [Intel-gfx] [PATCH 4/5] drm/i915: Pass old crtc state to intel_crtc_vblank_off()
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 2/5] drm/i915: Nuke .post_pll_disable() for DDI platforms Ville Syrjala
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 3/5] drm/i915: Pass old crtc state to skylake_scaler_disable() Ville Syrjala
@ 2019-12-13 19:52 ` Ville Syrjala
  2019-12-16 22:01   ` Souza, Jose
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 5/5] drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable() Ville Syrjala
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-12-13 19:52 UTC (permalink / raw)
  To: intel-gfx

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

To make life easier in the future let's pass the old crtc state
to intel_crtc_vblank_off() just like we already do for its
counterpart intel_crtc_vblank_on().

Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 30f277aa228f..df69e4cd4707 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -1825,8 +1825,10 @@ static void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
 	drm_crtc_vblank_on(&crtc->base);
 }
 
-static void intel_crtc_vblank_off(struct intel_crtc *crtc)
+static void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
 {
+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+
 	drm_crtc_vblank_off(&crtc->base);
 	assert_vblank_disabled(&crtc->base);
 }
@@ -6699,7 +6701,7 @@ static void ironlake_crtc_disable(struct intel_atomic_state *state,
 
 	intel_encoders_disable(state, crtc);
 
-	intel_crtc_vblank_off(crtc);
+	intel_crtc_vblank_off(old_crtc_state);
 
 	intel_disable_pipe(old_crtc_state);
 
@@ -6748,7 +6750,7 @@ static void haswell_crtc_disable(struct intel_atomic_state *state,
 
 	intel_encoders_disable(state, crtc);
 
-	intel_crtc_vblank_off(crtc);
+	intel_crtc_vblank_off(old_crtc_state);
 
 	/* XXX: Do the pipe assertions at the right place for BXT DSI. */
 	if (!transcoder_is_dsi(cpu_transcoder))
@@ -7113,7 +7115,7 @@ static void i9xx_crtc_disable(struct intel_atomic_state *state,
 
 	intel_encoders_disable(state, crtc);
 
-	intel_crtc_vblank_off(crtc);
+	intel_crtc_vblank_off(old_crtc_state);
 
 	intel_disable_pipe(old_crtc_state);
 
-- 
2.23.0

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

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

* [Intel-gfx] [PATCH 5/5] drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable()
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
                   ` (2 preceding siblings ...)
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 4/5] drm/i915: Pass old crtc state to intel_crtc_vblank_off() Ville Syrjala
@ 2019-12-13 19:52 ` Ville Syrjala
  2019-12-17 17:33   ` Souza, Jose
  2019-12-14  1:32 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjala @ 2019-12-13 19:52 UTC (permalink / raw)
  To: intel-gfx

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

Move all of haswell_crtc_disable() into the encoder
.post_disable() hooks. Now we're left with just
calling the .disable() and .post_disable() hooks
back to back.

I chose to move the code into the .post_disable() hook instead
of the .enable() hook as most of the sequence is currently
implemented in the .post_enable() hook.

We should collapse it all down to just one hook and then the
encoders can drive the modeset sequence fully. But that may
need some further refactoring as we currently call the
ddi .post_disable() hook from mst code and we can't just
replace that with a call to the ddi .disable() hook.

Should also follow up with similar treatment for the enable
sequence but let's start here where it's easier.

Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c       | 12 +++++
 drivers/gpu/drm/i915/display/intel_crt.c     |  8 +++
 drivers/gpu/drm/i915/display/intel_ddi.c     | 35 ++++++++++++
 drivers/gpu/drm/i915/display/intel_display.c | 57 +++-----------------
 drivers/gpu/drm/i915/display/intel_display.h |  4 ++
 drivers/gpu/drm/i915/display/intel_dp_mst.c  | 11 ++++
 drivers/gpu/drm/i915/display/vlv_dsi.c       | 10 +++-
 7 files changed, 86 insertions(+), 51 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 03aa92d317a2..006b1a297e6f 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -1251,6 +1251,17 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
 	gen11_dsi_disable_io_power(encoder);
 }
 
+static void gen11_dsi_post_disable(struct intel_encoder *encoder,
+				   const struct intel_crtc_state *old_crtc_state,
+				   const struct drm_connector_state *old_conn_state)
+{
+	intel_crtc_vblank_off(old_crtc_state);
+
+	intel_dsc_disable(old_crtc_state);
+
+	skylake_scaler_disable(old_crtc_state);
+}
+
 static enum drm_mode_status gen11_dsi_mode_valid(struct drm_connector *connector,
 						 struct drm_display_mode *mode)
 {
@@ -1697,6 +1708,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
 	encoder->pre_pll_enable = gen11_dsi_pre_pll_enable;
 	encoder->pre_enable = gen11_dsi_pre_enable;
 	encoder->disable = gen11_dsi_disable;
+	encoder->post_disable = gen11_dsi_post_disable;
 	encoder->port = port;
 	encoder->get_config = gen11_dsi_get_config;
 	encoder->update_pipe = intel_panel_update_backlight;
diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index 50624b8f064d..b2b1336ecdb6 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -241,6 +241,14 @@ static void hsw_post_disable_crt(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
+	intel_crtc_vblank_off(old_crtc_state);
+
+	intel_disable_pipe(old_crtc_state);
+
+	intel_ddi_disable_transcoder_func(old_crtc_state);
+
+	ironlake_pfit_disable(old_crtc_state);
+
 	intel_ddi_disable_pipe_clock(old_crtc_state);
 
 	pch_post_disable_crt(encoder, old_crtc_state, old_conn_state);
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index cac0be47e500..fa40ba7cbcad 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -3851,6 +3851,25 @@ static void intel_ddi_post_disable_hdmi(struct intel_encoder *encoder,
 	intel_dp_dual_mode_set_tmds_output(intel_hdmi, false);
 }
 
+static void icl_disable_transcoder_port_sync(const struct intel_crtc_state *old_crtc_state)
+{
+	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
+	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	i915_reg_t reg;
+	u32 trans_ddi_func_ctl2_val;
+
+	if (old_crtc_state->master_transcoder == INVALID_TRANSCODER)
+		return;
+
+	DRM_DEBUG_KMS("Disabling Transcoder Port Sync on Slave Transcoder %s\n",
+		      transcoder_name(old_crtc_state->cpu_transcoder));
+
+	reg = TRANS_DDI_FUNC_CTL2(old_crtc_state->cpu_transcoder);
+	trans_ddi_func_ctl2_val = ~(PORT_SYNC_MODE_ENABLE |
+				    PORT_SYNC_MODE_MASTER_SELECT_MASK);
+	I915_WRITE(reg, trans_ddi_func_ctl2_val);
+}
+
 static void intel_ddi_post_disable(struct intel_encoder *encoder,
 				   const struct intel_crtc_state *old_crtc_state,
 				   const struct drm_connector_state *old_conn_state)
@@ -3860,6 +3879,22 @@ static void intel_ddi_post_disable(struct intel_encoder *encoder,
 	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
 
+	intel_crtc_vblank_off(old_crtc_state);
+
+	intel_disable_pipe(old_crtc_state);
+
+	if (INTEL_GEN(dev_priv) >= 11)
+		icl_disable_transcoder_port_sync(old_crtc_state);
+
+	intel_ddi_disable_transcoder_func(old_crtc_state);
+
+	intel_dsc_disable(old_crtc_state);
+
+	if (INTEL_GEN(dev_priv) >= 9)
+		skylake_scaler_disable(old_crtc_state);
+	else
+		ironlake_pfit_disable(old_crtc_state);
+
 	/*
 	 * When called from DP MST code:
 	 * - old_conn_state will be NULL
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index df69e4cd4707..05502f1df3ad 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -167,7 +167,6 @@ static void chv_prepare_pll(struct intel_crtc *crtc,
 static void intel_crtc_init_scalers(struct intel_crtc *crtc,
 				    struct intel_crtc_state *crtc_state);
 static void skylake_pfit_enable(const struct intel_crtc_state *crtc_state);
-static void ironlake_pfit_disable(const struct intel_crtc_state *old_crtc_state);
 static void ironlake_pfit_enable(const struct intel_crtc_state *crtc_state);
 static void intel_modeset_setup_hw_state(struct drm_device *dev,
 					 struct drm_modeset_acquire_ctx *ctx);
@@ -1825,7 +1824,7 @@ static void intel_crtc_vblank_on(const struct intel_crtc_state *crtc_state)
 	drm_crtc_vblank_on(&crtc->base);
 }
 
-static void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
+void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 
@@ -1891,7 +1890,7 @@ static void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
 		intel_wait_for_pipe_scanline_moving(crtc);
 }
 
-static void intel_disable_pipe(const struct intel_crtc_state *old_crtc_state)
+void intel_disable_pipe(const struct intel_crtc_state *old_crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -4582,25 +4581,6 @@ static void icl_enable_trans_port_sync(const struct intel_crtc_state *crtc_state
 		   trans_ddi_func_ctl2_val);
 }
 
-static void icl_disable_transcoder_port_sync(const struct intel_crtc_state *old_crtc_state)
-{
-	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
-	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-	i915_reg_t reg;
-	u32 trans_ddi_func_ctl2_val;
-
-	if (old_crtc_state->master_transcoder == INVALID_TRANSCODER)
-		return;
-
-	DRM_DEBUG_KMS("Disabling Transcoder Port Sync on Slave Transcoder %s\n",
-		      transcoder_name(old_crtc_state->cpu_transcoder));
-
-	reg = TRANS_DDI_FUNC_CTL2(old_crtc_state->cpu_transcoder);
-	trans_ddi_func_ctl2_val = ~(PORT_SYNC_MODE_ENABLE |
-				    PORT_SYNC_MODE_MASTER_SELECT_MASK);
-	I915_WRITE(reg, trans_ddi_func_ctl2_val);
-}
-
 static void intel_fdi_normal_train(struct intel_crtc *crtc)
 {
 	struct drm_device *dev = crtc->base.dev;
@@ -5771,7 +5751,7 @@ static int skl_update_scaler_plane(struct intel_crtc_state *crtc_state,
 	return 0;
 }
 
-static void skylake_scaler_disable(const struct intel_crtc_state *old_crtc_state)
+void skylake_scaler_disable(const struct intel_crtc_state *old_crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	int i;
@@ -6668,7 +6648,7 @@ static void haswell_crtc_enable(struct intel_atomic_state *state,
 	}
 }
 
-static void ironlake_pfit_disable(const struct intel_crtc_state *old_crtc_state)
+void ironlake_pfit_disable(const struct intel_crtc_state *old_crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -6743,32 +6723,11 @@ static void ironlake_crtc_disable(struct intel_atomic_state *state,
 static void haswell_crtc_disable(struct intel_atomic_state *state,
 				 struct intel_crtc *crtc)
 {
-	const struct intel_crtc_state *old_crtc_state =
-		intel_atomic_get_old_crtc_state(state, crtc);
-	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
-	enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
-
+	/*
+	 * FIXME collapse everything to one hook.
+	 * Need care with mst->ddi interactions.
+	 */
 	intel_encoders_disable(state, crtc);
-
-	intel_crtc_vblank_off(old_crtc_state);
-
-	/* XXX: Do the pipe assertions at the right place for BXT DSI. */
-	if (!transcoder_is_dsi(cpu_transcoder))
-		intel_disable_pipe(old_crtc_state);
-
-	if (INTEL_GEN(dev_priv) >= 11)
-		icl_disable_transcoder_port_sync(old_crtc_state);
-
-	if (!transcoder_is_dsi(cpu_transcoder))
-		intel_ddi_disable_transcoder_func(old_crtc_state);
-
-	intel_dsc_disable(old_crtc_state);
-
-	if (INTEL_GEN(dev_priv) >= 9)
-		skylake_scaler_disable(old_crtc_state);
-	else
-		ironlake_pfit_disable(old_crtc_state);
-
 	intel_encoders_post_disable(state, crtc);
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 327376810f66..ff496cfbd4ab 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -485,6 +485,7 @@ enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port);
 bool is_trans_port_sync_mode(const struct intel_crtc_state *state);
 
 void intel_plane_destroy(struct drm_plane *plane);
+void intel_disable_pipe(const struct intel_crtc_state *old_crtc_state);
 void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe);
 void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe);
 enum pipe intel_crtc_pch_transcoder(struct intel_crtc *crtc);
@@ -518,6 +519,7 @@ enum tc_port intel_port_to_tc(struct drm_i915_private *dev_priv,
 int intel_get_pipe_from_crtc_id_ioctl(struct drm_device *dev, void *data,
 				      struct drm_file *file_priv);
 u32 intel_crtc_get_vblank_counter(struct intel_crtc *crtc);
+void intel_crtc_vblank_off(const struct intel_crtc_state *crtc_state);
 
 int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp);
 void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
@@ -576,6 +578,8 @@ void intel_crtc_arm_fifo_underrun(struct intel_crtc *crtc,
 
 u16 skl_scaler_calc_phase(int sub, int scale, bool chroma_center);
 int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state);
+void skylake_scaler_disable(const struct intel_crtc_state *old_crtc_state);
+void ironlake_pfit_disable(const struct intel_crtc_state *old_crtc_state);
 u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state,
 			const struct intel_plane_state *plane_state);
 u32 glk_plane_color_ctl_crtc(const struct intel_crtc_state *crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 8bdbb15799ee..7aa0975c33b7 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -241,6 +241,17 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
 	intel_dp->active_mst_links--;
 	last_mst_stream = intel_dp->active_mst_links == 0;
 
+	intel_crtc_vblank_off(old_crtc_state);
+
+	intel_disable_pipe(old_crtc_state);
+
+	intel_ddi_disable_transcoder_func(old_crtc_state);
+
+	if (INTEL_GEN(dev_priv) >= 9)
+		skylake_scaler_disable(old_crtc_state);
+	else
+		ironlake_pfit_disable(old_crtc_state);
+
 	/*
 	 * From TGL spec: "If multi-stream slave transcoder: Configure
 	 * Transcoder Clock Select to direct no clock to the transcoder"
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 8398a265b6a3..21e820299107 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -882,8 +882,8 @@ static void intel_dsi_clear_device_ready(struct intel_encoder *encoder)
 }
 
 static void intel_dsi_post_disable(struct intel_encoder *encoder,
-				   const struct intel_crtc_state *pipe_config,
-				   const struct drm_connector_state *conn_state)
+				   const struct intel_crtc_state *old_crtc_state,
+				   const struct drm_connector_state *old_conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
@@ -892,6 +892,12 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
 
 	DRM_DEBUG_KMS("\n");
 
+	if (IS_GEN9_LP(dev_priv)) {
+		intel_crtc_vblank_off(old_crtc_state);
+
+		skylake_scaler_disable(old_crtc_state);
+	}
+
 	if (is_vid_mode(intel_dsi)) {
 		for_each_dsi_port(port, intel_dsi->ports)
 			vlv_dsi_wait_for_fifo_empty(intel_dsi, port);
-- 
2.23.0

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

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

* [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly()
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
                   ` (3 preceding siblings ...)
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 5/5] drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable() Ville Syrjala
@ 2019-12-14  1:32 ` Patchwork
  2019-12-16 17:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2) Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-12-14  1:32 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly()
URL   : https://patchwork.freedesktop.org/series/70905/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7566 -> Patchwork_15755
====================================================

Summary
-------

  **FAILURE**

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

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_sync@basic-each:
    - fi-ivb-3770:        [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-ivb-3770/igt@gem_sync@basic-each.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-ivb-3770/igt@gem_sync@basic-each.html

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

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

### IGT changes ###

#### Possible fixes ####

  * igt@gem_close_race@basic-threads:
    - fi-byt-n2820:       [TIMEOUT][3] ([i915#816]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-byt-n2820/igt@gem_close_race@basic-threads.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-byt-n2820/igt@gem_close_race@basic-threads.html

  * igt@gem_exec_gttfill@basic:
    - {fi-tgl-u}:         [INCOMPLETE][5] ([fdo#111593]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-tgl-u/igt@gem_exec_gttfill@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-tgl-u/igt@gem_exec_gttfill@basic.html

  * igt@gem_sync@basic-all:
    - fi-tgl-y:           [INCOMPLETE][7] ([i915#470]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-tgl-y/igt@gem_sync@basic-all.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-tgl-y/igt@gem_sync@basic-all.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-skl-lmem:        [INCOMPLETE][9] ([i915#424]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html
    - fi-byt-j1900:       [DMESG-FAIL][11] ([i915#722]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-byt-j1900/igt@i915_selftest@live_gem_contexts.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-byt-j1900/igt@i915_selftest@live_gem_contexts.html
    - fi-hsw-peppy:       [INCOMPLETE][13] ([i915#694]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html

  * igt@i915_selftest@live_requests:
    - fi-hsw-4770:        [INCOMPLETE][15] ([i915#773]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-hsw-4770/igt@i915_selftest@live_requests.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-hsw-4770/igt@i915_selftest@live_requests.html

  
#### Warnings ####

  * igt@i915_selftest@live_blt:
    - fi-ivb-3770:        [DMESG-FAIL][17] ([i915#725]) -> [DMESG-FAIL][18] ([i915#770])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-ivb-3770/igt@i915_selftest@live_blt.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-ivb-3770/igt@i915_selftest@live_blt.html

  * igt@kms_busy@basic-flip-pipe-b:
    - fi-kbl-x1275:       [DMESG-WARN][19] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][20] ([i915#62] / [i915#92]) +7 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-kbl-x1275/igt@kms_busy@basic-flip-pipe-b.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][21] ([i915#62] / [i915#92]) -> [DMESG-WARN][22] ([i915#62] / [i915#92] / [i915#95]) +5 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7566/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15755/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

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

  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [fdo#111735]: https://bugs.freedesktop.org/show_bug.cgi?id=111735
  [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424
  [i915#470]: https://gitlab.freedesktop.org/drm/intel/issues/470
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#722]: https://gitlab.freedesktop.org/drm/intel/issues/722
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#770]: https://gitlab.freedesktop.org/drm/intel/issues/770
  [i915#773]: https://gitlab.freedesktop.org/drm/intel/issues/773
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


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

  Additional (1): fi-hsw-4770r 
  Missing    (8): fi-icl-1065g7 fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7566 -> Patchwork_15755

  CI-20190529: 20190529
  CI_DRM_7566: 87c99602f2beb1b0ee7bdb3310bf12133f4d3f7f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5349: 048f58513d8b8ec6bb307a939f0ac959bc0f0e10 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15755: cf6bd44c4929a539ec265aec10c4d4f2e7aa0ea4 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

cf6bd44c4929 drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable()
da190814956e drm/i915: Pass old crtc state to intel_crtc_vblank_off()
ab78a841dd21 drm/i915: Pass old crtc state to skylake_scaler_disable()
ae15e8065b5e drm/i915: Nuke .post_pll_disable() for DDI platforms
f09484ac540f drm/i915: Call hsw_fdi_link_train() directly()

== Logs ==

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

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

* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2)
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
                   ` (4 preceding siblings ...)
  2019-12-14  1:32 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() Patchwork
@ 2019-12-16 17:49 ` Patchwork
  2019-12-16 20:37 ` [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Souza, Jose
  2019-12-16 22:34 ` [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2) Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-12-16 17:49 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2)
URL   : https://patchwork.freedesktop.org/series/70905/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7574 -> Patchwork_15788
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [PASS][1] -> [DMESG-WARN][2] ([i915#44])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
#### Possible fixes ####

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

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [FAIL][5] ([i915#178]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [DMESG-FAIL][7] ([i915#725]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/fi-hsw-4770r/igt@i915_selftest@live_blt.html

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

  
#### Warnings ####

  * igt@kms_flip@basic-flip-vs-modeset:
    - fi-kbl-x1275:       [DMESG-WARN][11] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][12] ([i915#62] / [i915#92]) +5 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-modeset.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-modeset.html

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
    - fi-kbl-x1275:       [DMESG-WARN][13] ([i915#62] / [i915#92]) -> [DMESG-WARN][14] ([i915#62] / [i915#92] / [i915#95]) +2 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/fi-kbl-x1275/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/fi-kbl-x1275/igt@kms_pipe_crc_basic@hang-read-crc-pipe-a.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
  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [i915#178]: https://gitlab.freedesktop.org/drm/intel/issues/178
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#816]: https://gitlab.freedesktop.org/drm/intel/issues/816
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


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

  Additional (1): fi-hsw-4770 
  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7574 -> Patchwork_15788

  CI-20190529: 20190529
  CI_DRM_7574: 950244ca586c6f0efe243bf8c505c01ea5e579fa @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5349: 048f58513d8b8ec6bb307a939f0ac959bc0f0e10 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15788: 3ff0b7b16527049cb26d8260f396b54cd6e5a966 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

3ff0b7b16527 drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable()
4baf5a937d54 drm/i915: Pass old crtc state to intel_crtc_vblank_off()
6145a2f10995 drm/i915: Pass old crtc state to skylake_scaler_disable()
5df8a8696c1c drm/i915: Nuke .post_pll_disable() for DDI platforms
15c75f453649 drm/i915: Call hsw_fdi_link_train() directly()

== Logs ==

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

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

* Re: [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly()
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
                   ` (5 preceding siblings ...)
  2019-12-16 17:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2) Patchwork
@ 2019-12-16 20:37 ` Souza, Jose
  2019-12-16 20:50   ` Ville Syrjälä
  2019-12-16 22:34 ` [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2) Patchwork
  7 siblings, 1 reply; 15+ messages in thread
From: Souza, Jose @ 2019-12-16 20:37 UTC (permalink / raw)
  To: ville.syrjala, intel-gfx

On Fri, 2019-12-13 at 21:52 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Remove the pointless vfunc detour for hsw_fdi_link_train()
> and just call it directly. Also pass the encoder in so we
> can nuke the silly encoder loop within.
> 
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_crt.c     |  2 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c     | 12 ++++--------
>  drivers/gpu/drm/i915/display/intel_ddi.h     |  2 +-
>  drivers/gpu/drm/i915/display/intel_display.c |  2 --
>  4 files changed, 6 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c
> b/drivers/gpu/drm/i915/display/intel_crt.c
> index 7a2d36905155..50624b8f064d 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -278,7 +278,7 @@ static void hsw_pre_enable_crt(struct
> intel_encoder *encoder,
>  
>  	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
>  
> -	dev_priv->display.fdi_link_train(crtc, crtc_state);
> +	hsw_fdi_link_train(encoder, crtc_state);
>  
>  	intel_ddi_enable_pipe_clock(crtc_state);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 5b6f32517c75..94f8bc4cd335 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -1107,18 +1107,14 @@ static u32 icl_pll_to_ddi_clk_sel(struct
> intel_encoder *encoder,
>   * DDI A (which is used for eDP)
>   */
>  
> -void hsw_fdi_link_train(struct intel_crtc *crtc,
> +void hsw_fdi_link_train(struct intel_encoder *encoder,
>  			const struct intel_crtc_state *crtc_state)
>  {
> -	struct drm_device *dev = crtc->base.dev;
> -	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_encoder *encoder;
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>  	u32 temp, i, rx_ctl_val, ddi_pll_sel;
>  
> -	for_each_encoder_on_crtc(dev, &crtc->base, encoder) {
> -		WARN_ON(encoder->type != INTEL_OUTPUT_ANALOG);
> -		intel_prepare_dp_ddi_buffers(encoder, crtc_state);
> -	}
> +	intel_prepare_dp_ddi_buffers(encoder, crtc_state);
>  
>  	/* Set the FDI_RX_MISC pwrdn lanes and the 2 workarounds listed
> at the
>  	 * mode set "sequence for CRT port" document:
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.h
> b/drivers/gpu/drm/i915/display/intel_ddi.h
> index 19aeab1246ee..167c6579d972 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.h
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.h
> @@ -22,7 +22,7 @@ struct intel_encoder;
>  void intel_ddi_fdi_post_disable(struct intel_encoder *intel_encoder,
>  				const struct intel_crtc_state
> *old_crtc_state,
>  				const struct drm_connector_state
> *old_conn_state);
> -void hsw_fdi_link_train(struct intel_crtc *crtc,
> +void hsw_fdi_link_train(struct intel_encoder *encoder,
>  			const struct intel_crtc_state *crtc_state);
>  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port
> port);
>  bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe
> *pipe);
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 0f37f1d2026d..8aed67d2c105 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16673,8 +16673,6 @@ void intel_init_display_hooks(struct
> drm_i915_private *dev_priv)
>  	} else if (IS_IVYBRIDGE(dev_priv)) {
>  		/* FIXME: detect B0+ stepping and use auto training */
>  		dev_priv->display.fdi_link_train =
> ivb_manual_fdi_link_train;
> -	} else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
> -		dev_priv->display.fdi_link_train = hsw_fdi_link_train;

Just missing the chunk removing fdi_link_train from
drm_i915_display_funcs.

With that:

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

>  	}
>  
>  	if (INTEL_GEN(dev_priv) >= 9)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH 2/5] drm/i915: Nuke .post_pll_disable() for DDI platforms
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 2/5] drm/i915: Nuke .post_pll_disable() for DDI platforms Ville Syrjala
@ 2019-12-16 20:42   ` Souza, Jose
  0 siblings, 0 replies; 15+ messages in thread
From: Souza, Jose @ 2019-12-16 20:42 UTC (permalink / raw)
  To: ville.syrjala, intel-gfx

On Fri, 2019-12-13 at 21:52 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> HSW+ platforms call encoder .post_disable() and .post_pll_disable()
> back to back. And since we don't even disable the PLL in between
> let's just move everything into .post_disable().
> 
> intel_dp_mst does forward the .post_disable() call to intel_ddi at
> the very end of its own .post_disable() hook, so this time MST
> I shouldn't even break MST by accident.

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

> 
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c     | 29 +++++++-----------
> --
>  drivers/gpu/drm/i915/display/intel_display.c |  2 --
>  drivers/gpu/drm/i915/display/intel_dp_mst.c  | 15 ----------
>  3 files changed, 10 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 94f8bc4cd335..cac0be47e500 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3856,6 +3856,9 @@ static void intel_ddi_post_disable(struct
> intel_encoder *encoder,
>  				   const struct drm_connector_state
> *old_conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder-
> >base);
> +	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
> +	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
>  
>  	/*
>  	 * When called from DP MST code:
> @@ -3879,6 +3882,13 @@ static void intel_ddi_post_disable(struct
> intel_encoder *encoder,
>  
>  	if (INTEL_GEN(dev_priv) >= 11)
>  		icl_unmap_plls_to_ports(encoder);
> +
> +	if (intel_crtc_has_dp_encoder(old_crtc_state) || is_tc_port)
> +		intel_display_power_put_unchecked(dev_priv,
> +						  intel_ddi_main_link_a
> ux_domain(dig_port));
> +
> +	if (is_tc_port)
> +		intel_tc_port_put_link(dig_port);
>  }
>  
>  void intel_ddi_fdi_post_disable(struct intel_encoder *encoder,
> @@ -4191,24 +4201,6 @@ intel_ddi_pre_pll_enable(struct intel_encoder
> *encoder,
>  						crtc_state-
> >lane_lat_optim_mask);
>  }
>  
> -static void
> -intel_ddi_post_pll_disable(struct intel_encoder *encoder,
> -			   const struct intel_crtc_state *crtc_state,
> -			   const struct drm_connector_state
> *conn_state)
> -{
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder-
> >base);
> -	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
> -	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
> -
> -	if (intel_crtc_has_dp_encoder(crtc_state) || is_tc_port)
> -		intel_display_power_put_unchecked(dev_priv,
> -						  intel_ddi_main_link_a
> ux_domain(dig_port));
> -
> -	if (is_tc_port)
> -		intel_tc_port_put_link(dig_port);
> -}
> -
>  static void intel_ddi_prepare_link_retrain(struct intel_dp
> *intel_dp)
>  {
>  	struct intel_digital_port *intel_dig_port =
> dp_to_dig_port(intel_dp);
> @@ -4795,7 +4787,6 @@ void intel_ddi_init(struct drm_i915_private
> *dev_priv, enum port port)
>  	encoder->compute_config = intel_ddi_compute_config;
>  	encoder->enable = intel_enable_ddi;
>  	encoder->pre_pll_enable = intel_ddi_pre_pll_enable;
> -	encoder->post_pll_disable = intel_ddi_post_pll_disable;
>  	encoder->pre_enable = intel_ddi_pre_enable;
>  	encoder->disable = intel_disable_ddi;
>  	encoder->post_disable = intel_ddi_post_disable;
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 8aed67d2c105..4adcd751384e 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -6767,8 +6767,6 @@ static void haswell_crtc_disable(struct
> intel_atomic_state *state,
>  		ironlake_pfit_disable(old_crtc_state);
>  
>  	intel_encoders_post_disable(state, crtc);
> -
> -	intel_encoders_post_pll_disable(state, crtc);
>  }
>  
>  static void i9xx_pfit_enable(const struct intel_crtc_state
> *crtc_state)
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 926e49f449a6..8bdbb15799ee 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -286,20 +286,6 @@ static void intel_mst_pre_pll_enable_dp(struct
> intel_encoder *encoder,
>  						    pipe_config, NULL);
>  }
>  
> -static void intel_mst_post_pll_disable_dp(struct intel_encoder
> *encoder,
> -					  const struct intel_crtc_state
> *old_crtc_state,
> -					  const struct
> drm_connector_state *old_conn_state)
> -{
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder-
> >base);
> -	struct intel_digital_port *intel_dig_port = intel_mst->primary;
> -	struct intel_dp *intel_dp = &intel_dig_port->dp;
> -
> -	if (intel_dp->active_mst_links == 0)
> -		intel_dig_port->base.post_pll_disable(&intel_dig_port-
> >base,
> -						      old_crtc_state,
> -						      old_conn_state);
> -}
> -
>  static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
>  				    const struct intel_crtc_state
> *pipe_config,
>  				    const struct drm_connector_state
> *conn_state)
> @@ -656,7 +642,6 @@ intel_dp_create_fake_mst_encoder(struct
> intel_digital_port *intel_dig_port, enum
>  	intel_encoder->disable = intel_mst_disable_dp;
>  	intel_encoder->post_disable = intel_mst_post_disable_dp;
>  	intel_encoder->pre_pll_enable = intel_mst_pre_pll_enable_dp;
> -	intel_encoder->post_pll_disable =
> intel_mst_post_pll_disable_dp;
>  	intel_encoder->pre_enable = intel_mst_pre_enable_dp;
>  	intel_encoder->enable = intel_mst_enable_dp;
>  	intel_encoder->get_hw_state = intel_dp_mst_enc_get_hw_state;
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly()
  2019-12-16 20:37 ` [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Souza, Jose
@ 2019-12-16 20:50   ` Ville Syrjälä
  2019-12-16 22:10     ` Souza, Jose
  0 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjälä @ 2019-12-16 20:50 UTC (permalink / raw)
  To: Souza, Jose; +Cc: intel-gfx

On Mon, Dec 16, 2019 at 08:37:28PM +0000, Souza, Jose wrote:
> On Fri, 2019-12-13 at 21:52 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Remove the pointless vfunc detour for hsw_fdi_link_train()
> > and just call it directly. Also pass the encoder in so we
> > can nuke the silly encoder loop within.
> > 
> > Cc: José Roberto de Souza <jose.souza@intel.com>
> > Cc: Manasi Navare <manasi.d.navare@intel.com>
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_crt.c     |  2 +-
> >  drivers/gpu/drm/i915/display/intel_ddi.c     | 12 ++++--------
> >  drivers/gpu/drm/i915/display/intel_ddi.h     |  2 +-
> >  drivers/gpu/drm/i915/display/intel_display.c |  2 --
> >  4 files changed, 6 insertions(+), 12 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_crt.c
> > b/drivers/gpu/drm/i915/display/intel_crt.c
> > index 7a2d36905155..50624b8f064d 100644
> > --- a/drivers/gpu/drm/i915/display/intel_crt.c
> > +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> > @@ -278,7 +278,7 @@ static void hsw_pre_enable_crt(struct
> > intel_encoder *encoder,
> >  
> >  	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
> >  
> > -	dev_priv->display.fdi_link_train(crtc, crtc_state);
> > +	hsw_fdi_link_train(encoder, crtc_state);
> >  
> >  	intel_ddi_enable_pipe_clock(crtc_state);
> >  }
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index 5b6f32517c75..94f8bc4cd335 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -1107,18 +1107,14 @@ static u32 icl_pll_to_ddi_clk_sel(struct
> > intel_encoder *encoder,
> >   * DDI A (which is used for eDP)
> >   */
> >  
> > -void hsw_fdi_link_train(struct intel_crtc *crtc,
> > +void hsw_fdi_link_train(struct intel_encoder *encoder,
> >  			const struct intel_crtc_state *crtc_state)
> >  {
> > -	struct drm_device *dev = crtc->base.dev;
> > -	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	struct intel_encoder *encoder;
> > +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> >  	u32 temp, i, rx_ctl_val, ddi_pll_sel;
> >  
> > -	for_each_encoder_on_crtc(dev, &crtc->base, encoder) {
> > -		WARN_ON(encoder->type != INTEL_OUTPUT_ANALOG);
> > -		intel_prepare_dp_ddi_buffers(encoder, crtc_state);
> > -	}
> > +	intel_prepare_dp_ddi_buffers(encoder, crtc_state);
> >  
> >  	/* Set the FDI_RX_MISC pwrdn lanes and the 2 workarounds listed
> > at the
> >  	 * mode set "sequence for CRT port" document:
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.h
> > b/drivers/gpu/drm/i915/display/intel_ddi.h
> > index 19aeab1246ee..167c6579d972 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.h
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.h
> > @@ -22,7 +22,7 @@ struct intel_encoder;
> >  void intel_ddi_fdi_post_disable(struct intel_encoder *intel_encoder,
> >  				const struct intel_crtc_state
> > *old_crtc_state,
> >  				const struct drm_connector_state
> > *old_conn_state);
> > -void hsw_fdi_link_train(struct intel_crtc *crtc,
> > +void hsw_fdi_link_train(struct intel_encoder *encoder,
> >  			const struct intel_crtc_state *crtc_state);
> >  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port
> > port);
> >  bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe
> > *pipe);
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index 0f37f1d2026d..8aed67d2c105 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -16673,8 +16673,6 @@ void intel_init_display_hooks(struct
> > drm_i915_private *dev_priv)
> >  	} else if (IS_IVYBRIDGE(dev_priv)) {
> >  		/* FIXME: detect B0+ stepping and use auto training */
> >  		dev_priv->display.fdi_link_train =
> > ivb_manual_fdi_link_train;
> > -	} else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
> > -		dev_priv->display.fdi_link_train = hsw_fdi_link_train;
> 
> Just missing the chunk removing fdi_link_train from
> drm_i915_display_funcs.

Still need it for pre-hsw.

> 
> With that:
> 
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> 
> >  	}
> >  
> >  	if (INTEL_GEN(dev_priv) >= 9)

-- 
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] 15+ messages in thread

* Re: [Intel-gfx] [PATCH 3/5] drm/i915: Pass old crtc state to skylake_scaler_disable()
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 3/5] drm/i915: Pass old crtc state to skylake_scaler_disable() Ville Syrjala
@ 2019-12-16 22:01   ` Souza, Jose
  0 siblings, 0 replies; 15+ messages in thread
From: Souza, Jose @ 2019-12-16 22:01 UTC (permalink / raw)
  To: ville.syrjala, intel-gfx

On Fri, 2019-12-13 at 21:52 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> To make life easier in the future let's pass the old crtc state
> to skylake_scaler_disable() just like we already do for
> for its ancestor ironlake_pfit_disable().
> 

Okay this helps the last patch
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 4adcd751384e..30f277aa228f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -5769,8 +5769,9 @@ static int skl_update_scaler_plane(struct
> intel_crtc_state *crtc_state,
>  	return 0;
>  }
>  
> -static void skylake_scaler_disable(struct intel_crtc *crtc)
> +static void skylake_scaler_disable(const struct intel_crtc_state
> *old_crtc_state)
>  {
> +	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state-
> >uapi.crtc);
>  	int i;
>  
>  	for (i = 0; i < crtc->num_scalers; i++)
> @@ -6762,7 +6763,7 @@ static void haswell_crtc_disable(struct
> intel_atomic_state *state,
>  	intel_dsc_disable(old_crtc_state);
>  
>  	if (INTEL_GEN(dev_priv) >= 9)
> -		skylake_scaler_disable(crtc);
> +		skylake_scaler_disable(old_crtc_state);
>  	else
>  		ironlake_pfit_disable(old_crtc_state);
>  
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH 4/5] drm/i915: Pass old crtc state to intel_crtc_vblank_off()
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 4/5] drm/i915: Pass old crtc state to intel_crtc_vblank_off() Ville Syrjala
@ 2019-12-16 22:01   ` Souza, Jose
  0 siblings, 0 replies; 15+ messages in thread
From: Souza, Jose @ 2019-12-16 22:01 UTC (permalink / raw)
  To: ville.syrjala, intel-gfx

On Fri, 2019-12-13 at 21:52 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> To make life easier in the future let's pass the old crtc state
> to intel_crtc_vblank_off() just like we already do for its
> counterpart intel_crtc_vblank_on().

Okay this helps the last patch
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

> 
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 30f277aa228f..df69e4cd4707 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -1825,8 +1825,10 @@ static void intel_crtc_vblank_on(const struct
> intel_crtc_state *crtc_state)
>  	drm_crtc_vblank_on(&crtc->base);
>  }
>  
> -static void intel_crtc_vblank_off(struct intel_crtc *crtc)
> +static void intel_crtc_vblank_off(const struct intel_crtc_state
> *crtc_state)
>  {
> +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> +
>  	drm_crtc_vblank_off(&crtc->base);
>  	assert_vblank_disabled(&crtc->base);
>  }
> @@ -6699,7 +6701,7 @@ static void ironlake_crtc_disable(struct
> intel_atomic_state *state,
>  
>  	intel_encoders_disable(state, crtc);
>  
> -	intel_crtc_vblank_off(crtc);
> +	intel_crtc_vblank_off(old_crtc_state);
>  
>  	intel_disable_pipe(old_crtc_state);
>  
> @@ -6748,7 +6750,7 @@ static void haswell_crtc_disable(struct
> intel_atomic_state *state,
>  
>  	intel_encoders_disable(state, crtc);
>  
> -	intel_crtc_vblank_off(crtc);
> +	intel_crtc_vblank_off(old_crtc_state);
>  
>  	/* XXX: Do the pipe assertions at the right place for BXT DSI.
> */
>  	if (!transcoder_is_dsi(cpu_transcoder))
> @@ -7113,7 +7115,7 @@ static void i9xx_crtc_disable(struct
> intel_atomic_state *state,
>  
>  	intel_encoders_disable(state, crtc);
>  
> -	intel_crtc_vblank_off(crtc);
> +	intel_crtc_vblank_off(old_crtc_state);
>  
>  	intel_disable_pipe(old_crtc_state);
>  
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly()
  2019-12-16 20:50   ` Ville Syrjälä
@ 2019-12-16 22:10     ` Souza, Jose
  0 siblings, 0 replies; 15+ messages in thread
From: Souza, Jose @ 2019-12-16 22:10 UTC (permalink / raw)
  To: ville.syrjala; +Cc: intel-gfx

On Mon, 2019-12-16 at 22:50 +0200, Ville Syrjälä wrote:
> On Mon, Dec 16, 2019 at 08:37:28PM +0000, Souza, Jose wrote:
> > On Fri, 2019-12-13 at 21:52 +0200, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Remove the pointless vfunc detour for hsw_fdi_link_train()
> > > and just call it directly. Also pass the encoder in so we
> > > can nuke the silly encoder loop within.
> > > 
> > > Cc: José Roberto de Souza <jose.souza@intel.com>
> > > Cc: Manasi Navare <manasi.d.navare@intel.com>
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_crt.c     |  2 +-
> > >  drivers/gpu/drm/i915/display/intel_ddi.c     | 12 ++++--------
> > >  drivers/gpu/drm/i915/display/intel_ddi.h     |  2 +-
> > >  drivers/gpu/drm/i915/display/intel_display.c |  2 --
> > >  4 files changed, 6 insertions(+), 12 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_crt.c
> > > b/drivers/gpu/drm/i915/display/intel_crt.c
> > > index 7a2d36905155..50624b8f064d 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_crt.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> > > @@ -278,7 +278,7 @@ static void hsw_pre_enable_crt(struct
> > > intel_encoder *encoder,
> > >  
> > >  	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
> > >  
> > > -	dev_priv->display.fdi_link_train(crtc, crtc_state);
> > > +	hsw_fdi_link_train(encoder, crtc_state);
> > >  
> > >  	intel_ddi_enable_pipe_clock(crtc_state);
> > >  }
> > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> > > b/drivers/gpu/drm/i915/display/intel_ddi.c
> > > index 5b6f32517c75..94f8bc4cd335 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > > @@ -1107,18 +1107,14 @@ static u32 icl_pll_to_ddi_clk_sel(struct
> > > intel_encoder *encoder,
> > >   * DDI A (which is used for eDP)
> > >   */
> > >  
> > > -void hsw_fdi_link_train(struct intel_crtc *crtc,
> > > +void hsw_fdi_link_train(struct intel_encoder *encoder,
> > >  			const struct intel_crtc_state *crtc_state)
> > >  {
> > > -	struct drm_device *dev = crtc->base.dev;
> > > -	struct drm_i915_private *dev_priv = to_i915(dev);
> > > -	struct intel_encoder *encoder;
> > > +	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> > > +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> > >  	u32 temp, i, rx_ctl_val, ddi_pll_sel;
> > >  
> > > -	for_each_encoder_on_crtc(dev, &crtc->base, encoder) {
> > > -		WARN_ON(encoder->type != INTEL_OUTPUT_ANALOG);
> > > -		intel_prepare_dp_ddi_buffers(encoder, crtc_state);
> > > -	}
> > > +	intel_prepare_dp_ddi_buffers(encoder, crtc_state);
> > >  
> > >  	/* Set the FDI_RX_MISC pwrdn lanes and the 2 workarounds listed
> > > at the
> > >  	 * mode set "sequence for CRT port" document:
> > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.h
> > > b/drivers/gpu/drm/i915/display/intel_ddi.h
> > > index 19aeab1246ee..167c6579d972 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_ddi.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_ddi.h
> > > @@ -22,7 +22,7 @@ struct intel_encoder;
> > >  void intel_ddi_fdi_post_disable(struct intel_encoder
> > > *intel_encoder,
> > >  				const struct intel_crtc_state
> > > *old_crtc_state,
> > >  				const struct drm_connector_state
> > > *old_conn_state);
> > > -void hsw_fdi_link_train(struct intel_crtc *crtc,
> > > +void hsw_fdi_link_train(struct intel_encoder *encoder,
> > >  			const struct intel_crtc_state *crtc_state);
> > >  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port
> > > port);
> > >  bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum
> > > pipe
> > > *pipe);
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > index 0f37f1d2026d..8aed67d2c105 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -16673,8 +16673,6 @@ void intel_init_display_hooks(struct
> > > drm_i915_private *dev_priv)
> > >  	} else if (IS_IVYBRIDGE(dev_priv)) {
> > >  		/* FIXME: detect B0+ stepping and use auto training */
> > >  		dev_priv->display.fdi_link_train =
> > > ivb_manual_fdi_link_train;
> > > -	} else if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
> > > -		dev_priv->display.fdi_link_train = hsw_fdi_link_train;
> > 
> > Just missing the chunk removing fdi_link_train from
> > drm_i915_display_funcs.
> 
> Still need it for pre-hsw.

Damn, Eclipse search failed on me.
Indeed used by older platform.

> 
> > With that:
> > 
> > Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> > 
> > >  	}
> > >  
> > >  	if (INTEL_GEN(dev_priv) >= 9)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2)
  2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
                   ` (6 preceding siblings ...)
  2019-12-16 20:37 ` [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Souza, Jose
@ 2019-12-16 22:34 ` Patchwork
  7 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2019-12-16 22:34 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2)
URL   : https://patchwork.freedesktop.org/series/70905/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7574_full -> Patchwork_15788_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

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

### Piglit changes ###

#### Possible regressions ####

  * spec@glsl-1.30@execution@texelfetch@fs-texelfetch-isampler1darray (NEW):
    - {pig-hsw-4770r}:    NOTRUN -> [FAIL][1] +5 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/pig-hsw-4770r/spec@glsl-1.30@execution@texelfetch@fs-texelfetch-isampler1darray.html

  
New tests
---------

  New tests have been introduced between CI_DRM_7574_full and Patchwork_15788_full:

### New Piglit tests (6) ###

  * spec@arb_gpu_shader5@texturegather@vs-r-0-float-2drect:
    - Statuses : 1 fail(s)
    - Exec time: [1.77] s

  * spec@arb_gpu_shader5@texturegather@vs-rgba-1-float-cube:
    - Statuses : 1 fail(s)
    - Exec time: [1.79] s

  * spec@arb_stencil_texturing@draw:
    - Statuses : 1 fail(s)
    - Exec time: [0.10] s

  * spec@arb_vertex_attrib_64bit@execution@vs_in@vs-input-double_dvec2-double_dmat2_array2-position:
    - Statuses : 1 fail(s)
    - Exec time: [0.16] s

  * spec@glsl-1.30@execution@texelfetch@fs-texelfetch-isampler1darray:
    - Statuses : 1 fail(s)
    - Exec time: [5.15] s

  * spec@glsl-4.30@execution@built-in-functions@cs-any-bvec4-using-if:
    - Statuses : 1 fail(s)
    - Exec time: [4.03] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_persistence@vcs0-mixed-process:
    - shard-apl:          [PASS][2] -> [FAIL][3] ([i915#679])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-apl8/igt@gem_ctx_persistence@vcs0-mixed-process.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-apl2/igt@gem_ctx_persistence@vcs0-mixed-process.html

  * igt@gem_ctx_persistence@vcs1-cleanup:
    - shard-iclb:         [PASS][4] -> [SKIP][5] ([fdo#109276] / [fdo#112080])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-iclb1/igt@gem_ctx_persistence@vcs1-cleanup.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-iclb5/igt@gem_ctx_persistence@vcs1-cleanup.html

  * igt@gem_eio@in-flight-suspend:
    - shard-tglb:         [PASS][6] -> [INCOMPLETE][7] ([i915#456] / [i915#460] / [i915#534])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb6/igt@gem_eio@in-flight-suspend.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb1/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_basic@readonly-vcs1:
    - shard-iclb:         [PASS][8] -> [SKIP][9] ([fdo#112080]) +5 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-iclb1/igt@gem_exec_basic@readonly-vcs1.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-iclb5/igt@gem_exec_basic@readonly-vcs1.html

  * igt@gem_exec_gttfill@basic:
    - shard-tglb:         [PASS][10] -> [INCOMPLETE][11] ([fdo#111593])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb9/igt@gem_exec_gttfill@basic.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb6/igt@gem_exec_gttfill@basic.html

  * igt@gem_exec_schedule@fifo-bsd1:
    - shard-iclb:         [PASS][12] -> [SKIP][13] ([fdo#109276]) +4 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-iclb1/igt@gem_exec_schedule@fifo-bsd1.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-iclb5/igt@gem_exec_schedule@fifo-bsd1.html

  * igt@gem_exec_schedule@preempt-queue-chain-render:
    - shard-tglb:         [PASS][14] -> [INCOMPLETE][15] ([fdo#111606] / [fdo#111677])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb1/igt@gem_exec_schedule@preempt-queue-chain-render.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb6/igt@gem_exec_schedule@preempt-queue-chain-render.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
    - shard-iclb:         [PASS][16] -> [SKIP][17] ([fdo#112146]) +3 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-iclb8/igt@gem_exec_schedule@reorder-wide-bsd.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-iclb1/igt@gem_exec_schedule@reorder-wide-bsd.html

  * igt@gem_exec_schedule@smoketest-bsd2:
    - shard-tglb:         [PASS][18] -> [INCOMPLETE][19] ([i915#707])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb5/igt@gem_exec_schedule@smoketest-bsd2.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb4/igt@gem_exec_schedule@smoketest-bsd2.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          [PASS][20] -> [FAIL][21] ([i915#644])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-glk8/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-glk8/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_sync@basic-each:
    - shard-tglb:         [PASS][22] -> [INCOMPLETE][23] ([i915#472] / [i915#707])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb1/igt@gem_sync@basic-each.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb5/igt@gem_sync@basic-each.html

  * igt@gem_userptr_blits@sync-unmap-after-close:
    - shard-snb:          [PASS][24] -> [DMESG-WARN][25] ([fdo#111870])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-snb1/igt@gem_userptr_blits@sync-unmap-after-close.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-snb7/igt@gem_userptr_blits@sync-unmap-after-close.html

  * igt@gem_workarounds@suspend-resume:
    - shard-skl:          [PASS][26] -> [INCOMPLETE][27] ([i915#69]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl5/igt@gem_workarounds@suspend-resume.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl4/igt@gem_workarounds@suspend-resume.html

  * igt@i915_selftest@mock_sanitycheck:
    - shard-hsw:          [PASS][28] -> [DMESG-WARN][29] ([i915#747])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-hsw7/igt@i915_selftest@mock_sanitycheck.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-hsw6/igt@i915_selftest@mock_sanitycheck.html
    - shard-skl:          [PASS][30] -> [DMESG-WARN][31] ([i915#747])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl4/igt@i915_selftest@mock_sanitycheck.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl9/igt@i915_selftest@mock_sanitycheck.html

  * igt@kms_color@pipe-b-ctm-blue-to-red:
    - shard-skl:          [PASS][32] -> [DMESG-WARN][33] ([i915#109]) +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl2/igt@kms_color@pipe-b-ctm-blue-to-red.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl1/igt@kms_color@pipe-b-ctm-blue-to-red.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-rapid-movement:
    - shard-skl:          [PASS][34] -> [DMESG-WARN][35] ([i915#744])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl1/igt@kms_cursor_crc@pipe-a-cursor-64x64-rapid-movement.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl5/igt@kms_cursor_crc@pipe-a-cursor-64x64-rapid-movement.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x42-sliding:
    - shard-skl:          [PASS][36] -> [FAIL][37] ([i915#54]) +2 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl7/igt@kms_cursor_crc@pipe-c-cursor-128x42-sliding.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl10/igt@kms_cursor_crc@pipe-c-cursor-128x42-sliding.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-glk:          [PASS][38] -> [FAIL][39] ([i915#72])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-glk4/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-glk3/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-skl:          [PASS][40] -> [FAIL][41] ([IGT#5])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-skl:          [PASS][42] -> [INCOMPLETE][43] ([i915#221])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl5/igt@kms_flip@flip-vs-suspend.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl3/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [PASS][44] -> [DMESG-WARN][45] ([i915#180]) +5 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-kbl2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-skl:          [PASS][46] -> [INCOMPLETE][47] ([i915#648] / [i915#667])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl9/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl8/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html

  * igt@kms_plane@pixel-format-pipe-b-planes:
    - shard-kbl:          [PASS][48] -> [INCOMPLETE][49] ([fdo#103665] / [i915#648] / [i915#667])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-kbl4/igt@kms_plane@pixel-format-pipe-b-planes.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-kbl4/igt@kms_plane@pixel-format-pipe-b-planes.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-tglb:         [PASS][50] -> [INCOMPLETE][51] ([i915#456] / [i915#460])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-skl:          [PASS][52] -> [FAIL][53] ([fdo#108145])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl6/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl6/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][54] -> [SKIP][55] ([fdo#109441]) +1 similar issue
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-iclb5/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-tglb:         [PASS][56] -> [INCOMPLETE][57] ([i915#460])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb2/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb2/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@perf@enable-disable:
    - shard-hsw:          [PASS][58] -> [INCOMPLETE][59] ([i915#61])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-hsw5/igt@perf@enable-disable.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-hsw5/igt@perf@enable-disable.html

  
#### Possible fixes ####

  * igt@gem_ctx_persistence@vcs1-mixed-process:
    - shard-iclb:         [SKIP][60] ([fdo#109276] / [fdo#112080]) -> [PASS][61]
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-iclb5/igt@gem_ctx_persistence@vcs1-mixed-process.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-iclb1/igt@gem_ctx_persistence@vcs1-mixed-process.html

  * igt@gem_ctx_shared@q-smoketest-bsd:
    - shard-tglb:         [INCOMPLETE][62] ([i915#461]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb4/igt@gem_ctx_shared@q-smoketest-bsd.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb7/igt@gem_ctx_shared@q-smoketest-bsd.html

  * igt@gem_ctx_shared@q-smoketest-bsd1:
    - shard-tglb:         [INCOMPLETE][64] ([fdo#111735]) -> [PASS][65]
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb9/igt@gem_ctx_shared@q-smoketest-bsd1.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb2/igt@gem_ctx_shared@q-smoketest-bsd1.html

  * igt@gem_eio@hibernate:
    - shard-tglb:         [INCOMPLETE][66] ([i915#456]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb8/igt@gem_eio@hibernate.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb9/igt@gem_eio@hibernate.html

  * igt@gem_exec_schedule@preempt-queue-bsd2:
    - shard-iclb:         [SKIP][68] ([fdo#109276]) -> [PASS][69] +3 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-iclb5/igt@gem_exec_schedule@preempt-queue-bsd2.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd2.html

  * igt@gem_exec_schedule@preempt-queue-contexts-chain-vebox:
    - shard-tglb:         [INCOMPLETE][70] ([fdo#111606] / [fdo#111677]) -> [PASS][71]
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb6/igt@gem_exec_schedule@preempt-queue-contexts-chain-vebox.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb1/igt@gem_exec_schedule@preempt-queue-contexts-chain-vebox.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
    - shard-glk:          [TIMEOUT][72] ([i915#530]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-glk7/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-glk1/igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive.html

  * igt@gem_softpin@noreloc-s3:
    - shard-apl:          [DMESG-WARN][74] ([i915#180]) -> [PASS][75] +1 similar issue
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-apl8/igt@gem_softpin@noreloc-s3.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-apl8/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [DMESG-WARN][76] ([fdo#111870]) -> [PASS][77] +1 similar issue
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-snb4/igt@gem_userptr_blits@sync-unmap-cycles.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-snb6/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-kbl:          [DMESG-WARN][78] ([i915#180]) -> [PASS][79] +3 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-kbl2/igt@i915_suspend@fence-restore-untiled.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-kbl4/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen:
    - shard-hsw:          [DMESG-WARN][80] ([IGT#6]) -> [PASS][81] +1 similar issue
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-hsw6/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-hsw4/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding:
    - shard-apl:          [DMESG-WARN][82] ([IGT#6]) -> [PASS][83]
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-apl3/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-apl7/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-hsw:          [DMESG-FAIL][84] ([i915#407] / [i915#44]) -> [PASS][85]
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-hsw5/igt@kms_flip@2x-dpms-vs-vblank-race.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-hsw1/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_flip@plain-flip-fb-recreate:
    - shard-hsw:          [DMESG-FAIL][86] ([i915#44]) -> [PASS][87]
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-hsw5/igt@kms_flip@plain-flip-fb-recreate.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-hsw7/igt@kms_flip@plain-flip-fb-recreate.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite:
    - shard-tglb:         [FAIL][88] ([i915#49]) -> [PASS][89] +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-suspend:
    - shard-tglb:         [INCOMPLETE][90] ([i915#456] / [i915#460] / [i915#474]) -> [PASS][91]
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html

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

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [FAIL][94] ([fdo#108145] / [i915#265]) -> [PASS][95]
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl3/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl7/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@perf@create-destroy-userspace-config:
    - shard-hsw:          [INCOMPLETE][96] ([i915#61]) -> [PASS][97]
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-hsw6/igt@perf@create-destroy-userspace-config.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-hsw1/igt@perf@create-destroy-userspace-config.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs2-s3:
    - shard-tglb:         [SKIP][98] ([fdo#111912] / [fdo#112080]) -> [SKIP][99] ([fdo#112080])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb7/igt@gem_ctx_isolation@vcs2-s3.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb9/igt@gem_ctx_isolation@vcs2-s3.html

  * igt@gem_tiled_blits@interruptible:
    - shard-hsw:          [FAIL][100] ([i915#832]) -> [FAIL][101] ([i915#818])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-hsw6/igt@gem_tiled_blits@interruptible.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-hsw1/igt@gem_tiled_blits@interruptible.html

  * igt@i915_pm_rps@waitboost:
    - shard-tglb:         [FAIL][102] ([i915#39]) -> [FAIL][103] ([i915#413])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-tglb5/igt@i915_pm_rps@waitboost.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-tglb5/igt@i915_pm_rps@waitboost.html

  * igt@kms_plane@pixel-format-pipe-b-planes:
    - shard-skl:          [INCOMPLETE][104] ([fdo#112347] / [fdo#112391] / [i915#648] / [i915#667]) -> [INCOMPLETE][105] ([fdo#112347] / [i915#648] / [i915#667]) +1 similar issue
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7574/shard-skl9/igt@kms_plane@pixel-format-pipe-b-planes.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15788/shard-skl10/igt@kms_plane@pixel-format-pipe-b-planes.html

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

  [IGT#5]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/5
  [IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [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#111735]: https://bugs.freedesktop.org/show_bug.cgi?id=111735
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#111912]: https://bugs.freedesktop.org/show_bug.cgi?id=111912
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112347]: https://bugs.freedesktop.org/show_bug.cgi?id=112347
  [fdo#112391]: https://bugs.freedesktop.org/show_bug.cgi?id=112391
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#221]: https://gitlab.freedesktop.org/drm/intel/issues/221
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#39]: https://gitlab.freedesktop.org/drm/intel/issues/39
  [i915#407]: https://gitlab.freedesktop.org/drm/intel/issues/407
  [i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
  [i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#461]: https://gitlab.freedesktop.org/drm/intel/issues/461
  [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#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#534]: https://gitlab.freedesktop.org/drm/intel/issues/534
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#648]: https://gitlab.freedesktop.org/drm/intel/issues/648
  [i915#667]: https://gitlab.freedesktop.org/drm/intel/issues/667
  [i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#707]: https://gitlab.freedesktop.org/drm/intel/issues/707
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
  [i915#744]: https://gitlab.freedesktop.org/drm/intel/issues/744
  [i915#747]: https://gitlab.freedesktop.org/drm/intel/issues/747
  [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818
  [i915#832]: https://gitlab.freedesktop.org/drm/intel/issues/832


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

  Additional (1): pig-hsw-4770r 


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

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7574 -> Patchwork_15788

  CI-20190529: 20190529
  CI_DRM_7574: 950244ca586c6f0efe243bf8c505c01ea5e579fa @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5349: 048f58513d8b8ec6bb307a939f0ac959bc0f0e10 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15788: 3ff0b7b16527049cb26d8260f396b54cd6e5a966 @ 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_15788/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH 5/5] drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable()
  2019-12-13 19:52 ` [Intel-gfx] [PATCH 5/5] drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable() Ville Syrjala
@ 2019-12-17 17:33   ` Souza, Jose
  0 siblings, 0 replies; 15+ messages in thread
From: Souza, Jose @ 2019-12-17 17:33 UTC (permalink / raw)
  To: ville.syrjala, intel-gfx

On Fri, 2019-12-13 at 21:52 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Move all of haswell_crtc_disable() into the encoder
> .post_disable() hooks. Now we're left with just
> calling the .disable() and .post_disable() hooks
> back to back.
> 
> I chose to move the code into the .post_disable() hook instead
> of the .enable() hook as most of the sequence is currently

s/.enable()/.disable()

> implemented in the .post_enable() hook.
> 

s/post_enable()/.post_disable()

> We should collapse it all down to just one hook and then the
> encoders can drive the modeset sequence fully. But that may
> need some further refactoring as we currently call the
> ddi .post_disable() hook from mst code and we can't just
> replace that with a call to the ddi .disable() hook.
> 
> Should also follow up with similar treatment for the enable
> sequence but let's start here where it's easier.

Pretty good change, removed the feature checks from
haswell_crtc_disable() and moved to the right place.

With this changes I can do what you asked and move the code in
intel_dp_mst_post_trans_disabled() to intel_mst_post_disable_dp().

With the typos above fixed:

Reviewed-by: José Roberto de Souza <jose.souza@intel.com>

Thanks

> 
> Cc: José Roberto de Souza <jose.souza@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/icl_dsi.c       | 12 +++++
>  drivers/gpu/drm/i915/display/intel_crt.c     |  8 +++
>  drivers/gpu/drm/i915/display/intel_ddi.c     | 35 ++++++++++++
>  drivers/gpu/drm/i915/display/intel_display.c | 57 +++---------------
> --
>  drivers/gpu/drm/i915/display/intel_display.h |  4 ++
>  drivers/gpu/drm/i915/display/intel_dp_mst.c  | 11 ++++
>  drivers/gpu/drm/i915/display/vlv_dsi.c       | 10 +++-
>  7 files changed, 86 insertions(+), 51 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c
> b/drivers/gpu/drm/i915/display/icl_dsi.c
> index 03aa92d317a2..006b1a297e6f 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -1251,6 +1251,17 @@ static void gen11_dsi_disable(struct
> intel_encoder *encoder,
>  	gen11_dsi_disable_io_power(encoder);
>  }
>  
> +static void gen11_dsi_post_disable(struct intel_encoder *encoder,
> +				   const struct intel_crtc_state
> *old_crtc_state,
> +				   const struct drm_connector_state
> *old_conn_state)
> +{
> +	intel_crtc_vblank_off(old_crtc_state);
> +
> +	intel_dsc_disable(old_crtc_state);
> +
> +	skylake_scaler_disable(old_crtc_state);
> +}
> +
>  static enum drm_mode_status gen11_dsi_mode_valid(struct
> drm_connector *connector,
>  						 struct
> drm_display_mode *mode)
>  {
> @@ -1697,6 +1708,7 @@ void icl_dsi_init(struct drm_i915_private
> *dev_priv)
>  	encoder->pre_pll_enable = gen11_dsi_pre_pll_enable;
>  	encoder->pre_enable = gen11_dsi_pre_enable;
>  	encoder->disable = gen11_dsi_disable;
> +	encoder->post_disable = gen11_dsi_post_disable;
>  	encoder->port = port;
>  	encoder->get_config = gen11_dsi_get_config;
>  	encoder->update_pipe = intel_panel_update_backlight;
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c
> b/drivers/gpu/drm/i915/display/intel_crt.c
> index 50624b8f064d..b2b1336ecdb6 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -241,6 +241,14 @@ static void hsw_post_disable_crt(struct
> intel_encoder *encoder,
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  
> +	intel_crtc_vblank_off(old_crtc_state);
> +
> +	intel_disable_pipe(old_crtc_state);
> +
> +	intel_ddi_disable_transcoder_func(old_crtc_state);
> +
> +	ironlake_pfit_disable(old_crtc_state);
> +
>  	intel_ddi_disable_pipe_clock(old_crtc_state);
>  
>  	pch_post_disable_crt(encoder, old_crtc_state, old_conn_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index cac0be47e500..fa40ba7cbcad 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -3851,6 +3851,25 @@ static void intel_ddi_post_disable_hdmi(struct
> intel_encoder *encoder,
>  	intel_dp_dual_mode_set_tmds_output(intel_hdmi, false);
>  }
>  
> +static void icl_disable_transcoder_port_sync(const struct
> intel_crtc_state *old_crtc_state)
> +{
> +	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state-
> >uapi.crtc);
> +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	i915_reg_t reg;
> +	u32 trans_ddi_func_ctl2_val;
> +
> +	if (old_crtc_state->master_transcoder == INVALID_TRANSCODER)
> +		return;
> +
> +	DRM_DEBUG_KMS("Disabling Transcoder Port Sync on Slave
> Transcoder %s\n",
> +		      transcoder_name(old_crtc_state->cpu_transcoder));
> +
> +	reg = TRANS_DDI_FUNC_CTL2(old_crtc_state->cpu_transcoder);
> +	trans_ddi_func_ctl2_val = ~(PORT_SYNC_MODE_ENABLE |
> +				    PORT_SYNC_MODE_MASTER_SELECT_MASK);
> +	I915_WRITE(reg, trans_ddi_func_ctl2_val);
> +}
> +
>  static void intel_ddi_post_disable(struct intel_encoder *encoder,
>  				   const struct intel_crtc_state
> *old_crtc_state,
>  				   const struct drm_connector_state
> *old_conn_state)
> @@ -3860,6 +3879,22 @@ static void intel_ddi_post_disable(struct
> intel_encoder *encoder,
>  	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
>  	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
>  
> +	intel_crtc_vblank_off(old_crtc_state);
> +
> +	intel_disable_pipe(old_crtc_state);
> +
> +	if (INTEL_GEN(dev_priv) >= 11)
> +		icl_disable_transcoder_port_sync(old_crtc_state);
> +
> +	intel_ddi_disable_transcoder_func(old_crtc_state);
> +
> +	intel_dsc_disable(old_crtc_state);
> +
> +	if (INTEL_GEN(dev_priv) >= 9)
> +		skylake_scaler_disable(old_crtc_state);
> +	else
> +		ironlake_pfit_disable(old_crtc_state);
> +
>  	/*
>  	 * When called from DP MST code:
>  	 * - old_conn_state will be NULL
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index df69e4cd4707..05502f1df3ad 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -167,7 +167,6 @@ static void chv_prepare_pll(struct intel_crtc
> *crtc,
>  static void intel_crtc_init_scalers(struct intel_crtc *crtc,
>  				    struct intel_crtc_state
> *crtc_state);
>  static void skylake_pfit_enable(const struct intel_crtc_state
> *crtc_state);
> -static void ironlake_pfit_disable(const struct intel_crtc_state
> *old_crtc_state);
>  static void ironlake_pfit_enable(const struct intel_crtc_state
> *crtc_state);
>  static void intel_modeset_setup_hw_state(struct drm_device *dev,
>  					 struct drm_modeset_acquire_ctx
> *ctx);
> @@ -1825,7 +1824,7 @@ static void intel_crtc_vblank_on(const struct
> intel_crtc_state *crtc_state)
>  	drm_crtc_vblank_on(&crtc->base);
>  }
>  
> -static void intel_crtc_vblank_off(const struct intel_crtc_state
> *crtc_state)
> +void intel_crtc_vblank_off(const struct intel_crtc_state
> *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  
> @@ -1891,7 +1890,7 @@ static void intel_enable_pipe(const struct
> intel_crtc_state *new_crtc_state)
>  		intel_wait_for_pipe_scanline_moving(crtc);
>  }
>  
> -static void intel_disable_pipe(const struct intel_crtc_state
> *old_crtc_state)
> +void intel_disable_pipe(const struct intel_crtc_state
> *old_crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state-
> >uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> @@ -4582,25 +4581,6 @@ static void icl_enable_trans_port_sync(const
> struct intel_crtc_state *crtc_state
>  		   trans_ddi_func_ctl2_val);
>  }
>  
> -static void icl_disable_transcoder_port_sync(const struct
> intel_crtc_state *old_crtc_state)
> -{
> -	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state-
> >uapi.crtc);
> -	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> -	i915_reg_t reg;
> -	u32 trans_ddi_func_ctl2_val;
> -
> -	if (old_crtc_state->master_transcoder == INVALID_TRANSCODER)
> -		return;
> -
> -	DRM_DEBUG_KMS("Disabling Transcoder Port Sync on Slave
> Transcoder %s\n",
> -		      transcoder_name(old_crtc_state->cpu_transcoder));
> -
> -	reg = TRANS_DDI_FUNC_CTL2(old_crtc_state->cpu_transcoder);
> -	trans_ddi_func_ctl2_val = ~(PORT_SYNC_MODE_ENABLE |
> -				    PORT_SYNC_MODE_MASTER_SELECT_MASK);
> -	I915_WRITE(reg, trans_ddi_func_ctl2_val);
> -}
> -
>  static void intel_fdi_normal_train(struct intel_crtc *crtc)
>  {
>  	struct drm_device *dev = crtc->base.dev;
> @@ -5771,7 +5751,7 @@ static int skl_update_scaler_plane(struct
> intel_crtc_state *crtc_state,
>  	return 0;
>  }
>  
> -static void skylake_scaler_disable(const struct intel_crtc_state
> *old_crtc_state)
> +void skylake_scaler_disable(const struct intel_crtc_state
> *old_crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state-
> >uapi.crtc);
>  	int i;
> @@ -6668,7 +6648,7 @@ static void haswell_crtc_enable(struct
> intel_atomic_state *state,
>  	}
>  }
>  
> -static void ironlake_pfit_disable(const struct intel_crtc_state
> *old_crtc_state)
> +void ironlake_pfit_disable(const struct intel_crtc_state
> *old_crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state-
> >uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> @@ -6743,32 +6723,11 @@ static void ironlake_crtc_disable(struct
> intel_atomic_state *state,
>  static void haswell_crtc_disable(struct intel_atomic_state *state,
>  				 struct intel_crtc *crtc)
>  {
> -	const struct intel_crtc_state *old_crtc_state =
> -		intel_atomic_get_old_crtc_state(state, crtc);
> -	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> -	enum transcoder cpu_transcoder = old_crtc_state-
> >cpu_transcoder;
> -
> +	/*
> +	 * FIXME collapse everything to one hook.
> +	 * Need care with mst->ddi interactions.
> +	 */
>  	intel_encoders_disable(state, crtc);
> -
> -	intel_crtc_vblank_off(old_crtc_state);
> -
> -	/* XXX: Do the pipe assertions at the right place for BXT DSI.
> */
> -	if (!transcoder_is_dsi(cpu_transcoder))
> -		intel_disable_pipe(old_crtc_state);
> -
> -	if (INTEL_GEN(dev_priv) >= 11)
> -		icl_disable_transcoder_port_sync(old_crtc_state);
> -
> -	if (!transcoder_is_dsi(cpu_transcoder))
> -		intel_ddi_disable_transcoder_func(old_crtc_state);
> -
> -	intel_dsc_disable(old_crtc_state);
> -
> -	if (INTEL_GEN(dev_priv) >= 9)
> -		skylake_scaler_disable(old_crtc_state);
> -	else
> -		ironlake_pfit_disable(old_crtc_state);
> -
>  	intel_encoders_post_disable(state, crtc);
>  }
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display.h
> b/drivers/gpu/drm/i915/display/intel_display.h
> index 327376810f66..ff496cfbd4ab 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.h
> +++ b/drivers/gpu/drm/i915/display/intel_display.h
> @@ -485,6 +485,7 @@ enum phy intel_port_to_phy(struct
> drm_i915_private *i915, enum port port);
>  bool is_trans_port_sync_mode(const struct intel_crtc_state *state);
>  
>  void intel_plane_destroy(struct drm_plane *plane);
> +void intel_disable_pipe(const struct intel_crtc_state
> *old_crtc_state);
>  void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe
> pipe);
>  void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe
> pipe);
>  enum pipe intel_crtc_pch_transcoder(struct intel_crtc *crtc);
> @@ -518,6 +519,7 @@ enum tc_port intel_port_to_tc(struct
> drm_i915_private *dev_priv,
>  int intel_get_pipe_from_crtc_id_ioctl(struct drm_device *dev, void
> *data,
>  				      struct drm_file *file_priv);
>  u32 intel_crtc_get_vblank_counter(struct intel_crtc *crtc);
> +void intel_crtc_vblank_off(const struct intel_crtc_state
> *crtc_state);
>  
>  int ironlake_get_lanes_required(int target_clock, int link_bw, int
> bpp);
>  void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
> @@ -576,6 +578,8 @@ void intel_crtc_arm_fifo_underrun(struct
> intel_crtc *crtc,
>  
>  u16 skl_scaler_calc_phase(int sub, int scale, bool chroma_center);
>  int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state);
> +void skylake_scaler_disable(const struct intel_crtc_state
> *old_crtc_state);
> +void ironlake_pfit_disable(const struct intel_crtc_state
> *old_crtc_state);
>  u32 glk_plane_color_ctl(const struct intel_crtc_state *crtc_state,
>  			const struct intel_plane_state *plane_state);
>  u32 glk_plane_color_ctl_crtc(const struct intel_crtc_state
> *crtc_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 8bdbb15799ee..7aa0975c33b7 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -241,6 +241,17 @@ static void intel_mst_post_disable_dp(struct
> intel_encoder *encoder,
>  	intel_dp->active_mst_links--;
>  	last_mst_stream = intel_dp->active_mst_links == 0;
>  
> +	intel_crtc_vblank_off(old_crtc_state);
> +
> +	intel_disable_pipe(old_crtc_state);
> +
> +	intel_ddi_disable_transcoder_func(old_crtc_state);
> +
> +	if (INTEL_GEN(dev_priv) >= 9)
> +		skylake_scaler_disable(old_crtc_state);
> +	else
> +		ironlake_pfit_disable(old_crtc_state);
> +
>  	/*
>  	 * From TGL spec: "If multi-stream slave transcoder: Configure
>  	 * Transcoder Clock Select to direct no clock to the
> transcoder"
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c
> b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 8398a265b6a3..21e820299107 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -882,8 +882,8 @@ static void intel_dsi_clear_device_ready(struct
> intel_encoder *encoder)
>  }
>  
>  static void intel_dsi_post_disable(struct intel_encoder *encoder,
> -				   const struct intel_crtc_state
> *pipe_config,
> -				   const struct drm_connector_state
> *conn_state)
> +				   const struct intel_crtc_state
> *old_crtc_state,
> +				   const struct drm_connector_state
> *old_conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> @@ -892,6 +892,12 @@ static void intel_dsi_post_disable(struct
> intel_encoder *encoder,
>  
>  	DRM_DEBUG_KMS("\n");
>  
> +	if (IS_GEN9_LP(dev_priv)) {
> +		intel_crtc_vblank_off(old_crtc_state);
> +
> +		skylake_scaler_disable(old_crtc_state);
> +	}
> +
>  	if (is_vid_mode(intel_dsi)) {
>  		for_each_dsi_port(port, intel_dsi->ports)
>  			vlv_dsi_wait_for_fifo_empty(intel_dsi, port);
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2019-12-17 17:33 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-13 19:52 [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Ville Syrjala
2019-12-13 19:52 ` [Intel-gfx] [PATCH 2/5] drm/i915: Nuke .post_pll_disable() for DDI platforms Ville Syrjala
2019-12-16 20:42   ` Souza, Jose
2019-12-13 19:52 ` [Intel-gfx] [PATCH 3/5] drm/i915: Pass old crtc state to skylake_scaler_disable() Ville Syrjala
2019-12-16 22:01   ` Souza, Jose
2019-12-13 19:52 ` [Intel-gfx] [PATCH 4/5] drm/i915: Pass old crtc state to intel_crtc_vblank_off() Ville Syrjala
2019-12-16 22:01   ` Souza, Jose
2019-12-13 19:52 ` [Intel-gfx] [PATCH 5/5] drm/i915: Move stuff from haswell_crtc_disable() into encoder .post_disable() Ville Syrjala
2019-12-17 17:33   ` Souza, Jose
2019-12-14  1:32 ` [Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() Patchwork
2019-12-16 17:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2) Patchwork
2019-12-16 20:37 ` [Intel-gfx] [PATCH 1/5] drm/i915: Call hsw_fdi_link_train() directly() Souza, Jose
2019-12-16 20:50   ` Ville Syrjälä
2019-12-16 22:10     ` Souza, Jose
2019-12-16 22:34 ` [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Call hsw_fdi_link_train() directly() (rev2) 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.