diff mbox series

drm/i915: Avoid HPD poll detect triggering a new detect cycle

Message ID 20191028110031.29616-1-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Avoid HPD poll detect triggering a new detect cycle | expand

Commit Message

Imre Deak Oct. 28, 2019, 11 a.m. UTC
For the HPD interrupt functionality the HW depends on power wells in the
display core domain to be on. Accordingly when enabling these power
wells the HPD polling logic will force an HPD detection cycle to account
for hotplug events that may have happened when such a power well was
off.

Thus a detect cycle started by polling could start a new detect cycle if
a power well in the display core domain gets enabled during detect and
stays enabled after detect completes. That in turn can lead to a
detection cycle runaway.

To prevent re-triggering a poll-detect cycle make sure we drop all power
references we acquired during detect synchronously by the end of detect.
This will let the poll-detect logic continue with polling (matching the
off state of the corresponding power wells) instead of scheduling a new
detection cycle.

Fixes: 6cfe7ec02e85 ("drm/i915: Remove the unneeded AUX power ref from intel_dp_detect()")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112125
Reported-by: Val Kulkov <val.kulkov@gmail.com>
Reported-and-tested-by: wangqr < wqr.prg@gmail.com>
Cc: Val Kulkov <val.kulkov@gmail.com>
Cc: wangqr < wqr.prg@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/display/intel_crt.c  |  7 +++++++
 drivers/gpu/drm/i915/display/intel_dp.c   | 24 ++++++++++++++---------
 drivers/gpu/drm/i915/display/intel_hdmi.c |  6 ++++++
 3 files changed, 28 insertions(+), 9 deletions(-)

Comments

Val Kulkov Oct. 28, 2019, 5:27 p.m. UTC | #1
On Mon, 28 Oct 2019 at 07:02, Imre Deak <imre.deak@intel.com> wrote:
>
> For the HPD interrupt functionality the HW depends on power wells in the
> display core domain to be on. Accordingly when enabling these power
> wells the HPD polling logic will force an HPD detection cycle to account
> for hotplug events that may have happened when such a power well was
> off.
>
> Thus a detect cycle started by polling could start a new detect cycle if
> a power well in the display core domain gets enabled during detect and
> stays enabled after detect completes. That in turn can lead to a
> detection cycle runaway.
>
> To prevent re-triggering a poll-detect cycle make sure we drop all power
> references we acquired during detect synchronously by the end of detect.
> This will let the poll-detect logic continue with polling (matching the
> off state of the corresponding power wells) instead of scheduling a new
> detection cycle.
>
> Fixes: 6cfe7ec02e85 ("drm/i915: Remove the unneeded AUX power ref from intel_dp_detect()")
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112125
> Reported-by: Val Kulkov <val.kulkov@gmail.com>
> Reported-and-tested-by: wangqr < wqr.prg@gmail.com>
> Cc: Val Kulkov <val.kulkov@gmail.com>
> Cc: wangqr < wqr.prg@gmail.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>

The patch has been tested with linux-drm-tip-git
5.4.865162.dd5bccfa3b5d-1 on Eglobal NUC Fanless Mini PC Intel N3150
and Intel NUC D34010WYK. In both cases, the reported problem was no
longer observed.

