All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH] drm/i915/mst: re-enable link training failure fallback for DP MST
@ 2022-03-07 19:36 Jani Nikula
  2022-03-07 20:48 ` Ville Syrjälä
  2022-03-08 11:45 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
  0 siblings, 2 replies; 5+ messages in thread
From: Jani Nikula @ 2022-03-07 19:36 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula, Nikola Cornij

Commit 80a8cecf62a5 ("drm/i915/dp_mst: Disable link training fallback on
MST links") disabled link training failure fallback for DP MST due to
the MST manager using the DPCD directly, and generally being ignorant
about the possibility of downgrading link parameters. See the commit for
further details.

Since then, the max_lane_count and max_link_rate members have been added
to struct drm_dp_mst_topology_mgr in commit 98025a62cb00 ("drm/dp_mst:
Use Extended Base Receiver Capability DPCD space") and refined in
follow-up work.

The members perhaps aren't intended for changing the parameters during
the lifetime of the manager, as they're supposed to be passed to
drm_dp_mst_topology_mgr_init(). However, the members are only ever used
in drm_dp_mst_topology_mgr_set_mst(), and there seems to be nothing to
prevent us from adjusting them *before* enabling MST. The wouldn't have
an effect if modified while MST is enabled. This is not necessarily
pretty, though.

Cc: Nikola Cornij <nikola.cornij@amd.com>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

---

This is *untested*. I don't see why it wouldn't work, though... this
should allow us to downgrade the link to from 128b/132b to 8b/10b if the
former fails.

Thoughts? In particular, any objections for messing with the topology
manager members directly? Any chance it'll make refactoring the MST code
more difficult?
---
 drivers/gpu/drm/i915/display/intel_dp.c     | 42 ++++++++++-----------
 drivers/gpu/drm/i915/display/intel_dp_mst.c |  5 ++-
 2 files changed, 23 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 619546441eae..2fad3104b40e 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -600,15 +600,6 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
 	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
 	int index;
 
-	/*
-	 * TODO: Enable fallback on MST links once MST link compute can handle
-	 * the fallback params.
-	 */
-	if (intel_dp->is_mst) {
-		drm_err(&i915->drm, "Link Training Unsuccessful\n");
-		return -1;
-	}
-
 	if (intel_dp_is_edp(intel_dp) && !intel_dp->use_max_params) {
 		drm_dbg_kms(&i915->drm,
 			    "Retrying Link training for eDP with max parameters\n");
@@ -2785,6 +2776,8 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
 	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
 	struct intel_encoder *encoder =
 		&dp_to_dig_port(intel_dp)->base;
+	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
+
 	bool sink_can_mst = drm_dp_read_mst_cap(&intel_dp->aux, intel_dp->dpcd);
 
 	drm_dbg_kms(&i915->drm,
@@ -2800,8 +2793,17 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
 	intel_dp->is_mst = sink_can_mst &&
 		i915->params.enable_dp_mst;
 
-	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
-					intel_dp->is_mst);
+	/*
+	 * Set the source max lane count and link rate using the possibly
+	 * limited values due to failed link training.
+	 *
+	 * This is a bit hackish, as the values are supposed to be passed to
+	 * drm_dp_mst_topology_mgr_init().
+	 */
+	mgr->max_lane_count = intel_dp->max_link_lane_count;
+	mgr->max_link_rate = intel_dp->max_link_rate;
+
+	drm_dp_mst_topology_mgr_set_mst(mgr, intel_dp->is_mst);
 }
 
 static bool
@@ -4472,23 +4474,19 @@ intel_dp_detect(struct drm_connector *connector,
 		goto out;
 	}
 
-	/* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
-	if (DISPLAY_VER(dev_priv) >= 11)
-		intel_dp_get_dsc_sink_cap(intel_dp);
-
-	intel_dp_configure_mst(intel_dp);
-
-	/*
-	 * TODO: Reset link params when switching to MST mode, until MST
-	 * supports link training fallback params.
-	 */
-	if (intel_dp->reset_link_params || intel_dp->is_mst) {
+	if (intel_dp->reset_link_params) {
 		intel_dp_reset_max_link_params(intel_dp);
 		intel_dp->reset_link_params = false;
 	}
 
 	intel_dp_print_rates(intel_dp);
 
+	/* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
+	if (DISPLAY_VER(dev_priv) >= 11)
+		intel_dp_get_dsc_sink_cap(intel_dp);
+
+	intel_dp_configure_mst(intel_dp);
+
 	if (intel_dp->is_mst) {
 		/*
 		 * If we are in MST mode then this connector
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index e30e698aa684..442dbd0ed201 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -151,8 +151,9 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder,
 			intel_conn_state->force_audio == HDMI_AUDIO_ON;
 
 	/*
-	 * for MST we always configure max link bw - the spec doesn't
-	 * seem to suggest we should do otherwise.
+	 * For MST we always configure max link bw - the spec doesn't seem to
+	 * suggest we should do otherwise. The values may be reduced due to link
+	 * training failures, however.
 	 */
 	limits.min_rate =
 	limits.max_rate = intel_dp_max_link_rate(intel_dp);
-- 
2.30.2


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

* Re: [Intel-gfx] [PATCH] drm/i915/mst: re-enable link training failure fallback for DP MST
  2022-03-07 19:36 [Intel-gfx] [PATCH] drm/i915/mst: re-enable link training failure fallback for DP MST Jani Nikula
@ 2022-03-07 20:48 ` Ville Syrjälä
  2022-03-07 20:56   ` Lyude Paul
  2022-03-08 12:14   ` Jani Nikula
  2022-03-08 11:45 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
  1 sibling, 2 replies; 5+ messages in thread