Tested-by: Val Kulkov <val.kulkov@gmail.com>
Ville Syrjälä Oct. 28, 2019, 5:45 p.m. UTC | #2
On Mon, Oct 28, 2019 at 01:00:31PM +0200, Imre Deak wrote:
> For the HPD interrupt functionality the HW depends on power wells in the
> display core domain to be on. Accordingly when enabling these power
> wells the HPD polling logic will force an HPD detection cycle to account
> for hotplug events that may have happened when such a power well was
> off.
> 
> Thus a detect cycle started by polling could start a new detect cycle if
> a power well in the display core domain gets enabled during detect and
> stays enabled after detect completes. That in turn can lead to a
> detection cycle runaway.
> 
> To prevent re-triggering a poll-detect cycle make sure we drop all power
> references we acquired during detect synchronously by the end of detect.
> This will let the poll-detect logic continue with polling (matching the
> off state of the corresponding power wells) instead of scheduling a new
> detection cycle.
> 
> Fixes: 6cfe7ec02e85 ("drm/i915: Remove the unneeded AUX power ref from intel_dp_detect()")
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112125
> Reported-by: Val Kulkov <val.kulkov@gmail.com>
> Reported-and-tested-by: wangqr < wqr.prg@gmail.com>
> Cc: Val Kulkov <val.kulkov@gmail.com>
> Cc: wangqr < wqr.prg@gmail.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_crt.c  |  7 +++++++
>  drivers/gpu/drm/i915/display/intel_dp.c   | 24 ++++++++++++++---------
>  drivers/gpu/drm/i915/display/intel_hdmi.c |  6 ++++++
>  3 files changed, 28 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
> index ff6126ea793c..834bf1d43bb8 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -864,6 +864,13 @@ intel_crt_detect(struct drm_connector *connector,
>  
>  out:
>  	intel_display_power_put(dev_priv, intel_encoder->power_domain, wakeref);
> +
> +	/*
> +	 * Make sure the refs for power wells enabled during detect are
> +	 * dropped to avoid a new detect cycle triggered by HPD polling.
> +	 */
> +	intel_display_power_flush_work(dev_priv);
> +
>  	return status;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 86989ec25bc6..f4e0ec05d7c9 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5600,6 +5600,7 @@ intel_dp_detect(struct drm_connector *connector,
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct intel_encoder *encoder = &dig_port->base;
>  	enum drm_connector_status status;
> +	int err = 0;
>  
>  	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
>  		      connector->base.id, connector->name);
> @@ -5626,7 +5627,7 @@ intel_dp_detect(struct drm_connector *connector,
>  							intel_dp->is_mst);
>  		}
>  
> -		goto out;
> +		goto out_update_edid;
>  	}
>  
>  	if (intel_dp->reset_link_params) {
> @@ -5654,7 +5655,7 @@ intel_dp_detect(struct drm_connector *connector,
>  		 * with EDID on it
>  		 */
>  		status = connector_status_disconnected;
> -		goto out;
> +		goto out_update_edid;
>  	}
>  
>  	/*
> @@ -5662,11 +5663,9 @@ intel_dp_detect(struct drm_connector *connector,
>  	 * with an IRQ_HPD, so force a link status check.
>  	 */
>  	if (!intel_dp_is_edp(intel_dp)) {
> -		int ret;
> -
> -		ret = intel_dp_retrain_link(encoder, ctx);
> -		if (ret)
> -			return ret;
> +		err = intel_dp_retrain_link(encoder, ctx);
> +		if (err)

This should probably read 
if (err == -EDEADLK)

Also I don't think we need to change this to a goto since it just
means we're going to retry the whole thing again, so the straight
return should be fine.

> +			goto out_sync_power;
>  	}
>  
>  	/*
> @@ -5684,11 +5683,18 @@ intel_dp_detect(struct drm_connector *connector,
>  
>  	intel_dp_check_service_irq(intel_dp);
>  
> -out:
> +out_update_edid:
>  	if (status != connector_status_connected && !intel_dp->is_mst)
>  		intel_dp_unset_edid(intel_dp);
>  
> -	return status;
> +out_sync_power:
> +	/*
> +	 * Make sure the refs for power wells enabled during detect are
> +	 * dropped to avoid a new detect cycle triggered by HPD polling.
> +	 */
> +	intel_display_power_flush_work(dev_priv);
> +
> +	return err ? err : status;
>  }
>  
>  static void
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index b54ccbb5aad5..ff71a4da3d00 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2626,6 +2626,12 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
>  	if (status != connector_status_connected)
>  		cec_notifier_phys_addr_invalidate(intel_hdmi->cec_notifier);
>  
> +	/*
> +	 * Make sure the refs for power wells enabled during detect are
> +	 * dropped to avoid a new detect cycle triggered by HPD polling.
> +	 */
> +	intel_display_power_flush_work(dev_priv);
> +
>  	return status;
>  }
>  
> -- 
> 2.17.1
Imre Deak Oct. 28, 2019, 6:06 p.m. UTC | #3
On Mon, Oct 28, 2019 at 07:45:09PM +0200, Ville Syrjälä wrote:
> On Mon, Oct 28, 2019 at 01:00:31PM +0200, Imre Deak wrote:
> > For the HPD interrupt functionality the HW depends on power wells in the
> > display core domain to be on. Accordingly when enabling these power
> > wells the HPD polling logic will force an HPD detection cycle to account
> > for hotplug events that may have happened when such a power well was
> > off.
> > 
> > Thus a detect cycle started by polling could start a new detect cycle if
> > a power well in the display core domain gets enabled during detect and
> > stays enabled after detect completes. That in turn can lead to a
> > detection cycle runaway.
> > 
> > To prevent re-triggering a poll-detect cycle make sure we drop all power
> > references we acquired during detect synchronously by the end of detect.
> > This will let the poll-detect logic continue with polling (matching the
> > off state of the corresponding power wells) instead of scheduling a new
> > detection cycle.
> > 
> > Fixes: 6cfe7ec02e85 ("drm/i915: Remove the unneeded AUX power ref from intel_dp_detect()")
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112125
> > Reported-by: Val Kulkov <val.kulkov@gmail.com>
> > Reported-and-tested-by: wangqr < wqr.prg@gmail.com>
> > Cc: Val Kulkov <val.kulkov@gmail.com>
> > Cc: wangqr < wqr.prg@gmail.com>
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_crt.c  |  7 +++++++
> >  drivers/gpu/drm/i915/display/intel_dp.c   | 24 ++++++++++++++---------
> >  drivers/gpu/drm/i915/display/intel_hdmi.c |  6 ++++++
> >  3 files changed, 28 insertions(+), 9 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
> > index ff6126ea793c..834bf1d43bb8 100644
> > --- a/drivers/gpu/drm/i915/display/intel_crt.c
> > +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> > @@ -864,6 +864,13 @@ intel_crt_detect(struct drm_connector *connector,
> >  
> >  out:
> >  	intel_display_power_put(dev_priv, intel_encoder->power_domain, wakeref);
> > +
> > +	/*
> > +	 * Make sure the refs for power wells enabled during detect are
> > +	 * dropped to avoid a new detect cycle triggered by HPD polling.
> > +	 */
> > +	intel_display_power_flush_work(dev_priv);
> > +
> >  	return status;
> >  }
> >  
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> > index 86989ec25bc6..f4e0ec05d7c9 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> > @@ -5600,6 +5600,7 @@ intel_dp_detect(struct drm_connector *connector,
> >  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
> >  	struct intel_encoder *encoder = &dig_port->base;
> >  	enum drm_connector_status status;
> > +	int err = 0;
> >  
> >  	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
> >  		      connector->base.id, connector->name);
> > @@ -5626,7 +5627,7 @@ intel_dp_detect(struct drm_connector *connector,
> >  							intel_dp->is_mst);
> >  		}
> >  
> > -		goto out;
> > +		goto out_update_edid;
> >  	}
> >  
> >  	if (intel_dp->reset_link_params) {
> > @@ -5654,7 +5655,7 @@ intel_dp_detect(struct drm_connector *connector,
> >  		 * with EDID on it
> >  		 */
> >  		status = connector_status_disconnected;
> > -		goto out;
> > +		goto out_update_edid;
> >  	}
> >  
> >  	/*
> > @@ -5662,11 +5663,9 @@ intel_dp_detect(struct drm_connector *connector,
> >  	 * with an IRQ_HPD, so force a link status check.
> >  	 */
> >  	if (!intel_dp_is_edp(intel_dp)) {
> > -		int ret;
> > -
> > -		ret = intel_dp_retrain_link(encoder, ctx);
> > -		if (ret)
> > -			return ret;
> > +		err = intel_dp_retrain_link(encoder, ctx);
> > +		if (err)
> 
> This should probably read 
> if (err == -EDEADLK)
> 
> Also I don't think we need to change this to a goto since it just
> means we're going to retry the whole thing again, so the straight
> return should be fine.

Ok, will resend it keeping this as-is. The retry will be done without
dropping mode_config.mutex, so keeping the power refs in that case
shouldn't cause a problem.

> 
> > +			goto out_sync_power;
> >  	}
> >  
> >  	/*
> > @@ -5684,11 +5683,18 @@ intel_dp_detect(struct drm_connector *connector,
> >  
> >  	intel_dp_check_service_irq(intel_dp);
> >  
> > -out:
> > +out_update_edid:
> >  	if (status != connector_status_connected && !intel_dp->is_mst)
> >  		intel_dp_unset_edid(intel_dp);
> >  
> > -	return status;
> > +out_sync_power:
> > +	/*
> > +	 * Make sure the refs for power wells enabled during detect are
> > +	 * dropped to avoid a new detect cycle triggered by HPD polling.
> > +	 */
> > +	intel_display_power_flush_work(dev_priv);
> > +
> > +	return err ? err : status;
> >  }
> >  
> >  static void
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> > index b54ccbb5aad5..ff71a4da3d00 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> > @@ -2626,6 +2626,12 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
> >  	if (status != connector_status_connected)
> >  		cec_notifier_phys_addr_invalidate(intel_hdmi->cec_notifier);
> >  
> > +	/*
> > +	 * Make sure the refs for power wells enabled during detect are
> > +	 * dropped to avoid a new detect cycle triggered by HPD polling.
> > +	 */
> > +	intel_display_power_flush_work(dev_priv);
> > +
> >  	return status;
> >  }
> >  
> > -- 
> > 2.17.1
> 
> -- 
> Ville Syrjälä
> Intel
Imre Deak Oct. 28, 2019, 10:42 p.m. UTC | #4
Hi Chris, Lakshmi,

On Mon, Oct 28, 2019 at 10:01:13PM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Avoid HPD poll detect triggering a new detect cycle (rev2)
> URL   : https://patchwork.freedesktop.org/series/68644/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_7205 -> Patchwork_15031
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_15031 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_15031, 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_15031/index.html
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in Patchwork_15031:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@i915_selftest@live_blt:
>     - fi-kbl-guc:         [PASS][1] -> [TIMEOUT][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-kbl-guc/igt@i915_selftest@live_blt.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-kbl-guc/igt@i915_selftest@live_blt.html

This and the 2 other ones below seem unrelated. The patch changes the display
detection path only, but there is no detection going on when the bug happens.
For the above one the trace is:

<4>[  754.304899] RIP: 0010:intel_emit_vma_fill_blt+0x139/0x340 [i915]
<4>[  754.304901] Code: c1 e1 10 80 cd 04 80 bb e2 0b 00 00 07 77 a9 89 48 0c 4c 89 10 48 8d 48 18 c7 40 08 00 00 00 00 44 89 40 10 44 89 68 14 eb b1 <c7> 41 04 00 00 00 05 48 8b 45 18 48 8b b8 50 01 00 00 e8 70 2d fb
<4>[  754.304902] RSP: 0018:ffffc900006c7e48 EFLAGS: 00010246
<4>[  754.304904] RAX: ffffc90000576000 RBX: ffff8881d58a0000 RCX: ffffc90000575ffc
<4>[  754.304905] RDX: 0000000000800000 RSI: 0000000000000000 RDI: 000000000001d000
<4>[  754.304906] RBP: ffff88815a2d7480 R08: 00000000ff81d000 R09: 03f0100054300005
<4>[  754.304907] R10: 03f0100054300004 R11: 0000000000000000 R12: ffff88821cbddc00
<4>[  754.304907] R13: 0000000011b89215 R14: ffff888182ef1540 R15: 0000000011b89215
<4>[  754.304909] FS:  0000000000000000(0000) GS:ffff88822ea80000(0000) knlGS:0000000000000000
<4>[  754.304910] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4>[  754.304911] CR2: ffffc90000576000 CR3: 0000000228de2004 CR4: 00000000003606e0
<4>[  754.304911] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
<4>[  754.304912] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
<3>[  754.304914] BUG: sleeping function called from invalid context at ./include/linux/percpu-rwsem.h:38
<3>[  754.304915] in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 6111, name: igt/blt-8
<4>[  754.304916] INFO: lockdep is turned off.
<4>[  754.304917] irq event stamp: 104082
<4>[  754.304920] hardirqs last  enabled at (104081): [<ffffffff8123f63d>] __slab_alloc.isra.84.constprop.89+0x4d/0x70
<4>[  754.304922] hardirqs last disabled at (104082): [<ffffffff81001c0a>] trace_hardirqs_off_thunk+0x1a/0x20
<4>[  754.304924] softirqs last  enabled at (104078): [<ffffffff81c00385>] __do_softirq+0x385/0x47f
<4>[  754.304926] softirqs last disabled at (104071): [<ffffffff810b7efa>] irq_exit+0xba/0xc0
<4>[  754.304927] CPU: 5 PID: 6111 Comm: igt/blt-8 Tainted: G     UD           5.4.0-rc4-CI-Patchwork_15031+ #1
<4>[  754.304928] Hardware name: System manufacturer System Product Name/Z170M-PLUS, BIOS 3610 03/29/2018
<4>[  754.304929] Call Trace:
<4>[  754.304932]  dump_stack+0x67/0x9b
<4>[  754.304934]  ___might_sleep+0x178/0x260
<4>[  754.304936]  exit_signals+0x2b/0x350
<4>[  754.304938]  do_exit+0xa3/0xd70
<4>[  754.304972]  ? i915_gem_object_fill_blt+0x380/0x380 [i915]
<4>[  754.304974]  ? kthread+0x119/0x130
<4>[  754.304976]  rewind_stack_do_exit+0x17/0x20

Could we open a new ticket for these?

>     - fi-icl-u2:          [PASS][3] -> [TIMEOUT][4]
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-icl-u2/igt@i915_selftest@live_blt.html
>    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-icl-u2/igt@i915_selftest@live_blt.html
> 
>   * igt@i915_selftest@live_client:
>     - fi-whl-u:           [PASS][5] -> [INCOMPLETE][6]
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-whl-u/igt@i915_selftest@live_client.html
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-whl-u/igt@i915_selftest@live_client.html
> 
>   * igt@runner@aborted:
>     - fi-kbl-guc:         NOTRUN -> [FAIL][7]
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-kbl-guc/igt@runner@aborted.html
> 
>   
> Known issues
> ------------
> 
>   Here are the changes found in Patchwork_15031 that come from known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@gem_exec_reloc@basic-write-read-noreloc:
>     - fi-icl-u3:          [PASS][8] -> [DMESG-WARN][9] ([fdo#107724]) +1 similar issue
>    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-icl-u3/igt@gem_exec_reloc@basic-write-read-noreloc.html
>    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-icl-u3/igt@gem_exec_reloc@basic-write-read-noreloc.html
> 
>   * igt@kms_chamelium@hdmi-crc-fast:
>     - fi-icl-u2:          [PASS][10] -> [FAIL][11] ([fdo#109570])
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-icl-u2/igt@kms_chamelium@hdmi-crc-fast.html
>    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-icl-u2/igt@kms_chamelium@hdmi-crc-fast.html
> 
>   
> #### Possible fixes ####
> 
>   * igt@gem_ctx_switch@legacy-render:
>     - fi-bxt-dsi:         [INCOMPLETE][12] ([fdo#103927] / [fdo#111381]) -> [PASS][13]
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-bxt-dsi/igt@gem_ctx_switch@legacy-render.html
>    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-bxt-dsi/igt@gem_ctx_switch@legacy-render.html
> 
>   * igt@gem_exec_reloc@basic-gtt-read:
>     - fi-icl-u3:          [DMESG-WARN][14] ([fdo#107724]) -> [PASS][15] +1 similar issue
>    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-icl-u3/igt@gem_exec_reloc@basic-gtt-read.html
>    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-icl-u3/igt@gem_exec_reloc@basic-gtt-read.html
> 
>   * igt@i915_selftest@live_blt:
>     - fi-glk-dsi:         [TIMEOUT][16] -> [PASS][17]
>    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-glk-dsi/igt@i915_selftest@live_blt.html
>    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-glk-dsi/igt@i915_selftest@live_blt.html
>     - fi-cfl-8700k:       [TIMEOUT][18] -> [PASS][19]
>    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-cfl-8700k/igt@i915_selftest@live_blt.html
>    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-cfl-8700k/igt@i915_selftest@live_blt.html
>     - fi-skl-iommu:       [TIMEOUT][20] -> [PASS][21]
>    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-skl-iommu/igt@i915_selftest@live_blt.html
>    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-skl-iommu/igt@i915_selftest@live_blt.html
>     - {fi-tgl-u}:         [TIMEOUT][22] -> [PASS][23]
>    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-tgl-u/igt@i915_selftest@live_blt.html
>    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-tgl-u/igt@i915_selftest@live_blt.html
> 
>   
> #### Warnings ####
> 
>   * igt@kms_chamelium@common-hpd-after-suspend:
>     - fi-icl-u2:          [DMESG-WARN][24] ([fdo#102505] / [fdo#106107] / [fdo#110390]) -> [DMESG-WARN][25] ([fdo#102505] / [fdo#110390])
>    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html
>    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html
> 
>   
>   {name}: This element is suppressed. This means it is ignored when computing
>           the status of the difference (SUCCESS, WARNING, or FAILURE).
> 
>   [fdo#102505]: https://bugs.freedesktop.org/show_bug.cgi?id=102505
>   [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
>   [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
>   [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
>   [fdo#109570]: https://bugs.freedesktop.org/show_bug.cgi?id=109570
>   [fdo#110390]: https://bugs.freedesktop.org/show_bug.cgi?id=110390
>   [fdo#111381]: https://bugs.freedesktop.org/show_bug.cgi?id=111381
> 
> 
> Participating hosts (49 -> 42)
> ------------------------------
> 
>   Additional (1): fi-kbl-r 
>   Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-icl-y fi-tgl-y fi-byt-clapper fi-bdw-samus 
> 
> 
> Build changes
> -------------
> 
>   * CI: CI-20190529 -> None
>   * Linux: CI_DRM_7205 -> Patchwork_15031
> 
>   CI-20190529: 20190529
>   CI_DRM_7205: b584710d3ea551d555a6de8470cb6da8cab6fd6f @ git://anongit.freedesktop.org/gfx-ci/linux
>   IGT_5248: 81e55f1f97d73e48f00caa7e4fb98295023c5afa @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
>   Patchwork_15031: 6c914e215890d3eb94120a2346e8bf55dd6b1f5a @ git://anongit.freedesktop.org/gfx-ci/linux
> 
> 
> == Linux commits ==
> 
> 6c914e215890 drm/i915: Avoid HPD poll detect triggering a new detect cycle
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/index.html
Imre Deak Oct. 30, 2019, 2:39 p.m. UTC | #5
On Wed, Oct 30, 2019 at 12:06:53AM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Avoid HPD poll detect triggering a new detect cycle (rev2)
> URL   : https://patchwork.freedesktop.org/series/68644/
> State : success

Thanks for the review, pushed to -dinq.

> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_7205_full -> Patchwork_15031_full
> ====================================================
> 
> Summary
> -------
> 
>   **SUCCESS**
> 
>   No regressions found.
> 
>   
> 
> Known issues
> ------------
> 
>   Here are the changes found in Patchwork_15031_full that come from known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@gem_ctx_shared@exec-single-timeline-bsd:
>     - shard-iclb:         [PASS][1] -> [SKIP][2] ([fdo#110841])
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb3/igt@gem_ctx_shared@exec-single-timeline-bsd.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb2/igt@gem_ctx_shared@exec-single-timeline-bsd.html
> 
>   * igt@gem_ctx_switch@vcs1:
>     - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#112080]) +11 similar issues
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb2/igt@gem_ctx_switch@vcs1.html
>    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb5/igt@gem_ctx_switch@vcs1.html
> 
>   * igt@gem_exec_balancer@smoke:
>     - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#110854])
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb4/igt@gem_exec_balancer@smoke.html
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb7/igt@gem_exec_balancer@smoke.html
> 
>   * igt@gem_exec_schedule@preempt-other-chain-bsd:
>     - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#112146]) +6 similar issues
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb5/igt@gem_exec_schedule@preempt-other-chain-bsd.html
>    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb1/igt@gem_exec_schedule@preempt-other-chain-bsd.html
> 
>   * igt@gem_exec_schedule@preempt-queue-bsd1:
>     - shard-iclb:         [PASS][9] -> [SKIP][10] ([fdo#109276]) +18 similar issues
>    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd1.html
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb5/igt@gem_exec_schedule@preempt-queue-bsd1.html
> 
>   * igt@gem_flink_race@flink_name:
>     - shard-apl:          [PASS][11] -> [INCOMPLETE][12] ([fdo#103927]) +1 similar issue
>    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-apl1/igt@gem_flink_race@flink_name.html
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-apl4/igt@gem_flink_race@flink_name.html
> 
>   * igt@gem_persistent_relocs@forked-interruptible-thrashing:
>     - shard-iclb:         [PASS][13] -> [FAIL][14] ([fdo#112037])
>    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb1/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
>    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb5/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
> 
>   * igt@gem_userptr_blits@dmabuf-sync:
>     - shard-snb:          [PASS][15] -> [DMESG-WARN][16] ([fdo#111870]) +1 similar issue
>    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-snb5/igt@gem_userptr_blits@dmabuf-sync.html
>    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-snb2/igt@gem_userptr_blits@dmabuf-sync.html
> 
>   * igt@gem_userptr_blits@dmabuf-unsync:
>     - shard-hsw:          [PASS][17] -> [DMESG-WARN][18] ([fdo#111870]) +1 similar issue
>    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-hsw4/igt@gem_userptr_blits@dmabuf-unsync.html
>    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-hsw1/igt@gem_userptr_blits@dmabuf-unsync.html
> 
>   * igt@gem_workarounds@suspend-resume-fd:
>     - shard-kbl:          [PASS][19] -> [FAIL][20] ([fdo#103375])
>    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-kbl1/igt@gem_workarounds@suspend-resume-fd.html
>    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-kbl4/igt@gem_workarounds@suspend-resume-fd.html
> 
>   * igt@i915_selftest@mock_requests:
>     - shard-glk:          [PASS][21] -> [INCOMPLETE][22] ([fdo#103359] / [k.org#198133])
>    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-glk3/igt@i915_selftest@mock_requests.html
>    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-glk3/igt@i915_selftest@mock_requests.html
> 
>   * igt@kms_color@pipe-b-ctm-0-5:
>     - shard-skl:          [PASS][23] -> [DMESG-WARN][24] ([fdo#106107])
>    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl4/igt@kms_color@pipe-b-ctm-0-5.html
>    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl7/igt@kms_color@pipe-b-ctm-0-5.html
> 
>   * igt@kms_flip@flip-vs-expired-vblank:
>     - shard-apl:          [PASS][25] -> [FAIL][26] ([fdo#105363])
>    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-apl8/igt@kms_flip@flip-vs-expired-vblank.html
>    [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-apl3/igt@kms_flip@flip-vs-expired-vblank.html
> 
>   * igt@kms_flip@flip-vs-suspend-interruptible:
>     - shard-skl:          [PASS][27] -> [INCOMPLETE][28] ([fdo#109507])
>    [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl2/igt@kms_flip@flip-vs-suspend-interruptible.html
>    [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl2/igt@kms_flip@flip-vs-suspend-interruptible.html
>     - shard-kbl:          [PASS][29] -> [DMESG-WARN][30] ([fdo#108566]) +7 similar issues
>    [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible.html
>    [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible.html
> 
>   * igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw:
>     - shard-iclb:         [PASS][31] -> [FAIL][32] ([fdo#103167])
>    [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html
>    [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-1p-pri-indfb-multidraw.html
> 
>   * igt@kms_psr@psr2_sprite_mmap_gtt:
>     - shard-iclb:         [PASS][33] -> [SKIP][34] ([fdo#109441]) +1 similar issue
>    [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
>    [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb8/igt@kms_psr@psr2_sprite_mmap_gtt.html
> 
>   * igt@kms_rotation_crc@multiplane-rotation:
>     - shard-glk:          [PASS][35] -> [DMESG-FAIL][36] ([fdo#105763] / [fdo#106538])
>    [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-glk5/igt@kms_rotation_crc@multiplane-rotation.html
>    [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-glk7/igt@kms_rotation_crc@multiplane-rotation.html
> 
>   
> #### Possible fixes ####
> 
>   * igt@gem_busy@busy-vcs1:
>     - shard-iclb:         [SKIP][37] ([fdo#112080]) -> [PASS][38] +9 similar issues
>    [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb5/igt@gem_busy@busy-vcs1.html
>    [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb1/igt@gem_busy@busy-vcs1.html
> 
>   * igt@gem_ctx_isolation@vcs1-none:
>     - shard-iclb:         [SKIP][39] ([fdo#109276] / [fdo#112080]) -> [PASS][40]
>    [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb3/igt@gem_ctx_isolation@vcs1-none.html
>    [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb1/igt@gem_ctx_isolation@vcs1-none.html
> 
>   * igt@gem_ctx_switch@all-light:
>     - {shard-tglb}:       [INCOMPLETE][41] ([fdo#111672]) -> [PASS][42]
>    [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-tglb6/igt@gem_ctx_switch@all-light.html
>    [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-tglb7/igt@gem_ctx_switch@all-light.html
> 
>   * igt@gem_exec_async@concurrent-writes-bsd:
>     - shard-iclb:         [SKIP][43] ([fdo#112146]) -> [PASS][44] +2 similar issues
>    [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb1/igt@gem_exec_async@concurrent-writes-bsd.html
>    [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb5/igt@gem_exec_async@concurrent-writes-bsd.html
> 
>   * igt@gem_exec_schedule@promotion-bsd1:
>     - shard-iclb:         [SKIP][45] ([fdo#109276]) -> [PASS][46] +17 similar issues
>    [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb5/igt@gem_exec_schedule@promotion-bsd1.html
>    [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb1/igt@gem_exec_schedule@promotion-bsd1.html
> 
>   * igt@gem_softpin@noreloc-s3:
>     - {shard-tglb}:       [INCOMPLETE][47] ([fdo#111832]) -> [PASS][48]
>    [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-tglb8/igt@gem_softpin@noreloc-s3.html
>    [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-tglb6/igt@gem_softpin@noreloc-s3.html
> 
>   * igt@gem_sync@basic-store-each:
>     - {shard-tglb}:       [INCOMPLETE][49] ([fdo#111647] / [fdo#111747]) -> [PASS][50]
>    [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-tglb5/igt@gem_sync@basic-store-each.html
>    [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-tglb2/igt@gem_sync@basic-store-each.html
> 
>   * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
>     - shard-hsw:          [DMESG-WARN][51] ([fdo#111870]) -> [PASS][52] +1 similar issue
>    [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-hsw6/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
>    [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-hsw5/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
> 
>   * igt@gem_userptr_blits@sync-unmap-cycles:
>     - shard-snb:          [DMESG-WARN][53] ([fdo#111870]) -> [PASS][54]
>    [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-snb7/igt@gem_userptr_blits@sync-unmap-cycles.html
>    [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-snb7/igt@gem_userptr_blits@sync-unmap-cycles.html
> 
>   * {igt@i915_pm_dc@dc6-psr}:
>     - shard-iclb:         [FAIL][55] ([fdo#110548]) -> [PASS][56]
>    [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb4/igt@i915_pm_dc@dc6-psr.html
>    [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb1/igt@i915_pm_dc@dc6-psr.html
> 
>   * igt@kms_busy@basic-flip-a:
>     - shard-apl:          [INCOMPLETE][57] ([fdo#103927]) -> [PASS][58] +1 similar issue
>    [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-apl6/igt@kms_busy@basic-flip-a.html
>    [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-apl8/igt@kms_busy@basic-flip-a.html
> 
>   * igt@kms_concurrent@pipe-c:
>     - shard-skl:          [DMESG-WARN][59] ([fdo#106107]) -> [PASS][60]
>    [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl6/igt@kms_concurrent@pipe-c.html
>    [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl8/igt@kms_concurrent@pipe-c.html
> 
>   * igt@kms_cursor_crc@pipe-c-cursor-suspend:
>     - shard-skl:          [INCOMPLETE][61] ([fdo#110741]) -> [PASS][62] +1 similar issue
>    [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl10/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
>    [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl4/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> 
>   * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
>     - shard-skl:          [FAIL][63] ([fdo#102670]) -> [PASS][64]
>    [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
>    [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl10/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
> 
>   * igt@kms_flip@absolute-wf_vblank:
>     - shard-iclb:         [INCOMPLETE][65] ([fdo#107713]) -> [PASS][66]
>    [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb7/igt@kms_flip@absolute-wf_vblank.html
>    [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb6/igt@kms_flip@absolute-wf_vblank.html
> 
>   * igt@kms_flip@flip-vs-expired-vblank:
>     - shard-skl:          [FAIL][67] ([fdo#105363]) -> [PASS][68]
>    [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl1/igt@kms_flip@flip-vs-expired-vblank.html
>    [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl1/igt@kms_flip@flip-vs-expired-vblank.html
> 
>   * igt@kms_flip@flip-vs-expired-vblank-interruptible:
>     - shard-glk:          [FAIL][69] ([fdo#105363]) -> [PASS][70]
>    [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-glk2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
>    [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
> 
>   * igt@kms_flip@plain-flip-fb-recreate:
>     - shard-skl:          [FAIL][71] ([fdo#100368]) -> [PASS][72]
>    [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl7/igt@kms_flip@plain-flip-fb-recreate.html
>    [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl2/igt@kms_flip@plain-flip-fb-recreate.html
> 
>   * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
>     - shard-iclb:         [FAIL][73] ([fdo#103167]) -> [PASS][74] +3 similar issues
>    [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
>    [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
> 
>   * igt@kms_frontbuffer_tracking@fbc-suspend:
>     - shard-iclb:         [DMESG-WARN][75] ([fdo#111764]) -> [PASS][76]
>    [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-suspend.html
>    [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-suspend.html
>     - shard-apl:          [DMESG-WARN][77] ([fdo#108566]) -> [PASS][78] +1 similar issue
>    [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-apl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
>    [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-apl8/igt@kms_frontbuffer_tracking@fbc-suspend.html
> 
>   * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-blt:
>     - {shard-tglb}:       [FAIL][79] ([fdo#103167]) -> [PASS][80] +4 similar issues
>    [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-blt.html
>    [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-blt.html
> 
>   * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
>     - shard-kbl:          [DMESG-WARN][81] ([fdo#108566]) -> [PASS][82] +1 similar issue
>    [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-kbl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
>    [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-kbl2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
> 
>   * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
>     - shard-skl:          [FAIL][83] ([fdo#108145]) -> [PASS][84]
>    [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl6/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
>    [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl8/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
> 
>   * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
>     - shard-skl:          [FAIL][85] ([fdo#108145] / [fdo#110403]) -> [PASS][86]
>    [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-skl3/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
>    [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-skl9/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
> 
>   * igt@kms_plane_lowres@pipe-a-tiling-x:
>     - shard-iclb:         [FAIL][87] ([fdo#103166]) -> [PASS][88] +1 similar issue
>    [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html
>    [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html
> 
>   * igt@kms_psr@psr2_primary_page_flip:
>     - shard-iclb:         [SKIP][89] ([fdo#109441]) -> [PASS][90] +1 similar issue
>    [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb3/igt@kms_psr@psr2_primary_page_flip.html
>    [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
> 
>   * igt@kms_setmode@basic:
>     - shard-hsw:          [FAIL][91] ([fdo#99912]) -> [PASS][92]
>    [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-hsw2/igt@kms_setmode@basic.html
>    [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-hsw1/igt@kms_setmode@basic.html
> 
>   
> #### Warnings ####
> 
>   * igt@gem_mocs_settings@mocs-rc6-bsd2:
>     - shard-iclb:         [FAIL][93] ([fdo#111330]) -> [SKIP][94] ([fdo#109276])
>    [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb2/igt@gem_mocs_settings@mocs-rc6-bsd2.html
>    [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb8/igt@gem_mocs_settings@mocs-rc6-bsd2.html
> 
>   * igt@gem_mocs_settings@mocs-settings-bsd2:
>     - shard-iclb:         [SKIP][95] ([fdo#109276]) -> [FAIL][96] ([fdo#111330])
>    [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-iclb3/igt@gem_mocs_settings@mocs-settings-bsd2.html
>    [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-iclb2/igt@gem_mocs_settings@mocs-settings-bsd2.html
> 
>   * igt@kms_content_protection@srm:
>     - shard-apl:          [FAIL][97] ([fdo#110321]) -> [INCOMPLETE][98] ([fdo#103927])
>    [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7205/shard-apl4/igt@kms_content_protection@srm.html
>    [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/shard-apl7/igt@kms_content_protection@srm.html
> 
>   
>   {name}: This element is suppressed. This means it is ignored when computing
>           the status of the difference (SUCCESS, WARNING, or FAILURE).
> 
>   [fdo# 111852 ]: https://bugs.freedesktop.org/show_bug.cgi?id= 111852 
>   [fdo#100368]: https://bugs.freedesktop.org/show_bug.cgi?id=100368
>   [fdo#102670]: https://bugs.freedesktop.org/show_bug.cgi?id=102670
>   [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
>   [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
>   [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
>   [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
>   [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
>   [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
>   [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
>   [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
>   [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
>   [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
>   [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
>   [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
>   [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
>   [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
>   [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
>   [fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
>   [fdo#110321]: https://bugs.freedesktop.org/show_bug.cgi?id=110321
>   [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
>   [fdo#110548]: https://bugs.freedesktop.org/show_bug.cgi?id=110548
>   [fdo#110741]: https://bugs.freedesktop.org/show_bug.cgi?id=110741
>   [fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
>   [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
>   [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
>   [fdo#111600]: https://bugs.freedesktop.org/show_bug.cgi?id=111600
>   [fdo#111646]: https://bugs.freedesktop.org/
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15031/index.html
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index ff6126ea793c..834bf1d43bb8 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -864,6 +864,13 @@  intel_crt_detect(struct drm_connector *connector,
 
 out:
 	intel_display_power_put(dev_priv, intel_encoder->power_domain, wakeref);
+
+	/*
+	 * Make sure the refs for power wells enabled during detect are
+	 * dropped to avoid a new detect cycle triggered by HPD polling.
+	 */
+	intel_display_power_flush_work(dev_priv);
+
 	return status;
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 86989ec25bc6..f4e0ec05d7c9 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -5600,6 +5600,7 @@  intel_dp_detect(struct drm_connector *connector,
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	struct intel_encoder *encoder = &dig_port->base;
 	enum drm_connector_status status;
+	int err = 0;
 
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
 		      connector->base.id, connector->name);
@@ -5626,7 +5627,7 @@  intel_dp_detect(struct drm_connector *connector,
 							intel_dp->is_mst);
 		}
 
-		goto out;
+		goto out_update_edid;
 	}
 
 	if (intel_dp->reset_link_params) {
@@ -5654,7 +5655,7 @@  intel_dp_detect(struct drm_connector *connector,
 		 * with EDID on it
 		 */
 		status = connector_status_disconnected;
-		goto out;
+		goto out_update_edid;
 	}
 
 	/*
@@ -5662,11 +5663,9 @@  intel_dp_detect(struct drm_connector *connector,
 	 * with an IRQ_HPD, so force a link status check.
 	 */
 	if (!intel_dp_is_edp(intel_dp)) {
-		int ret;
-
-		ret = intel_dp_retrain_link(encoder, ctx);
-		if (ret)
-			return ret;
+		err = intel_dp_retrain_link(encoder, ctx);
+		if (err)
+			goto out_sync_power;
 	}
 
 	/*
@@ -5684,11 +5683,18 @@  intel_dp_detect(struct drm_connector *connector,
 
 	intel_dp_check_service_irq(intel_dp);
 
-out:
+out_update_edid:
 	if (status != connector_status_connected && !intel_dp->is_mst)
 		intel_dp_unset_edid(intel_dp);
 
-	return status;
+out_sync_power:
+	/*
+	 * Make sure the refs for power wells enabled during detect are
+	 * dropped to avoid a new detect cycle triggered by HPD polling.
+	 */
+	intel_display_power_flush_work(dev_priv);
+
+	return err ? err : status;
 }
 
 static void
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index b54ccbb5aad5..ff71a4da3d00 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2626,6 +2626,12 @@  intel_hdmi_detect(struct drm_connector *connector, bool force)
 	if (status != connector_status_connected)
 		cec_notifier_phys_addr_invalidate(intel_hdmi->cec_notifier);
 
+	/*
+	 * Make sure the refs for power wells enabled during detect are
+	 * dropped to avoid a new detect cycle triggered by HPD polling.
+	 */
+	intel_display_power_flush_work(dev_priv);
+
 	return status;
 }