From: Ville Syrjälä @ 2022-03-07 20:48 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, Nikola Cornij

On Mon, Mar 07, 2022 at 09:36:57PM +0200, Jani Nikula wrote:
> Commit 80a8cecf62a5 ("drm/i915/dp_mst: Disable link training fallback on
> MST links") disabled link training failure fallback for DP MST due to
> the MST manager using the DPCD directly, and generally being ignorant
> about the possibility of downgrading link parameters. See the commit for
> further details.
> 
> Since then, the max_lane_count and max_link_rate members have been added
> to struct drm_dp_mst_topology_mgr in commit 98025a62cb00 ("drm/dp_mst:
> Use Extended Base Receiver Capability DPCD space") and refined in
> follow-up work.
> 
> The members perhaps aren't intended for changing the parameters during
> the lifetime of the manager, as they're supposed to be passed to
> drm_dp_mst_topology_mgr_init(). However, the members are only ever used
> in drm_dp_mst_topology_mgr_set_mst(), and there seems to be nothing to
> prevent us from adjusting them *before* enabling MST. The wouldn't have
> an effect if modified while MST is enabled. This is not necessarily
> pretty, though.
> 
> Cc: Nikola Cornij <nikola.cornij@amd.com>
> Cc: Lyude Paul <lyude@redhat.com>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> ---
> 
> This is *untested*. I don't see why it wouldn't work, though...

I don't think we have the required stuff to force a modeset on all
the streams when the link params change. And the bad link status
property + uevent stuff is only hooked up to the SST connector
AFAICS.

The other major thing missing is a way to reduce the bpp/etc. of
all the streams to make more room on the link if we have
insufficient bandwidth. And the more we start to reduce the bw
the more we're going to hit that and fail the modesets. We already
ran into regressions due to this when I tried to enable deep color
for MST.

> this
> should allow us to downgrade the link to from 128b/132b to 8b/10b if the
> former fails.
> 
> Thoughts? In particular, any objections for messing with the topology
> manager members directly? Any chance it'll make refactoring the MST code
> more difficult?
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c     | 42 ++++++++++-----------
>  drivers/gpu/drm/i915/display/intel_dp_mst.c |  5 ++-
>  2 files changed, 23 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 619546441eae..2fad3104b40e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -600,15 +600,6 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
>  	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
>  	int index;
>  
> -	/*
> -	 * TODO: Enable fallback on MST links once MST link compute can handle
> -	 * the fallback params.
> -	 */
> -	if (intel_dp->is_mst) {
> -		drm_err(&i915->drm, "Link Training Unsuccessful\n");
> -		return -1;
> -	}
> -
>  	if (intel_dp_is_edp(intel_dp) && !intel_dp->use_max_params) {
>  		drm_dbg_kms(&i915->drm,
>  			    "Retrying Link training for eDP with max parameters\n");
> @@ -2785,6 +2776,8 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
>  	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
>  	struct intel_encoder *encoder =
>  		&dp_to_dig_port(intel_dp)->base;
> +	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
> +
>  	bool sink_can_mst = drm_dp_read_mst_cap(&intel_dp->aux, intel_dp->dpcd);
>  
>  	drm_dbg_kms(&i915->drm,
> @@ -2800,8 +2793,17 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
>  	intel_dp->is_mst = sink_can_mst &&
>  		i915->params.enable_dp_mst;
>  
> -	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
> -					intel_dp->is_mst);
> +	/*
> +	 * Set the source max lane count and link rate using the possibly
> +	 * limited values due to failed link training.
> +	 *
> +	 * This is a bit hackish, as the values are supposed to be passed to
> +	 * drm_dp_mst_topology_mgr_init().
> +	 */
> +	mgr->max_lane_count = intel_dp->max_link_lane_count;
> +	mgr->max_link_rate = intel_dp->max_link_rate;
> +
> +	drm_dp_mst_topology_mgr_set_mst(mgr, intel_dp->is_mst);
>  }
>  
>  static bool
> @@ -4472,23 +4474,19 @@ intel_dp_detect(struct drm_connector *connector,
>  		goto out;
>  	}
>  
> -	/* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
> -	if (DISPLAY_VER(dev_priv) >= 11)
> -		intel_dp_get_dsc_sink_cap(intel_dp);
> -
> -	intel_dp_configure_mst(intel_dp);
> -
> -	/*
> -	 * TODO: Reset link params when switching to MST mode, until MST
> -	 * supports link training fallback params.
> -	 */
> -	if (intel_dp->reset_link_params || intel_dp->is_mst) {
> +	if (intel_dp->reset_link_params) {
>  		intel_dp_reset_max_link_params(intel_dp);
>  		intel_dp->reset_link_params = false;
>  	}
>  
>  	intel_dp_print_rates(intel_dp);
>  
> +	/* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
> +	if (DISPLAY_VER(dev_priv) >= 11)
> +		intel_dp_get_dsc_sink_cap(intel_dp);
> +
> +	intel_dp_configure_mst(intel_dp);
> +
>  	if (intel_dp->is_mst) {
>  		/*
>  		 * If we are in MST mode then this connector
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index e30e698aa684..442dbd0ed201 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -151,8 +151,9 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder,
>  			intel_conn_state->force_audio == HDMI_AUDIO_ON;
>  
>  	/*
> -	 * for MST we always configure max link bw - the spec doesn't
> -	 * seem to suggest we should do otherwise.
> +	 * For MST we always configure max link bw - the spec doesn't seem to
> +	 * suggest we should do otherwise. The values may be reduced due to link
> +	 * training failures, however.
>  	 */
>  	limits.min_rate =
>  	limits.max_rate = intel_dp_max_link_rate(intel_dp);
> -- 
> 2.30.2

-- 
Ville Syrjälä
Intel

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

* Re: [Intel-gfx] [PATCH] drm/i915/mst: re-enable link training failure fallback for DP MST
  2022-03-07 20:48 ` Ville Syrjälä
@ 2022-03-07 20:56   ` Lyude Paul
  2022-03-08 12:14   ` Jani Nikula
  1 sibling, 0 replies; 5+ messages in thread
From: Lyude Paul @ 2022-03-07 20:56 UTC (permalink / raw)
  To: Ville Syrjälä, Jani Nikula; +Cc: intel-gfx, Nikola Cornij

On Mon, 2022-03-07 at 22:48 +0200, Ville Syrjälä wrote:
> On Mon, Mar 07, 2022 at 09:36:57PM +0200, Jani Nikula wrote:
> > Commit 80a8cecf62a5 ("drm/i915/dp_mst: Disable link training fallback on
> > MST links") disabled link training failure fallback for DP MST due to
> > the MST manager using the DPCD directly, and generally being ignorant
> > about the possibility of downgrading link parameters. See the commit for
> > further details.
> > 
> > Since then, the max_lane_count and max_link_rate members have been added
> > to struct drm_dp_mst_topology_mgr in commit 98025a62cb00 ("drm/dp_mst:
> > Use Extended Base Receiver Capability DPCD space") and refined in
> > follow-up work.
> > 
> > The members perhaps aren't intended for changing the parameters during
> > the lifetime of the manager, as they're supposed to be passed to
> > drm_dp_mst_topology_mgr_init(). However, the members are only ever used
> > in drm_dp_mst_topology_mgr_set_mst(), and there seems to be nothing to
> > prevent us from adjusting them *before* enabling MST. The wouldn't have
> > an effect if modified while MST is enabled. This is not necessarily
> > pretty, though.
> > 
> > Cc: Nikola Cornij <nikola.cornij@amd.com>
> > Cc: Lyude Paul <lyude@redhat.com>
> > Cc: Imre Deak <imre.deak@intel.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: Uma Shankar <uma.shankar@intel.com>
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > 
> > ---
> > 
> > This is *untested*. I don't see why it wouldn't work, though...
> 
> I don't think we have the required stuff to force a modeset on all
> the streams when the link params change. And the bad link status
> property + uevent stuff is only hooked up to the SST connector
> AFAICS.
> 
> The other major thing missing is a way to reduce the bpp/etc. of
> all the streams to make more room on the link if we have
> insufficient bandwidth. And the more we start to reduce the bw
> the more we're going to hit that and fail the modesets. We already
> ran into regressions due to this when I tried to enable deep color
> for MST.

Yeah, this is why I have been trying to move stuff into the atomic state
because it will make stuff like this a LOT easier. And to be honest, I think
pretty much all of the bandwidth related info in the MST mgr that isn't in
atomic is a hack at this point (I'm definitely not accepting adding any more
props into mgr now). We'll probably also want to consider maybe having a more
complicated link_status API for MST (I was originally going to use the
link_status prop we already have, but I've been realizing that might cause a
lot of problems when initially introducing it since fixing MST link status
errors will likely require disabling all sinks on the link - which userspace
won't understand).

Unfortunately now that I'm back to working on that, I'm stuck on trying to
wrap my head around adjusting amdgpu for these changes <<. I have a WIP branch
with other drivers adjusted if anyone is interested in looking:

https://gitlab.freedesktop.org/lyudess/linux/-/commits/wip/mst-atomic-only-v1

Haven't actually tried it yet on any hardware though

> 
> > this
> > should allow us to downgrade the link to from 128b/132b to 8b/10b if the
> > former fails.
> > 
> > Thoughts? In particular, any objections for messing with the topology
> > manager members directly? Any chance it'll make refactoring the MST code
> > more difficult?
> > ---
> >  drivers/gpu/drm/i915/display/intel_dp.c     | 42 ++++++++++-----------
> >  drivers/gpu/drm/i915/display/intel_dp_mst.c |  5 ++-
> >  2 files changed, 23 insertions(+), 24 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> > b/drivers/gpu/drm/i915/display/intel_dp.c
> > index 619546441eae..2fad3104b40e 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > @@ -600,15 +600,6 @@ int intel_dp_get_link_train_fallback_values(struct
> > intel_dp *intel_dp,
> >         struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> >         int index;
> >  
> > -       /*
> > -        * TODO: Enable fallback on MST links once MST link compute can
> > handle
> > -        * the fallback params.
> > -        */
> > -       if (intel_dp->is_mst) {
> > -               drm_err(&i915->drm, "Link Training Unsuccessful\n");
> > -               return -1;
> > -       }
> > -
> >         if (intel_dp_is_edp(intel_dp) && !intel_dp->use_max_params) {
> >                 drm_dbg_kms(&i915->drm,
> >                             "Retrying Link training for eDP with max
> > parameters\n");
> > @@ -2785,6 +2776,8 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
> >         struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> >         struct intel_encoder *encoder =
> >                 &dp_to_dig_port(intel_dp)->base;
> > +       struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
> > +
> >         bool sink_can_mst = drm_dp_read_mst_cap(&intel_dp->aux, intel_dp-
> > >dpcd);
> >  
> >         drm_dbg_kms(&i915->drm,
> > @@ -2800,8 +2793,17 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
> >         intel_dp->is_mst = sink_can_mst &&
> >                 i915->params.enable_dp_mst;
> >  
> > -       drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
> > -                                       intel_dp->is_mst);
> > +       /*
> > +        * Set the source max lane count and link rate using the possibly
> > +        * limited values due to failed link training.
> > +        *
> > +        * This is a bit hackish, as the values are supposed to be passed
> > to
> > +        * drm_dp_mst_topology_mgr_init().
> > +        */
> > +       mgr->max_lane_count = intel_dp->max_link_lane_count;
> > +       mgr->max_link_rate = intel_dp->max_link_rate;
> > +
> > +       drm_dp_mst_topology_mgr_set_mst(mgr, intel_dp->is_mst);
> >  }
> >  
> >  static bool
> > @@ -4472,23 +4474,19 @@ intel_dp_detect(struct drm_connector *connector,
> >                 goto out;
> >         }
> >  
> > -       /* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
> > -       if (DISPLAY_VER(dev_priv) >= 11)
> > -               intel_dp_get_dsc_sink_cap(intel_dp);
> > -
> > -       intel_dp_configure_mst(intel_dp);
> > -
> > -       /*
> > -        * TODO: Reset link params when switching to MST mode, until MST
> > -        * supports link training fallback params.
> > -        */
> > -       if (intel_dp->reset_link_params || intel_dp->is_mst) {
> > +       if (intel_dp->reset_link_params) {
> >                 intel_dp_reset_max_link_params(intel_dp);
> >                 intel_dp->reset_link_params = false;
> >         }
> >  
> >         intel_dp_print_rates(intel_dp);
> >  
> > +       /* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
> > +       if (DISPLAY_VER(dev_priv) >= 11)
> > +               intel_dp_get_dsc_sink_cap(intel_dp);
> > +
> > +       intel_dp_configure_mst(intel_dp);
> > +
> >         if (intel_dp->is_mst) {
> >                 /*
> >                  * If we are in MST mode then this connector
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index e30e698aa684..442dbd0ed201 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -151,8 +151,9 @@ static int intel_dp_mst_compute_config(struct
> > intel_encoder *encoder,
> >                         intel_conn_state->force_audio == HDMI_AUDIO_ON;
> >  
> >         /*
> > -        * for MST we always configure max link bw - the spec doesn't
> > -        * seem to suggest we should do otherwise.
> > +        * For MST we always configure max link bw - the spec doesn't seem
> > to
> > +        * suggest we should do otherwise. The values may be reduced due
> > to link
> > +        * training failures, however.
> >          */
> >         limits.min_rate =
> >         limits.max_rate = intel_dp_max_link_rate(intel_dp);
> > -- 
> > 2.30.2
> 

-- 
Cheers,
 Lyude Paul (she/her)
 Software Engineer at Red Hat


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

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/mst: re-enable link training failure fallback for DP MST
  2022-03-07 19:36 [Intel-gfx] [PATCH] drm/i915/mst: re-enable link training failure fallback for DP MST Jani Nikula
  2022-03-07 20:48 ` Ville Syrjälä
@ 2022-03-08 11:45 ` Patchwork
  1 sibling, 0 replies; 5+ messages in thread
From: Patchwork @ 2022-03-08 11:45 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 23325 bytes --]

== Series Details ==

Series: drm/i915/mst: re-enable link training failure fallback for DP MST
URL   : https://patchwork.freedesktop.org/series/101119/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_11334 -> Patchwork_22504
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (44 -> 46)
------------------------------

  Additional (6): fi-cml-u2 fi-skl-guc fi-icl-u2 fi-pnv-d510 bat-jsl-2 fi-bsw-nick 
  Missing    (4): fi-kbl-soraka fi-bsw-cyan fi-bdw-samus bat-dg1-5 

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

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

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live@requests:
    - {bat-rpls-2}:       [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/bat-rpls-2/igt@i915_selftest@live@requests.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/bat-rpls-2/igt@i915_selftest@live@requests.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@semaphore:
    - fi-hsw-4770:        NOTRUN -> [SKIP][3] ([fdo#109271] / [fdo#109315]) +17 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-hsw-4770/igt@amdgpu/amd_basic@semaphore.html

  * igt@amdgpu/amd_cs_nop@fork-gfx0:
    - fi-icl-u2:          NOTRUN -> [SKIP][4] ([fdo#109315]) +17 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-icl-u2/igt@amdgpu/amd_cs_nop@fork-gfx0.html

  * igt@amdgpu/amd_cs_nop@sync-compute0:
    - fi-cml-u2:          NOTRUN -> [SKIP][5] ([fdo#109315]) +17 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@amdgpu/amd_cs_nop@sync-compute0.html

  * igt@gem_exec_fence@basic-busy@bcs0:
    - fi-cml-u2:          NOTRUN -> [SKIP][6] ([i915#1208]) +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@gem_exec_fence@basic-busy@bcs0.html

  * igt@gem_huc_copy@huc-copy:
    - fi-pnv-d510:        NOTRUN -> [SKIP][7] ([fdo#109271]) +57 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-pnv-d510/igt@gem_huc_copy@huc-copy.html
    - fi-icl-u2:          NOTRUN -> [SKIP][8] ([i915#2190])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-icl-u2/igt@gem_huc_copy@huc-copy.html
    - fi-cml-u2:          NOTRUN -> [SKIP][9] ([i915#2190])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-icl-u2:          NOTRUN -> [SKIP][10] ([i915#4613]) +3 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-icl-u2/igt@gem_lmem_swapping@parallel-random-engines.html
    - fi-cml-u2:          NOTRUN -> [SKIP][11] ([i915#4613]) +3 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
    - fi-skl-guc:         NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#4613]) +3 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-skl-guc/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@verify-random:
    - fi-bsw-nick:        NOTRUN -> [SKIP][13] ([fdo#109271]) +67 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-bsw-nick/igt@gem_lmem_swapping@verify-random.html

  * igt@i915_module_load@reload:
    - fi-tgl-1115g4:      [PASS][14] -> [DMESG-WARN][15] ([i915#4002])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/fi-tgl-1115g4/igt@i915_module_load@reload.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-tgl-1115g4/igt@i915_module_load@reload.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-skl-guc:         NOTRUN -> [SKIP][16] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-skl-guc/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@dp-hpd-fast:
    - fi-cml-u2:          NOTRUN -> [SKIP][17] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@kms_chamelium@dp-hpd-fast.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-icl-u2:          NOTRUN -> [SKIP][18] ([fdo#111827]) +8 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_chamelium@vga-edid-read:
    - fi-bsw-nick:        NOTRUN -> [SKIP][19] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-bsw-nick/igt@kms_chamelium@vga-edid-read.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-icl-u2:          NOTRUN -> [SKIP][20] ([fdo#109278]) +2 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-cml-u2:          NOTRUN -> [SKIP][21] ([fdo#109278]) +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-cml-u2:          NOTRUN -> [SKIP][22] ([fdo#109285])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@kms_force_connector_basic@force-load-detect.html
    - fi-icl-u2:          NOTRUN -> [SKIP][23] ([fdo#109285])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-icl-u2/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          NOTRUN -> [DMESG-WARN][24] ([i915#4269])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
    - fi-cml-u2:          NOTRUN -> [SKIP][25] ([fdo#109278] / [i915#533])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html
    - fi-skl-guc:         NOTRUN -> [SKIP][26] ([fdo#109271] / [i915#533])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-skl-guc/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-skl-guc:         NOTRUN -> [SKIP][27] ([fdo#109271]) +28 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-skl-guc/igt@kms_psr@primary_mmap_gtt.html

  * igt@prime_vgem@basic-userptr:
    - fi-cml-u2:          NOTRUN -> [SKIP][28] ([i915#3301])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-cml-u2/igt@prime_vgem@basic-userptr.html
    - fi-icl-u2:          NOTRUN -> [SKIP][29] ([i915#3301])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-icl-u2/igt@prime_vgem@basic-userptr.html

  * igt@runner@aborted:
    - fi-bdw-5557u:       NOTRUN -> [FAIL][30] ([i915#2426] / [i915#4312])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-bdw-5557u/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - fi-bdw-5557u:       [INCOMPLETE][31] ([i915#146]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/fi-bdw-5557u/igt@gem_exec_suspend@basic-s3@smem.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-bdw-5557u/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@i915_pm_rps@basic-api:
    - fi-tgl-1115g4:      [DMESG-WARN][33] ([i915#4002]) -> [PASS][34] +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/fi-tgl-1115g4/igt@i915_pm_rps@basic-api.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-tgl-1115g4/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-4770:        [INCOMPLETE][35] ([i915#4785]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-180:
    - {shard-dg1}:        [DMESG-WARN][37] ([i915#3891] / [i915#4935]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-dg1-12/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-dg1-16/igt@kms_big_fb@x-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - {shard-rkl}:        [SKIP][39] ([i915#1845]) -> [PASS][40] +9 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_busy@basic@modeset:
    - {bat-adlp-6}:       [DMESG-WARN][41] ([i915#3576]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/bat-adlp-6/igt@kms_busy@basic@modeset.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/bat-adlp-6/igt@kms_busy@basic@modeset.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs:
    - {shard-rkl}:        ([SKIP][43], [SKIP][44]) ([i915#1845] / [i915#4098]) -> [PASS][45]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-4/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs.html

  * igt@kms_color@pipe-b-ctm-0-5:
    - {shard-rkl}:        [SKIP][46] ([i915#1149] / [i915#1849] / [i915#4070]) -> [PASS][47] +1 similar issue
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_color@pipe-b-ctm-0-5.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_color@pipe-b-ctm-0-5.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-rapid-movement:
    - {shard-rkl}:        [SKIP][48] ([fdo#112022] / [i915#4070]) -> [PASS][49] +1 similar issue
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_cursor_crc@pipe-a-cursor-64x64-rapid-movement.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_cursor_crc@pipe-a-cursor-64x64-rapid-movement.html

  * igt@kms_cursor_legacy@cursora-vs-flipa-atomic:
    - {shard-rkl}:        [SKIP][50] ([fdo#111825] / [i915#4070]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_cursor_legacy@cursora-vs-flipa-atomic.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_cursor_legacy@cursora-vs-flipa-atomic.html

  * igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled:
    - {shard-rkl}:        [SKIP][52] ([fdo#111314]) -> [PASS][53] +4 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-dsi1:
    - {fi-tgl-dsi}:       [FAIL][54] ([i915#2122]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/fi-tgl-dsi/igt@kms_flip@basic-flip-vs-wf_vblank@b-dsi1.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/fi-tgl-dsi/igt@kms_flip@basic-flip-vs-wf_vblank@b-dsi1.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
    - {shard-rkl}:        ([SKIP][56], [SKIP][57]) ([i915#1849] / [i915#4098]) -> [PASS][58]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt:
    - {shard-rkl}:        [SKIP][59] ([i915#1849]) -> [PASS][60] +5 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_invalid_mode@zero-clock:
    - {shard-rkl}:        [SKIP][61] ([i915#4278]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_invalid_mode@zero-clock.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_invalid_mode@zero-clock.html

  * igt@kms_universal_plane@universal-plane-pipe-b-functional:
    - {shard-rkl}:        [SKIP][63] ([i915#1845] / [i915#4070]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/shard-rkl-1/igt@kms_universal_plane@universal-plane-pipe-b-functional.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/shard-rkl-6/igt@kms_universal_plane@universal-plane-pipe-b-functional.html

  
#### Warnings ####

  * igt@i915_selftest@live@hangcheck:
    - bat-dg1-6:          [DMESG-FAIL][65] ([i915#4957]) -> [DMESG-FAIL][66] ([i915#4494] / [i915#4957])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11334/bat-dg1-6/igt@i915_selftest@live@hangcheck.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/bat-dg1-6/igt@i915_selftest@live@hangcheck.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112022]: https://bugs.freedesktop.org/show_bug.cgi?id=112022
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1149]: https://gitlab.freedesktop.org/drm/intel/issues/1149
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1187]: https://gitlab.freedesktop.org/drm/intel/issues/1187
  [i915#1208]: https://gitlab.freedesktop.org/drm/intel/issues/1208
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1836]: https://gitlab.freedesktop.org/drm/intel/issues/1836
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3319]: https://gitlab.freedesktop.org/drm/intel/issues/3319
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3464]: https://gitlab.freedesktop.org/drm/intel/issues/3464
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3699]: https://gitlab.freedesktop.org/drm/intel/issues/3699
  [i915#3701]: https://gitlab.freedesktop.org/drm/intel/issues/3701
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3891]: https://gitlab.freedesktop.org/drm/intel/issues/3891
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4002]: https://gitlab.freedesktop.org/drm/intel/issues/4002
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4086]: https://gitlab.freedesktop.org/drm/intel/issues/4086
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4278]: https://gitlab.freedesktop.org/drm/intel/issues/4278
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4807]: https://gitlab.freedesktop.org/drm/intel/issues/4807
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4842]: https://gitlab.freedesktop.org/drm/intel/issues/4842
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4853]: https://gitlab.freedesktop.org/drm/intel/issues/4853
  [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
  [i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883
  [i915#4886]: https://gitlab.freedesktop.org/drm/intel/issues/4886
  [i915#4904]: https://gitlab.freedesktop.org/drm/intel/issues/4904
  [i915#4935]: https://gitlab.freedesktop.org/drm/intel/issues/4935
  [i915#4941]: https://gitlab.freedesktop.org/drm/intel/issues/4941
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#5098]: https://gitlab.freedesktop.org/drm/intel/issues/5098
  [i915#5127]: https://gitlab.freedesktop.org/drm/intel/issues/5127
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658


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

  * Linux: CI_DRM_11334 -> Patchwork_22504

  CI-20190529: 20190529
  CI_DRM_11334: e7af229f52672104f4b170304c80e2d6849a2489 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6367: f8eac64564b12326721f1d5bea692bde4fe1ef15 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_22504: 47291e9277fff0d681175bea27b76f9579e7f4c3 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

47291e9277ff drm/i915/mst: re-enable link training failure fallback for DP MST

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22504/index.html

[-- Attachment #2: Type: text/html, Size: 21301 bytes --]

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

* Re: [Intel-gfx] [PATCH] drm/i915/mst: re-enable link training failure fallback for DP MST
  2022-03-07 20:48 ` Ville Syrjälä
  2022-03-07 20:56   ` Lyude Paul
@ 2022-03-08 12:14   ` Jani Nikula
  1 sibling, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2022-03-08 12:14 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx, Nikola Cornij

On Mon, 07 Mar 2022, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Mon, Mar 07, 2022 at 09:36:57PM +0200, Jani Nikula wrote:
>> Commit 80a8cecf62a5 ("drm/i915/dp_mst: Disable link training fallback on
>> MST links") disabled link training failure fallback for DP MST due to
>> the MST manager using the DPCD directly, and generally being ignorant
>> about the possibility of downgrading link parameters. See the commit for
>> further details.
>> 
>> Since then, the max_lane_count and max_link_rate members have been added
>> to struct drm_dp_mst_topology_mgr in commit 98025a62cb00 ("drm/dp_mst:
>> Use Extended Base Receiver Capability DPCD space") and refined in
>> follow-up work.
>> 
>> The members perhaps aren't intended for changing the parameters during
>> the lifetime of the manager, as they're supposed to be passed to
>> drm_dp_mst_topology_mgr_init(). However, the members are only ever used
>> in drm_dp_mst_topology_mgr_set_mst(), and there seems to be nothing to
>> prevent us from adjusting them *before* enabling MST. The wouldn't have
>> an effect if modified while MST is enabled. This is not necessarily
>> pretty, though.
>> 
>> Cc: Nikola Cornij <nikola.cornij@amd.com>
>> Cc: Lyude Paul <lyude@redhat.com>
>> Cc: Imre Deak <imre.deak@intel.com>
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Cc: Uma Shankar <uma.shankar@intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> 
>> ---
>> 
>> This is *untested*. I don't see why it wouldn't work, though...
>
> I don't think we have the required stuff to force a modeset on all
> the streams when the link params change.

Hmm, but this is done when the link training fails on the first stream.

> And the bad link status property + uevent stuff is only hooked up to
> the SST connector AFAICS.

Need to double check.

> The other major thing missing is a way to reduce the bpp/etc. of
> all the streams to make more room on the link if we have
> insufficient bandwidth. And the more we start to reduce the bw
> the more we're going to hit that and fail the modesets. We already
> ran into regressions due to this when I tried to enable deep color
> for MST.

The point here is to have a way to reduce the link to not have a black
screen when the link training fails, not so much to gracefully handle
insufficient bandwidth.

BR,
Jani.

>
>> this
>> should allow us to downgrade the link to from 128b/132b to 8b/10b if the
>> former fails.
>> 
>> Thoughts? In particular, any objections for messing with the topology
>> manager members directly? Any chance it'll make refactoring the MST code
>> more difficult?
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c     | 42 ++++++++++-----------
>>  drivers/gpu/drm/i915/display/intel_dp_mst.c |  5 ++-
>>  2 files changed, 23 insertions(+), 24 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>> index 619546441eae..2fad3104b40e 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -600,15 +600,6 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
>>  	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
>>  	int index;
>>  
>> -	/*
>> -	 * TODO: Enable fallback on MST links once MST link compute can handle
>> -	 * the fallback params.
>> -	 */
>> -	if (intel_dp->is_mst) {
>> -		drm_err(&i915->drm, "Link Training Unsuccessful\n");
>> -		return -1;
>> -	}
>> -
>>  	if (intel_dp_is_edp(intel_dp) && !intel_dp->use_max_params) {
>>  		drm_dbg_kms(&i915->drm,
>>  			    "Retrying Link training for eDP with max parameters\n");
>> @@ -2785,6 +2776,8 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
>>  	struct drm_i915_private *i915 = dp_to_i915(intel_dp);
>>  	struct intel_encoder *encoder =
>>  		&dp_to_dig_port(intel_dp)->base;
>> +	struct drm_dp_mst_topology_mgr *mgr = &intel_dp->mst_mgr;
>> +
>>  	bool sink_can_mst = drm_dp_read_mst_cap(&intel_dp->aux, intel_dp->dpcd);
>>  
>>  	drm_dbg_kms(&i915->drm,
>> @@ -2800,8 +2793,17 @@ intel_dp_configure_mst(struct intel_dp *intel_dp)
>>  	intel_dp->is_mst = sink_can_mst &&
>>  		i915->params.enable_dp_mst;
>>  
>> -	drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
>> -					intel_dp->is_mst);
>> +	/*
>> +	 * Set the source max lane count and link rate using the possibly
>> +	 * limited values due to failed link training.
>> +	 *
>> +	 * This is a bit hackish, as the values are supposed to be passed to
>> +	 * drm_dp_mst_topology_mgr_init().
>> +	 */
>> +	mgr->max_lane_count = intel_dp->max_link_lane_count;
>> +	mgr->max_link_rate = intel_dp->max_link_rate;
>> +
>> +	drm_dp_mst_topology_mgr_set_mst(mgr, intel_dp->is_mst);
>>  }
>>  
>>  static bool
>> @@ -4472,23 +4474,19 @@ intel_dp_detect(struct drm_connector *connector,
>>  		goto out;
>>  	}
>>  
>> -	/* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
>> -	if (DISPLAY_VER(dev_priv) >= 11)
>> -		intel_dp_get_dsc_sink_cap(intel_dp);
>> -
>> -	intel_dp_configure_mst(intel_dp);
>> -
>> -	/*
>> -	 * TODO: Reset link params when switching to MST mode, until MST
>> -	 * supports link training fallback params.
>> -	 */
>> -	if (intel_dp->reset_link_params || intel_dp->is_mst) {
>> +	if (intel_dp->reset_link_params) {
>>  		intel_dp_reset_max_link_params(intel_dp);
>>  		intel_dp->reset_link_params = false;
>>  	}
>>  
>>  	intel_dp_print_rates(intel_dp);
>>  
>> +	/* Read DP Sink DSC Cap DPCD regs for DP v1.4 */
>> +	if (DISPLAY_VER(dev_priv) >= 11)
>> +		intel_dp_get_dsc_sink_cap(intel_dp);
>> +
>> +	intel_dp_configure_mst(intel_dp);
>> +
>>  	if (intel_dp->is_mst) {
>>  		/*
>>  		 * If we are in MST mode then this connector
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> index e30e698aa684..442dbd0ed201 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> @@ -151,8 +151,9 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder,
>>  			intel_conn_state->force_audio == HDMI_AUDIO_ON;
>>  
>>  	/*
>> -	 * for MST we always configure max link bw - the spec doesn't
>> -	 * seem to suggest we should do otherwise.
>> +	 * For MST we always configure max link bw - the spec doesn't seem to
>> +	 * suggest we should do otherwise. The values may be reduced due to link
>> +	 * training failures, however.
>>  	 */
>>  	limits.min_rate =
>>  	limits.max_rate = intel_dp_max_link_rate(intel_dp);
>> -- 
>> 2.30.2

-- 
Jani Nikula, Intel Open Source Graphics Center

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

end of thread, other threads:[~2022-03-08 12:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-07 19:36 [Intel-gfx] [PATCH] drm/i915/mst: re-enable link training failure fallback for DP MST Jani Nikula
2022-03-07 20:48 ` Ville Syrjälä
2022-03-07 20:56   ` Lyude Paul
2022-03-08 12:14   ` Jani Nikula
2022-03-08 11:45 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " 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.